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

Zadeh's fuzzy extension principle by solving optimization problems for each \(\alpha\) level. More...

#include <FuzzyExtensionPrincipleViaOptimization.hpp>

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

Public Member Functions

void clone (std::unique_ptr< FuzzyExtensionPrinciple > &clone) const override
 
 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

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 solving optimization problems for each \(\alpha\) level.

Constructor & Destructor Documentation

◆ FuzzyExtensionPrincipleViaOptimization() [1/3]

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

Constructor.

By default, MultiStart is used as optimization algorithm.

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

References sgpp::optimization::optimizer::MultiStart::clone(), defaultOptimizer, and optimizer.

◆ FuzzyExtensionPrincipleViaOptimization() [2/3]

sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::FuzzyExtensionPrincipleViaOptimization ( const optimizer::UnconstrainedOptimizer optimizer,
size_t  numberOfAlphaSegments = DEFAULT_NUMBER_OF_ALPHA_SEGMENTS 
)
explicit

Constructor with custom optimization algorithm.

Parameters
optimizeroptimization algorithm and function through which to propagate the uncertainties
numberOfAlphaSegmentsnumber of \(\alpha\) segments

References sgpp::optimization::FuzzyExtensionPrinciple::clone(), fGradient, fHessian, and optimizer.

◆ FuzzyExtensionPrincipleViaOptimization() [3/3]

sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::FuzzyExtensionPrincipleViaOptimization ( const FuzzyExtensionPrincipleViaOptimization other)

Copy constructor.

Parameters
otherother fuzzy extension principle

References fGradient, fGradientScaled, fHessian, fHessianScaled, fScaled, and optimizer.

◆ ~FuzzyExtensionPrincipleViaOptimization()

sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::~FuzzyExtensionPrincipleViaOptimization ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::clone ( std::unique_ptr< FuzzyExtensionPrinciple > &  clone) const
overridevirtual

◆ optimizeForSingleAlphaLevel()

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

◆ prepareApply()

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

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

Reimplemented from sgpp::optimization::FuzzyExtensionPrinciple.

Reimplemented in sgpp::optimization::FuzzyExtensionPrincipleViaTransformation, and sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod.

References sgpp::optimization::FuzzyExtensionPrinciple::f, fGradient, fGradientScaled, fHessian, fHessianScaled, and fScaled.

Member Data Documentation

◆ defaultOptimizer

optimizer::MultiStart sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::defaultOptimizer
protected

default optimization algorithm

Referenced by FuzzyExtensionPrincipleViaOptimization().

◆ fGradient

std::unique_ptr<base::ScalarFunctionGradient> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::fGradient
protected

◆ fGradientScaled

std::unique_ptr<base::ScalarFunctionGradient> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::fGradientScaled
protected

scaled objective gradient (confidence interval to unit hyper-cube)

Referenced by FuzzyExtensionPrincipleViaOptimization(), optimizeForSingleAlphaLevel(), and prepareApply().

◆ fHessian

std::unique_ptr<base::ScalarFunctionHessian> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::fHessian
protected

◆ fHessianScaled

std::unique_ptr<base::ScalarFunctionHessian> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::fHessianScaled
protected

scaled objective Hessian (confidence interval to unit hyper-cube)

Referenced by FuzzyExtensionPrincipleViaOptimization(), optimizeForSingleAlphaLevel(), and prepareApply().

◆ fScaled

std::unique_ptr<base::ScalarFunction> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::fScaled
protected

scaled objective function (confidence interval to unit hyper-cube)

Referenced by FuzzyExtensionPrincipleViaOptimization(), optimizeForSingleAlphaLevel(), and prepareApply().

◆ optimizer

std::unique_ptr<optimizer::UnconstrainedOptimizer> sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::optimizer
protected

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