SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod Class Reference

Zadeh's fuzzy extension principle by the vertex method, where the optimization problems are solved by simply taking the best corners of the confidence intervals. More...

#include <FuzzyExtensionPrincipleViaVertexMethod.hpp>

Inheritance diagram for sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod:
sgpp::optimization::FuzzyExtensionPrincipleViaOptimization sgpp::optimization::FuzzyExtensionPrinciple

Public Member Functions

void clone (std::unique_ptr< FuzzyExtensionPrinciple > &clone) const override
 
 FuzzyExtensionPrincipleViaVertexMethod (const base::ScalarFunction &f, size_t numberOfAlphaSegments=DEFAULT_NUMBER_OF_ALPHA_SEGMENTS)
 Constructor.
 
 FuzzyExtensionPrincipleViaVertexMethod (const FuzzyExtensionPrincipleViaVertexMethod &other)
 Copy constructor.
 
 ~FuzzyExtensionPrincipleViaVertexMethod () override
 Destructor.
 
- Public Member Functions inherited from sgpp::optimization::FuzzyExtensionPrincipleViaOptimization
 FuzzyExtensionPrincipleViaOptimization (const base::ScalarFunction &f, size_t numberOfAlphaSegments=DEFAULT_NUMBER_OF_ALPHA_SEGMENTS)
 Constructor.
 
 FuzzyExtensionPrincipleViaOptimization (const FuzzyExtensionPrincipleViaOptimization &other)
 Copy constructor.
 
 FuzzyExtensionPrincipleViaOptimization (const optimizer::UnconstrainedOptimizer &optimizer, size_t numberOfAlphaSegments=DEFAULT_NUMBER_OF_ALPHA_SEGMENTS)
 Constructor with custom optimization algorithm.
 
 ~FuzzyExtensionPrincipleViaOptimization () override
 Destructor.
 
- Public Member Functions inherited from sgpp::optimization::FuzzyExtensionPrinciple
FuzzyIntervalapply (const std::vector< FuzzyInterval * > &xFuzzy)
 Apply the fuzzy extension principle to fuzzy input intervals.
 
 FuzzyExtensionPrinciple (const base::ScalarFunction &f, size_t numberOfAlphaSegments=DEFAULT_NUMBER_OF_ALPHA_SEGMENTS)
 Constructor.
 
 FuzzyExtensionPrinciple (const FuzzyExtensionPrinciple &other)
 Copy constructor.
 
const base::DataVectorgetAlphaLevels () const
 
const std::vector< base::DataVector > & getMaximumPoints () const
 
const base::DataVectorgetMaximumValues () const
 
const std::vector< base::DataVector > & getMinimumPoints () const
 
const base::DataVectorgetMinimumValues () const
 
size_t getNumberOfAlphaSegments () const
 
const std::vector< base::DataVector > & getOptimizationDomainsLowerBounds () const
 
const std::vector< base::DataVector > & getOptimizationDomainsUpperBounds () const
 
void setNumberOfAlphaSegments (size_t numberOfAlphaSegments)
 
virtual ~FuzzyExtensionPrinciple ()
 Destructor.
 

Protected Member Functions

void optimizeForSingleAlphaLevel (size_t j, base::DataVector &minimumPoint, double &minimumValue, base::DataVector &maximumPoint, double &maximumValue) override
 Solve the minimization/maximization problem for a single \(\alpha\) level.
 
void prepareApply () override
 Custom preparation method that is called before the parallelized optimizeForSingleAlphaLevel calls.
 

Protected Attributes

std::vector< size_t > powersOfTwo
 precomputed storage for the powers of two
 
base::DataVector xTmp
 temporary vector used in optimizeForSingleAlphaLevel
 
- Protected Attributes inherited from sgpp::optimization::FuzzyExtensionPrincipleViaOptimization
optimizer::MultiStart defaultOptimizer
 default optimization algorithm
 
std::unique_ptr< base::ScalarFunctionGradientfGradient
 objective function gradient
 
std::unique_ptr< base::ScalarFunctionGradientfGradientScaled
 scaled objective gradient (confidence interval to unit hyper-cube)
 
std::unique_ptr< base::ScalarFunctionHessianfHessian
 objective function Hessian
 
std::unique_ptr< base::ScalarFunctionHessianfHessianScaled
 scaled objective Hessian (confidence interval to unit hyper-cube)
 
std::unique_ptr< base::ScalarFunctionfScaled
 scaled objective function (confidence interval to unit hyper-cube)
 
