EndCriteria Class Reference
Criteria to end optimization process: More...
#include <ql/math/optimization/endcriteria.hpp>
Public Types | |
enum | Type { None, MaxIterations, StationaryPoint, StationaryFunctionValue, StationaryFunctionAccuracy, ZeroGradientNorm, Unknown } |
Public Member Functions | |
EndCriteria (Size maxIterations, Size maxStationaryStateIterations, Real rootEpsilon, Real functionEpsilon, Real gradientNormEpsilon) | |
Initialization constructor. | |
Size | maxIterations () const |
Size | maxStationaryStateIterations () const |
Real | rootEpsilon () const |
Real | functionEpsilon () const |
Real | gradientNormEpsilon () const |
bool | operator() (const Size iteration, Size &statState, const bool positiveOptimization, const Real fold, const Real normgold, const Real fnew, const Real normgnew, EndCriteria::Type &ecType) const |
bool | checkMaxIterations (const Size iteration, EndCriteria::Type &ecType) const |
bool | checkStationaryPoint (const Real xOld, const Real xNew, Size &statStateIterations, EndCriteria::Type &ecType) const |
bool | checkStationaryFunctionValue (const Real fxOld, const Real fxNew, Size &statStateIterations, EndCriteria::Type &ecType) const |
bool | checkStationaryFunctionAccuracy (const Real f, const bool positiveOptimization, EndCriteria::Type &ecType) const |
bool | checkZeroGradientNorm (const Real gNorm, EndCriteria::Type &ecType) const |
Protected Attributes | |
Size | maxIterations_ |
Maximum number of iterations. | |
Size | maxStationaryStateIterations_ |
Maximun number of iterations in stationary state. | |
Real | rootEpsilon_ |
root, function and gradient epsilons | |
Real | functionEpsilon_ |
Real | gradientNormEpsilon_ |
Detailed Description
Criteria to end optimization process:
- maximum number of iterations AND minimum number of iterations around stationary point
- x (independent variable) stationary point
- y=f(x) (dependent variable) stationary point
- stationary gradient
- Examples:
Member Function Documentation
bool operator() | ( | const Size | iteration, |
Size & | statState, | ||
const bool | positiveOptimization, | ||
const Real | fold, | ||
const Real | normgold, | ||
const Real | fnew, | ||
const Real | normgnew, | ||
EndCriteria::Type & | ecType | ||
) | const |
Test if the number of iterations is not too big and if a minimum point is not reached
bool checkMaxIterations | ( | const Size | iteration, |
EndCriteria::Type & | ecType | ||
) | const |
Test if the number of iteration is below MaxIterations
bool checkStationaryPoint | ( | const Real | xOld, |
const Real | xNew, | ||
Size & | statStateIterations, | ||
EndCriteria::Type & | ecType | ||
) | const |
Test if the root variation is below rootEpsilon
bool checkStationaryFunctionValue | ( | const Real | fxOld, |
const Real | fxNew, | ||
Size & | statStateIterations, | ||
EndCriteria::Type & | ecType | ||
) | const |
Test if the function variation is below functionEpsilon
bool checkStationaryFunctionAccuracy | ( | const Real | f, |
const bool | positiveOptimization, | ||
EndCriteria::Type & | ecType | ||
) | const |
Test if the function value is below functionEpsilon
bool checkZeroGradientNorm | ( | const Real | gNorm, |
EndCriteria::Type & | ecType | ||
) | const |
Test if the gradient norm variation is below gradientNormEpsilon
Test if the gradient norm value is below gradientNormEpsilon