class HCL_UMin_d : public HCL_Base

HCL_UMin_d is the abstract base class for unconstrained minimizers

Inheritance:


Public Methods

virtual Table& Parameters () const
Access to parameter table
virtual HCL_EvaluateFunctional_d& LastEval () const
LastEval returns a reference to the functional's evaluation object at the most recent point
virtual void SetScaling ( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver=NULL )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)
virtual void UnSetScaling ()
UnSetScaling returns the inner product to the default.
virtual int Minimize ( HCL_Functional_d & f, HCL_Vector_d & x )
Minimize attempts to find a local minimizer of the functional f, using x as a starting guess

Public

enumReturn values for the method Minimize.

PossibleMinimizer
Possible local minimizer
PossibleConvergence
Possible convergence
LineSearchFailed
Line search failed
PossibleDivergence
Possible divergence
IterationLimit
Iteration limit reached
InaccurateGradient
Possible inaccurate gradient calculation

Inherited from HCL_Base:

Public Methods

void IncCount() const
void DecCount() const
int Count() const
virtual ostream& Write(ostream &) const

Documentation

HCL_UMin_d is the abstract base class for unconstrained minimizers. In the context of HCL, this means that an object of this type will minimize an HCL_Functional_d.

All objects derived from HCL_UMin_d have five methods:

enum Return values for the method Minimize.

PossibleMinimizer
Possible local minimizer. The algorithm has succeeded in reducing the norm of the gradient below the tolerance specified by the user.

PossibleConvergence
Possible convergence. The algorithm took a step shorter than the minimum step length specified by the user.

LineSearchFailed
Line search failed. The line search was unable to reduce the function value.

PossibleDivergence
Possible divergence. The algorithm took 5 consecutive steps exceeding the maximum step length specified by the user.

IterationLimit
Iteration limit reached. The algorithm was unable to meet the stopping criteria in the number of iterations allowed.

InaccurateGradient
Possible inaccurate gradient calculation. The negative gradient was not a descent direction. Note that the minimizer does perform any other check of the accuracy of the gradient calculation. The HCL_Functional_d class has a method CheckGrad to compare the analytic gradient against finite differences, but the implementor of the functional is responsible for calling this method explicitly.

virtual Table& Parameters() const
Access to parameter table. Algorithmic parameters can be accessed with Parameters().GetValue( "NAME",val ) or changed with Parameters().PutValue( "NAME",val ).

virtual HCL_EvaluateFunctional_d& LastEval() const
LastEval returns a reference to the functional's evaluation object at the most recent point. Thus, after the minimization has completed, the calling routine has access to the last function value and gradient.

virtual void SetScaling( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver=NULL )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)

virtual void UnSetScaling()
UnSetScaling returns the inner product to the default.

virtual int Minimize( HCL_Functional_d & f, HCL_Vector_d & x )
Minimize attempts to find a local minimizer of the functional f, using x as a starting guess. The return value is the termination code, as given above.


Direct child classes:
HCL_UMinMethod_d
HCL_UMin_lbfgs_d
HCL_UMinTR_d
HCL_UMinNLCG_d

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de