std::unique_ptr< optimizer::UnconstrainedOptimizeroptimizer
 optimization algorithm
 
- Protected Attributes inherited from sgpp::optimization::FuzzyExtensionPrinciple
base::DataVector alphaLevels
 number of \(\alpha\) segments
 
std::unique_ptr< base::ScalarFunctionf
 function through which to propagate the uncertainties
 
size_t m
 number of \(\alpha\) segments
 
std::vector< base::DataVectormaximumPoints
 vector of maximum points (after apply call)
 
base::DataVector maximumValues
 vector of maximum function values (after apply call)
 
std::vector< base::DataVectorminimumPoints
 vector of minimum points (after apply call)
 
base::DataVector minimumValues
 vector of minimum function values (after apply call)
 
std::vector< base::DataVectoroptimizationDomainsLowerBounds
 vector of lower bounds of input confidence intervals (after apply call)
 
std::vector< base::DataVectoroptimizationDomainsUpperBounds
 vector of upper bounds of input confidence intervals (after apply call)
 

Additional Inherited Members

- Static Public Attributes inherited from sgpp::optimization::FuzzyExtensionPrinciple
static const size_t DEFAULT_NUMBER_OF_ALPHA_SEGMENTS = 10
 default number of \(\alpha\) segments
 

Detailed Description

Zadeh's fuzzy extension principle by the vertex method, where the optimization problems are solved by simply taking the best corners of the confidence intervals.

Constructor & Destructor Documentation

◆ FuzzyExtensionPrincipleViaVertexMethod() [1/2]

sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::FuzzyExtensionPrincipleViaVertexMethod ( const base::ScalarFunction f,
size_t  numberOfAlphaSegments = DEFAULT_NUMBER_OF_ALPHA_SEGMENTS 
)
explicit

Constructor.

Parameters
ffunction through which to propagate the uncertainties
numberOfAlphaSegmentsnumber of \(\alpha\) segments

◆ FuzzyExtensionPrincipleViaVertexMethod() [2/2]

sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::FuzzyExtensionPrincipleViaVertexMethod ( const FuzzyExtensionPrincipleViaVertexMethod other)

Copy constructor.

Parameters
otherother fuzzy extension principle

◆ ~FuzzyExtensionPrincipleViaVertexMethod()

sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::~FuzzyExtensionPrincipleViaVertexMethod ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::clone ( std::unique_ptr< FuzzyExtensionPrinciple > &  clone) const
overridevirtual
Parameters
[out]clonepointer to cloned object

Reimplemented from sgpp::optimization::FuzzyExtensionPrincipleViaOptimization.

References clone().

Referenced by clone().

◆ optimizeForSingleAlphaLevel()

void sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::optimizeForSingleAlphaLevel ( size_t  j,
base::DataVector minimumPoint,
double &  minimumValue,
base::DataVector maximumPoint,
double &  maximumValue 
)
overrideprotectedvirtual

Solve the minimization/maximization problem for a single \(\alpha\) level.

Parameters
[in]jindex of \(\alpha\) level
[out]minimumPointminimum point
[out]minimumValueminimum function value
[out]maximumPointmaximum point
[out]maximumValuemaximum function value

Reimplemented from sgpp::optimization::FuzzyExtensionPrincipleViaOptimization.

References sgpp::optimization::FuzzyExtensionPrinciple::f, sgpp::optimization::FuzzyExtensionPrinciple::optimizationDomainsLowerBounds, sgpp::optimization::FuzzyExtensionPrinciple::optimizationDomainsUpperBounds, powersOfTwo, and xTmp.

◆ prepareApply()

void sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::prepareApply ( )
overrideprotectedvirtual

Custom preparation method that is called before the parallelized optimizeForSingleAlphaLevel calls.

Reimplemented from sgpp::optimization::FuzzyExtensionPrincipleViaOptimization.

References sgpp::optimization::FuzzyExtensionPrinciple::f, powersOfTwo, and xTmp.

Member Data Documentation

◆ powersOfTwo

std::vector<size_t> sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::powersOfTwo
protected

precomputed storage for the powers of two

Referenced by optimizeForSingleAlphaLevel(), and prepareApply().

◆ xTmp

base::DataVector sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod::xTmp
protected

temporary vector used in optimizeForSingleAlphaLevel

Referenced by optimizeForSingleAlphaLevel(), and prepareApply().


The documentation for this class was generated from the following files: