class HCL_CMinAL_d : public HCL_Base

HCL_CMinAL_d implements the augmented Lagrangian algorithm for an equality constrained nonlinear programs

Inheritance:


Public Methods

HCL_CMinAL_d ( const HCL_CMinAL_d & x )
Copy constructor---disabled.
HCL_CMinAL_d ( HCL_UMin_d * um, char * fname = NULL )
The constructor takes a (pointer to an) HCL_UMin_d object
virtual Table& Parameters () const
Access to parameter table
virtual void Display ()
Print current status
virtual HCL_EvalALFcnl_d& LastEval ()
Return a reference to the last evaluation object, thus giving access to all of the information at the computed solution
virtual int Minimize ( HCL_Functional_d & f, HCL_Op_d & H, HCL_Vector_d & x )
Minimize attempts to solve the problem of minimizing f(x) subject to the constraint H(x) = 0
virtual ostream& Write (ostream &) const
Prints description of the object

Inherited from HCL_Base:

Public Methods

void IncCount() const
void DecCount() const
int Count() const

Documentation

HCL_CMinAL_d implements the augmented Lagrangian algorithm for an equality constrained nonlinear programs. The augmented Lagrangian algorithm is a Sequential Unconstrained Minimization Technique, and is based on a (user-provided) HCL_UMin_d object, which performs the unconstrained minimization.

The problem addressed by this algorithm is where is a real-valued function (an instance of HCL_Functional_d) and is an operator (an instance of HCL_Op_d).

The augmented Lagrangian algorithm takes an initial estimate of the solution and an initial estimate of the Lagrange multiplier , and minimizes the augmented Lagrangian functional (subject to no constraints). The estimate of the Lagrange multiplier is then updated and the process is repeated. The iteration halts when the gradient of the Lagrangian (the augmented Lagrangian without the penalty (third) term) is approximately zero.

int MaxItn
(10) Maximum number of iterations.

double GradTol
(1e-4) Gradient tolerance. The algorithm attempts to locate a point where the relative norm of the gradient of the Lagrangian is less than this value.

double ConstrTol
(1e-4) Constraint tolerance. The algorithm attempts to locate a point where the norm of the constraint violation is less than this value.

int DispFlag
(0) Display level. This determines how much information should be displayed during the execution of the algorithm. Possible values are: 0 - No output; 1 - Function value and gradient norm after final iteration; 2 - Function value and gradient norm after every iteration.

int DumpFlag
(0) Dump level. This determines how much information should be sent to the dump file during the execution of the algorithm. Possible values are: 0 - No output; 1 - Function value and gradient norm after final iteration; 2 - Function value and gradient norm after every iteration.

char DumpFile[81]
(HCL_UMin_lbfgs.DumpFile) Dump file name.

int DispPrecision
(6) Display precision---the number of digits sent to the screen

int DumpPrecision
(6) Dump precision---the number of digits sent to the file

double InitPenParam
(1) Initial penalty parameter

double PenParamIncFac
(4) Factor for increasing penalty parameter

double IncPenaltyThreshold
(1/4) Norm of the constraint violation must decrease by this factor at each step; otherwise, the penalty parameter is increased by the factor PenParamIncFac

double MaxPenParam
(1e8) The penalty parameter will not be increased above this value

double GradDecThreshold
(9/10) Norm of the gradient of the Lagrangian must decrease by this factor at each step; otherwise, the gradient tolerance for the unconstrained minimizer is decreased by the factor UMinGradTolDecFac

double UMinGradTolDecFac
(1/2) Factor by which to decrease the gradient tolerance for the unconstrained minimizer if the gradient of the Lagrangian is not decreased

double UMinMinGradTol
(1e-8) The unconstrained minimizer's GradTol will not be decreased below this value

HCL_CMinAL_d( const HCL_CMinAL_d & x )
Copy constructor---disabled.

HCL_CMinAL_d( HCL_UMin_d * um, char * fname = NULL )
The constructor takes a (pointer to an) HCL_UMin_d object. Optionally, a file containing algorithmic parameters can be provided. If given, this file contains algorithmic parameters (such as stopping tolerances), a full list of which is given elsewhere in the documentation of this class. For example, to set the maximum number of iterations to 100, the file should contain a line of the form CMinAL::MaxItn = 100 or, alternately, CMin::MaxItn = 100.

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

virtual void Display()
Print current status. The level of output is controlled by the parameter DispFlag---the larger the value of DispFlag, the more information is displayed.

virtual HCL_EvalALFcnl_d& LastEval()
Return a reference to the last evaluation object, thus giving access to all of the information at the computed solution

virtual int Minimize( HCL_Functional_d & f, HCL_Op_d & H, HCL_Vector_d & x )
Minimize attempts to solve the problem of minimizing f(x) subject to the constraint H(x) = 0. A starting guess must be provided. Currently the Lagrange multiplier is initialized to zero.

virtual ostream& Write(ostream &) const
Prints description of the object


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
contact: doc++@zib.de