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

Zadeh's fuzzy extension principle by the transformation method, where the optimization problems are solved by sampling the optimization domains and taking the best points. More...

#include <FuzzyExtensionPrincipleViaTransformation.hpp>

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

Public Member Functions

void clone (std::unique_ptr< FuzzyExtensionPrinciple > &clone) const override
 
 FuzzyExtensionPrincipleViaTransformation (const base::ScalarFunction &f, size_t numberOfAlphaSegments=DEFAULT_NUMBER_OF_ALPHA_SEGMENTS)
 Constructor.
 
 FuzzyExtensionPrincipleViaTransformation (const FuzzyExtensionPrincipleViaTransformation &other)
 Copy constructor.
 
 ~FuzzyExtensionPrincipleViaTransformation () 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< std::vector< base::DataVector > > C
 sampling points
 
std::vector< size_t > gammaSize
 index scaling vector
 
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 transformation method, where the optimization problems are solved by sampling the optimization domains and taking the best points.

The transformation method produces inaccurate results if the fuzzy input intervals are not fuzzy numbers, i.e., if the confidence intervals for \(\alpha = 1\) contain more than one point.

Constructor & Destructor Documentation

◆ FuzzyExtensionPrincipleViaTransformation() [1/2]

sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::FuzzyExtensionPrincipleViaTransformation ( 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

◆ FuzzyExtensionPrincipleViaTransformation() [2/2]

sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::FuzzyExtensionPrincipleViaTransformation ( const FuzzyExtensionPrincipleViaTransformation other)

Copy constructor.

Parameters
otherother fuzzy extension principle

◆ ~FuzzyExtensionPrincipleViaTransformation()

sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::~FuzzyExtensionPrincipleViaTransformation ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::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::FuzzyExtensionPrincipleViaTransformation::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 C, sgpp::optimization::FuzzyExtensionPrinciple::f, gammaSize, sgpp::optimization::FuzzyExtensionPrinciple::m, and xTmp.

◆ prepareApply()

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

Member Data Documentation

◆ C

std::vector<std::vector<base::DataVector> > sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::C
protected

◆ gammaSize

std::vector<size_t> sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::gammaSize
protected

index scaling vector

Referenced by optimizeForSingleAlphaLevel(), and prepareApply().

◆ xTmp

base::DataVector sgpp::optimization::FuzzyExtensionPrincipleViaTransformation::xTmp
protected

temporary vector used in optimizeForSingleAlphaLevel

Referenced by optimizeForSingleAlphaLevel(), and prepareApply().


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