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

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 Standard_Real  theC = 9,
const Standard_Real  theDiscretizationTol = 1.0e-2,
const Standard_Real  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()

Standard_Integer math_GlobOptMin::GetContinuity ( ) const
inline

◆ GetF()

Standard_Real math_GlobOptMin::GetF ( ) const
inline

Get best functional value.

◆ GetFunctionalMinimalValue()

Standard_Real math_GlobOptMin::GetFunctionalMinimalValue ( ) const
inline

◆ GetLipConstState()

Standard_Boolean math_GlobOptMin::GetLipConstState ( ) const
inline

◆ GetTol()

void math_GlobOptMin::GetTol ( Standard_Real theDiscretizationTol,
Standard_Real theSameTol 
)

Method to get tolerances.

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

◆ isDone()

Standard_Boolean math_GlobOptMin::isDone ( ) const
inline

Return computation state of the algorithm.

◆ NbExtrema()

Standard_Integer math_GlobOptMin::NbExtrema ( ) const
inline

Return count of global extremas.

◆ Perform()

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

◆ Points()

void math_GlobOptMin::Points ( const Standard_Integer  theIndex,
math_Vector theSol 
)

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

◆ SetContinuity()

void math_GlobOptMin::SetContinuity ( const Standard_Integer  theCont)
inline

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

◆ SetFunctionalMinimalValue()

void math_GlobOptMin::SetFunctionalMinimalValue ( const Standard_Real  theMinimalValue)
inline

Set / Get functional minimal value.

◆ SetGlobalParams()

void math_GlobOptMin::SetGlobalParams ( math_MultipleVarFunction theFunc,
const math_Vector theLowerBorder,
const math_Vector theUpperBorder,
const Standard_Real  theC = 9,
const Standard_Real  theDiscretizationTol = 1.0e-2,
const Standard_Real  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 Standard_Boolean  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 Standard_Real  theDiscretizationTol,
const Standard_Real  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: