SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::optimization::FuzzyExtensionPrinciple Class Referenceabstract

Abstract class for Zadeh's fuzzy extension principle to propagate fuzzy input uncertainties through a function to obtain a fuzzy output uncertainty. More...

#include <FuzzyExtensionPrinciple.hpp>

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

Public Member Functions

FuzzyIntervalapply (const std::vector< FuzzyInterval * > &xFuzzy)
 Apply the fuzzy extension principle to fuzzy input intervals.
 
virtual void clone (std::unique_ptr< FuzzyExtensionPrinciple > &clone) const =0
 Pure virtual method for cloning the fuzzy extension principle.
 
 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.
 

Static Public Attributes

static const size_t DEFAULT_NUMBER_OF_ALPHA_SEGMENTS = 10
 default number of \(\alpha\) segments
 

Protected Member Functions

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

Protected Attributes

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)
 

Detailed Description

Abstract class for Zadeh's fuzzy extension principle to propagate fuzzy input uncertainties through a function to obtain a fuzzy output uncertainty.

Subclasses have to specify how the output confidence intervals are determined.

Literature: W. Andreas Klimke. Uncertainty Modeling using Fuzzy Arithmetic and Sparse Grids. PhD thesis, University of Stuttgart, IANS, 2006.

Constructor & Destructor Documentation

◆ FuzzyExtensionPrinciple() [1/2]

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

References f.

◆ FuzzyExtensionPrinciple() [2/2]

sgpp::optimization::FuzzyExtensionPrinciple::FuzzyExtensionPrinciple ( const FuzzyExtensionPrinciple other)

Copy constructor.

Parameters
otherother fuzzy extension principle

References f.

◆ ~FuzzyExtensionPrinciple()

sgpp::optimization::FuzzyExtensionPrinciple::~FuzzyExtensionPrinciple ( )
virtual

Destructor.

Member Function Documentation

◆ apply()

◆ clone()

virtual void sgpp::optimization::FuzzyExtensionPrinciple::clone ( std::unique_ptr< FuzzyExtensionPrinciple > &  clone) const
pure virtual

Pure virtual method for cloning the fuzzy extension principle.

It should generate a pointer to the cloned object and it's used for parallel computations (the optimizeForSingleAlphaLevel() method might not be thread-safe).

Parameters
[out]clonepointer to cloned object

Implemented in sgpp::optimization::FuzzyExtensionPrincipleViaOptimization, sgpp::optimization::FuzzyExtensionPrincipleViaTransformation, and sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod.

Referenced by apply(), and sgpp::optimization::FuzzyExtensionPrincipleViaOptimization::FuzzyExtensionPrincipleViaOptimization().

◆ getAlphaLevels()

const base::DataVector & sgpp::optimization::FuzzyExtensionPrinciple::getAlphaLevels ( ) const
Returns
vector of \(\alpha\) levels (after apply call)

References alphaLevels.

◆ getMaximumPoints()

const std::vector< base::DataVector > & sgpp::optimization::FuzzyExtensionPrinciple::getMaximumPoints ( ) const
Returns
vector of maximum points (after apply call)

References maximumPoints.

◆ getMaximumValues()

const base::DataVector & sgpp::optimization::FuzzyExtensionPrinciple::getMaximumValues ( ) const
Returns
vector of maximum function values (after apply call)

References maximumValues.

◆ getMinimumPoints()

const std::vector< base::DataVector > & sgpp::optimization::FuzzyExtensionPrinciple::getMinimumPoints ( ) const
Returns
vector of minimum points (after apply call)

References minimumPoints.

◆ getMinimumValues()

const base::DataVector & sgpp::optimization::FuzzyExtensionPrinciple::getMinimumValues ( ) const
Returns
vector of minimum function values (after apply call)

References minimumValues.

◆ getNumberOfAlphaSegments()

size_t sgpp::optimization::FuzzyExtensionPrinciple::getNumberOfAlphaSegments ( ) const
Returns
number of \(\alpha\) segments

References m.

◆ getOptimizationDomainsLowerBounds()

const std::vector< base::DataVector > & sgpp::optimization::FuzzyExtensionPrinciple::getOptimizationDomainsLowerBounds ( ) const
Returns
vector of lower bounds of input confidence intervals (after apply call)

References optimizationDomainsLowerBounds.

◆ getOptimizationDomainsUpperBounds()

const std::vector< base::DataVector > & sgpp::optimization::FuzzyExtensionPrinciple::getOptimizationDomainsUpperBounds ( ) const
Returns
vector of upper bounds of input confidence intervals (after apply call)

References optimizationDomainsUpperBounds.

◆ optimizeForSingleAlphaLevel()

virtual void sgpp::optimization::FuzzyExtensionPrinciple::optimizeForSingleAlphaLevel ( size_t  j,
base::DataVector minimumPoint,
double &  minimumValue,
base::DataVector maximumPoint,
double &  maximumValue 
)
protectedpure virtual

Pure virtual method for solving 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

Implemented in sgpp::optimization::FuzzyExtensionPrincipleViaOptimization, sgpp::optimization::FuzzyExtensionPrincipleViaTransformation, and sgpp::optimization::FuzzyExtensionPrincipleViaVertexMethod.

◆ prepareApply()

void sgpp::optimization::FuzzyExtensionPrinciple::prepareApply ( )
protectedvirtual

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

Here empty, but can be overridden by subclasses.

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

◆ setNumberOfAlphaSegments()

void sgpp::optimization::FuzzyExtensionPrinciple::setNumberOfAlphaSegments ( size_t  numberOfAlphaSegments)
Parameters
numberOfAlphaSegmentsnumber of \(\alpha\) segments

References m.

Member Data Documentation

◆ alphaLevels

base::DataVector sgpp::optimization::FuzzyExtensionPrinciple::alphaLevels
protected

number of \(\alpha\) segments

Referenced by apply(), and getAlphaLevels().

◆ DEFAULT_NUMBER_OF_ALPHA_SEGMENTS

const size_t sgpp::optimization::FuzzyExtensionPrinciple::DEFAULT_NUMBER_OF_ALPHA_SEGMENTS = 10
static

default number of \(\alpha\) segments

◆ f

◆ m

◆ maximumPoints

std::vector<base::DataVector> sgpp::optimization::FuzzyExtensionPrinciple::maximumPoints
protected

◆ maximumValues

base::DataVector sgpp::optimization::FuzzyExtensionPrinciple::maximumValues
protected

vector of maximum function values (after apply call)

Referenced by apply(), and getMaximumValues().

◆ minimumPoints

std::vector<base::DataVector> sgpp::optimization::FuzzyExtensionPrinciple::minimumPoints
protected

◆ minimumValues

base::DataVector sgpp::optimization::FuzzyExtensionPrinciple::minimumValues
protected

vector of minimum function values (after apply call)

Referenced by apply(), and getMinimumValues().

◆ optimizationDomainsLowerBounds

◆ optimizationDomainsUpperBounds


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