Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
math_GlobOptMin Class Reference

This class represents Evtushenko's algorithm of global optimization based on non-uniform mesh. Article: Yu. Evtushenko. Numerical methods for finding global extreme (case of a non-uniform mesh). U.S.S.R. Comput. Maths. Math. Phys., Vol. 11, N 6, pp. 38-54. More...

#include <math_GlobOptMin.hxx>

Public Member Functions

 math_GlobOptMin (math_MultipleVarFunction *theFunc, const math_Vector &theLowerBorder, const math_Vector &theUpperBorder, const double theC=9, const double theDiscretizationTol=1.0e-2, const double theSameTol=1.0e-7)
 Constructor. Perform method is not called from it.
 
void SetGlobalParams (math_MultipleVarFunction *theFunc, const math_Vector &theLowerBorder, const math_Vector &theUpperBorder, const double theC=9, const double theDiscretizationTol=1.0e-2, const double theSameTol=1.0e-7)
 
void SetLocalParams (const math_Vector &theLocalA, const math_Vector &theLocalB)
 Method to reduce bounding box. Perform will use this box.
 
void SetTol (const double theDiscretizationTol, const double theSameTol)
 Method to set tolerances.
 
void GetTol (double &theDiscretizationTol, double &theSameTol)
 Method to get tolerances.
 
void Perform (const bool isFindSingleSolution=false)
 
void Points (const int theIndex, math_Vector &theSol)
 Return solution theIndex, 1 <= theIndex <= NbExtrema.
 
void SetContinuity (const int theCont)
 Set / Get continuity of local borders splits (0 ~ C0, 1 ~ C1, 2 ~ C2).
 
int GetContinuity () const
 
void SetFunctionalMinimalValue (const double theMinimalValue)
 Set / Get functional minimal value.
 
double GetFunctionalMinimalValue () const
 
void SetLipConstState (const bool theFlag)
 Set / Get Lipchitz constant modification state. True means that the constant is locked and unlocked otherwise.
 
bool GetLipConstState () const
 
bool isDone () const
 Return computation state of the algorithm.
 
double GetF () const
 Get best functional value.
 
int NbExtrema () const
 Return count of global extremas.
 

Detailed Description

This class represents Evtushenko's algorithm of global optimization based on non-uniform mesh. Article: Yu. Evtushenko. Numerical methods for finding global extreme (case of a non-uniform mesh). U.S.S.R. Comput. Maths. Math. Phys., Vol. 11, N 6, pp. 38-54.

This method performs search on non-uniform mesh. The search space is a box in R^n space. The default behavior is to find all minimums in that box. Computation of maximums is not supported.

The search box can be split into smaller boxes by discontinuity criteria. This functionality is covered by SetGlobalParams and SetLocalParams API.

It is possible to set continuity of the local boxes. Such option can forcibly change local extrema search. In other words if theFunc can be casted to the function with Hessian but, continuity is set to 1 Gradient based local optimization method will be used, not Hessian based method. This functionality is covered by SetContinuity and GetContinuity API.

It is possible to freeze Lipschitz const to avoid internal modifications on it. This functionality is covered by SetLipConstState and GetLipConstState API.

It is possible to perform single solution search. This functionality is covered by first parameter in Perform method.

It is possible to set / get minimal value of the functional. It works well together with single solution search. This functionality is covered by SetFunctionalMinimalValue and GetFunctionalMinimalValue API.

Constructor & Destructor Documentation

◆ math_GlobOptMin()

math_GlobOptMin::math_GlobOptMin ( math_MultipleVarFunction * theFunc,
const math_Vector & theLowerBorder,
const math_Vector & theUpperBorder,
const double theC = 9,
const double theDiscretizationTol = 1.0e-2,
const double theSameTol = 1.0e-7 )

Constructor. Perform method is not called from it.

Parameters
theFunc- objective functional.
theLowerBorder- lower corner of the search box.
theUpperBorder- upper corner of the search box.
theC- Lipschitz constant.
theDiscretizationTol- parameter space discretization tolerance.
theSameTol- functional value space indifference tolerance.

Member Function Documentation

◆ GetContinuity()

int math_GlobOptMin::GetContinuity ( ) const
inline

◆ GetF()

double math_GlobOptMin::GetF ( ) const
inline

Get best functional value.

◆ GetFunctionalMinimalValue()

double math_GlobOptMin::GetFunctionalMinimalValue ( ) const
inline

◆ GetLipConstState()

bool math_GlobOptMin::GetLipConstState ( ) const
inline

◆ GetTol()

void math_GlobOptMin::GetTol ( double & theDiscretizationTol,
double & theSameTol )

Method to get tolerances.

Parameters
theDiscretizationTol- parameter space discretization tolerance.
theSameTol- functional value space indifference tolerance.

◆ isDone()

bool math_GlobOptMin::isDone ( ) const
inline

Return computation state of the algorithm.

◆ NbExtrema()

int math_GlobOptMin::NbExtrema ( ) const
inline

Return count of global extremas.

◆ Perform()

void math_GlobOptMin::Perform ( const bool isFindSingleSolution = false)
Parameters
isFindSingleSolution- defines whether to find single solution or all solutions.

◆ Points()

void math_GlobOptMin::Points ( const int theIndex,
math_Vector & theSol )

Return solution theIndex, 1 <= theIndex <= NbExtrema.

◆ SetContinuity()

void math_GlobOptMin::SetContinuity ( const int theCont)
inline

Set / Get continuity of local borders splits (0 ~ C0, 1 ~ C1, 2 ~ C2).

◆ SetFunctionalMinimalValue()

void math_GlobOptMin::SetFunctionalMinimalValue ( const double theMinimalValue)
inline

Set / Get functional minimal value.

◆ SetGlobalParams()

void math_GlobOptMin::SetGlobalParams ( math_MultipleVarFunction * theFunc,
const math_Vector & theLowerBorder,
const math_Vector & theUpperBorder,
const double theC = 9,
const double theDiscretizationTol = 1.0e-2,
const double theSameTol = 1.0e-7 )
Parameters
theFunc- objective functional.
theLowerBorder- lower corner of the search box.
theUpperBorder- upper corner of the search box.
theC- Lipschitz constant.
theDiscretizationTol- parameter space discretization tolerance.
theSameTol- functional value space indifference tolerance.

◆ SetLipConstState()

void math_GlobOptMin::SetLipConstState ( const bool theFlag)
inline

Set / Get Lipchitz constant modification state. True means that the constant is locked and unlocked otherwise.

◆ SetLocalParams()

void math_GlobOptMin::SetLocalParams ( const math_Vector & theLocalA,
const math_Vector & theLocalB )

Method to reduce bounding box. Perform will use this box.

Parameters
theLocalA- lower corner of the local box.
theLocalB- upper corner of the local box.

◆ SetTol()

void math_GlobOptMin::SetTol ( const double theDiscretizationTol,
const double theSameTol )

Method to set tolerances.

Parameters
theDiscretizationTol- parameter space discretization tolerance.
theSameTol- functional value space indifference tolerance.

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