Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Namespaces | Functions
MathOpt_BFGS.hxx File Reference
#include <MathUtils_Types.hxx>
#include <MathUtils_Config.hxx>
#include <MathUtils_Core.hxx>
#include <MathUtils_LineSearch.hxx>
#include <MathUtils_Deriv.hxx>
#include <NCollection_DynamicArray.hxx>
#include <cmath>

Namespaces

namespace  MathOpt
 Optimization algorithms for scalar and vector functions.
 

Functions

template<typename Function >
VectorResult MathOpt::BFGS (Function &theFunc, const math_Vector &theStartingPoint, const Config &theConfig=Config())
 BFGS (Broyden-Fletcher-Goldfarb-Shanno) quasi-Newton method. One of the most effective algorithms for smooth unconstrained optimization.
 
template<typename Function >
VectorResult MathOpt::BFGSNumerical (Function &theFunc, const math_Vector &theStartingPoint, double theGradStep=1.0e-8, const Config &theConfig=Config())
 BFGS with numerical gradient. Uses central differences to approximate gradient when analytical gradient is not available.
 
template<typename Function >
VectorResult MathOpt::LBFGS (Function &theFunc, const math_Vector &theStartingPoint, int theMemorySize=10, const Config &theConfig=Config())
 L-BFGS (Limited-memory BFGS) for large-scale optimization. Uses only the m most recent {s, y} pairs instead of full Hessian. Memory: O(m*n) instead of O(n^2).
 
template<typename Function >
VectorResult MathOpt::BFGSBounded (Function &theFunc, const math_Vector &theStartingPoint, const math_Vector &theLowerBounds, const math_Vector &theUpperBounds, const Config &theConfig=Config())
 BFGS with bound constraints (box constraints).