QMCSteepestDescent Class Reference

Steepest descent line search numerical optimization algorithm. More...

#include <QMCSteepestDescent.h>

Inheritance diagram for QMCSteepestDescent:

QMCLineSearch QMCOptimizationAlgorithm

List of all members.

Public Member Functions

 QMCSteepestDescent (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

QMCObjectiveFunctiongetObjectiveFunction ()
 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.

Detailed Description

Steepest descent line search numerical optimization algorithm.

As is standard in the field, the optimization is a minimization.

Definition at line 23 of file QMCSteepestDescent.h.

Constructor & Destructor Documentation

QMCSteepestDescent::QMCSteepestDescent ( 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 $\left| 1-\frac{f(x_{i+1})}{f(x_{i})} \right| < tol $.

Definition at line 15 of file QMCSteepestDescent.cpp.

Member Function Documentation

void QMCSteepestDescent::calculateHessian (  )  [private, virtual]

Calculates the search direction at x.

x' = x + StepLength * SearchDirection. Where the search direction is the negative of the gradient.

Implements QMCLineSearch.

Definition at line 21 of file QMCSteepestDescent.cpp.

Array1D< double > QMCLineSearch::optimize ( Array1D< double > &  initialGuess,
QMCDerivativeProperties dp,
double  ,
) [virtual, inherited]

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().

Member Data Documentation

int QMCLineSearch::dim [protected, inherited]

vector<double> QMCLineSearch::f [protected, inherited]

Definition at line 63 of file QMCLineSearch.h.

Referenced by QMCLineSearch::optimize().

vector< Array1D<double> > QMCLineSearch::x [protected, inherited]

vector< Array1D<double> > QMCLineSearch::gradient [protected, inherited]

vector< Array2D<double> > QMCLineSearch::inverseHessian [protected, inherited]

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

Generated on Sat Jul 5 16:14:06 2008 for QMcBeaver by  doxygen 1.5.6