class PowellOptima : public LineSearchOptima

Powell Optima

Inheritance:


public members:

PowellOptima ( LineSearch * ls, int iter , double tol , double changOf, double delta, int vebose)
a constructor
LineSearch * ls
defines the line search used in the optimization
int iter
maximum number of iterations
double tol
tolerance used in the line search
double changOf
minimum relative change of function value to stop the optimization (stopping criterion)
double delta
initial step used in line search
int vebose
vebose or quiet
PowellOptima ( LineSearch * ls, int iter , double tol , double changeOf, double delta)
a constructor
Model <double> optimizer ( Model <double>& m0)
Powell's search starting from m0, returns an optimum model
Model <long> optimizer ( Model <long>& m0)
Powell's 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)

Documentation

Powell's method can be considered a derivative-free version of the conjugate gradient algorithm (Powell, M., Computer Journal, 7, 155-162). Here the objective function is minimized from an initial model along a set of conjugate directiions generatied by the procedure without resorting to the gradient of the objective function.

Although an interesting algorithm, Powell's method has demonstrated to have a high computational cost, due the excessive number of line search required to compute the conjugate directions (see Applied Nonlinear Programming, by David Himmelblau for details. It seems that the standard conjugate gradient by Hesteness and Stiefel with numerical derivatives is a more efficient 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