#include <QMCBFGSQuasiNewtonLineSearch.h>

Public Member Functions | |
| QMCBFGSQuasiNewtonLineSearch (QMCObjectiveFunction *function, QMCLineSearchStepLengthSelectionAlgorithm *stepAlg, int maxSteps, double tol) | |
| Constructs and initializes an instance of this class. | |
| Array1D< double > | optimize (Array1D< double > &initialGuess, QMCDerivativeProperties &dp, double a_diag_factor, int optStep) |
| Optimize the function starting from the provided initial guess parameters. | |
Protected Member Functions | |
| QMCObjectiveFunction * | getObjectiveFunction () |
| Gets the objective function for the calculation. | |
Protected Attributes | |
| int | dim |
| vector< double > | f |
| vector< Array1D< double > > | x |
| vector< Array1D< double > > | gradient |
| vector< Array2D< double > > | inverseHessian |
Private Member Functions | |
| void | calculateHessian () |
| Calculates the search direction at x. | |
As is standard in the field, the optimization is a minimization.
Definition at line 23 of file QMCBFGSQuasiNewtonLineSearch.h.
| QMCBFGSQuasiNewtonLineSearch::QMCBFGSQuasiNewtonLineSearch | ( | QMCObjectiveFunction * | function, | |
| QMCLineSearchStepLengthSelectionAlgorithm * | stepAlg, | |||
| int | maxSteps, | |||
| double | tol | |||
| ) |
Constructs and initializes an instance of this class.
| function | objective function to optimize. | |
| stepAlg | algorithm to use in determining the line search step length. | |
| maxSteps | maximum number of steps to be performed during the line search. | |
| tol | tolerance to converge the solution to. Calculation is converged when . |
Definition at line 15 of file QMCBFGSQuasiNewtonLineSearch.cpp.
| void QMCBFGSQuasiNewtonLineSearch::calculateHessian | ( | ) | [private, virtual] |
Calculates the search direction at x.
x' = x + StepLength * SearchDirection. Where the search direction is the approximately the Newton step direction. The step is determined using the BFGS Quasi-Newton algorithm.
Implements QMCLineSearch.
Definition at line 23 of file QMCBFGSQuasiNewtonLineSearch.cpp.
References QMCLineSearch::dim, QMCLineSearch::gradient, QMCLineSearch::inverseHessian, and QMCLineSearch::x.
| Array1D< double > QMCLineSearch::optimize | ( | Array1D< double > & | initialGuess, | |
| QMCDerivativeProperties & | dp, | |||
| double | , | |||
| int | ||||
| ) | [virtual, inherited] |
Optimize the function starting from the provided initial guess parameters.
| initialGuess | initial guess parameters for the optimization. |
Implements QMCOptimizationAlgorithm.
Definition at line 60 of file QMCLineSearch.cpp.
References QMCFlags::a_diag, Array2D< T >::determinant_and_inverse(), QMCLineSearch::dim, Array2D< T >::dim1(), Array1D< T >::dim1(), Array2D< T >::dim2(), Array2D< T >::eigenvaluesRS(), QMCLineSearch::epsilon, QMCObjectiveFunction::evaluate(), QMCLineSearch::f, QMCInput::flags, QMCLineSearch::getObjectiveFunction(), QMCDerivativeProperties::getParameterGradient(), QMCDerivativeProperties::getParameterHessian(), QMCDerivativeProperties::getParameterValue(), QMCObjectiveFunctionResult::getScore(), globalInput, QMCLineSearch::gradient, QMCLineSearch::inverseHessian, QMCLineSearch::maximumSteps, Array2D< T >::nonSymmetry(), QMCLineSearch::OF, QMCFlags::optimize_Psi_method, QMCInput::printAIParameters(), Array2D< T >::printArray2D(), QMCLineSearch::searchDirection(), Array2D< T >::setToIdentity(), QMCLineSearch::stepLength(), and QMCLineSearch::x.
| QMCObjectiveFunction * QMCLineSearch::getObjectiveFunction | ( | ) | [protected, inherited] |
Gets the objective function for the calculation.
Definition at line 272 of file QMCLineSearch.cpp.
References QMCLineSearch::OF.
Referenced by QMCLineSearch::optimize().
int QMCLineSearch::dim [protected, inherited] |
Definition at line 62 of file QMCLineSearch.h.
Referenced by calculateHessian(), QMCLineSearch::optimize(), QMCLineSearch::QMCLineSearch(), and QMCLineSearch::searchDirection().
vector<double> QMCLineSearch::f [protected, inherited] |
vector< Array1D<double> > QMCLineSearch::x [protected, inherited] |
Definition at line 64 of file QMCLineSearch.h.
Referenced by calculateHessian(), and QMCLineSearch::optimize().
vector< Array1D<double> > QMCLineSearch::gradient [protected, inherited] |
Definition at line 65 of file QMCLineSearch.h.
Referenced by calculateHessian(), QMCLineSearch::optimize(), and QMCLineSearch::searchDirection().
vector< Array2D<double> > QMCLineSearch::inverseHessian [protected, inherited] |
Definition at line 66 of file QMCLineSearch.h.
Referenced by calculateHessian(), QMCLineSearch::optimize(), and QMCLineSearch::searchDirection().
1.5.6