class ConjugateGradient : public LineSearchOptima

Nonlinear Conjugate Gradient


public members:

ConjugateGradient ( LineSearch * ls, int iter , double tol , int verb)
a constructor
LineSearch * ls
pointer to the line-search object.
int iter
Maximum number of iterations
double tol
minimum accepted gradient at optimum solution
int verb
vebose or quiet
ConjugateGradient ( LineSearch * ls, int iter , double tol )
a constructor
Model <double> optimizer ( Model <double>& m0)
conjugate gradient search starting from m0, returns an optimum Model
const char* className () const

Inherited from LineSearchOptima:

public members:

virtual Model <double> optimizer( Model <double>&)
virtual Model <long> optimizer( Model <long>&)
const char* objName()
int numIterations()
int currentNumSearches()
int oneNumSearches(int i)
List <int> allNumSearches()

Inherited from NonQuadraticOptima:

Inherited from Optima:

protected members:

int iterMax
double tol
List <double>* residue
ObjectiveFunction * fp
int isVerbose
int isSuccess
List <double> appendResidue(double res)


This conjugate gradient procedure implemented in this object is an extension of the conjugate gradient used in linear system solving to handle non quadratic objective functions. Such extensions amount basically to the inclusion of a line search step and a modification in the computation of the conjugate directions. Details can be found in the classic (and tough!) book Practical Optimization by Powell.

This procedure requires the derivatives of the objective function. The current release of COOOL can handle analytic gradient information provided by the user through communication with SlaveForward. However, if the gradient cannot be computed, COOOL can compute the gradient using a centered finite difference scheme.

ConjugateGradient ( LineSearch * ls, int iter , double tol , int verb)
At the present version, you should use the CubicLineSearch procedure

this class has no child classes.

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling