class HCL_ALFcnl_d : public HCL_Functional_d

HCL_ALFcnl_d implements an Augmented Lagrangian functional; it is intended for use with HCL_CMinAL_d

Inheritance:


Public Methods

HCL_ALFcnl_d ( HCL_Functional_d * ff, HCL_Op_d * HH, HCL_Vector_d * l, double rho=1.0, HCL_LinearOp_d * SS=NULL )
Usual constructor
virtual HCL_VectorSpace_d& Domain () const
Domain space access.
virtual double MaxStep ( const HCL_Vector_d & x, const HCL_Vector_d &dir) const
MaxStep computes the longest vector from x in the direction dir that will lie in the domain of the functional, i
Table& Parameters ()
Access to parameter table
virtual HCL_EvaluateFunctional_d* Evaluate ( const HCL_Vector_d & x ) const
Evaluate creates an "evaluation" object, which knows how to compute the function value and gradient at the given x
virtual ostream& Write ( ostream & str ) const
Write prints out some useful information about the function.

Inherited from HCL_Functional_d:

Public Methods

virtual double Value( const HCL_Vector_d & x ) const
virtual void Gradient( const HCL_Vector_d & x, HCL_Vector_d & g ) const
virtual HCL_LinearOp_d* Hessian( const HCL_Vector_d & x ) const
void Scan( const HCL_Vector_d & x, const HCL_Vector_d & dx, int N, double hmin, double hmax, char * fname = NULL )
int CheckGrad( const HCL_Vector_d & x, const HCL_Vector_d & y, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 )
int CheckHess( const HCL_Vector_d &, const HCL_Vector_d &, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 )

Protected Methods

virtual double Value1( const HCL_Vector_d & x ) const
virtual void Gradient1( const HCL_Vector_d & x, HCL_Vector_d & y ) const
virtual void HessianImage( const HCL_Vector_d & x, const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
virtual void HessianInvImage( const HCL_Vector_d & x, const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
virtual HCL_LinearOp_d* Hessian1( const HCL_Vector_d & x ) const

Inherited from HCL_Base:

Public Methods

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

Documentation

HCL_ALFcnl_d implements an Augmented Lagrangian functional; it is intended for use with HCL_CMinAL_d. If is a real-valued (objective) functional with domain , and is a (equality constraint) operator, then the augmented Lagrangian functional is defined by

,

where is the Lagrange multiplier and is the penalty parameter. This class also allows the inner product on to be scaled by a self-adjoint, positive definite operator :

.

HCL_ALFcnl_d has the usual properties (methods) of the HCL_Functional_d base class; the documentation of the base class should be consulted for more information.

HCL_ALFcnl_d( HCL_Functional_d * ff, HCL_Op_d * HH, HCL_Vector_d * l, double rho=1.0, HCL_LinearOp_d * SS=NULL )
Usual constructor. The arguments are: a pointer to the objective functional, a pointer to the constraint operator, a pointer to the (initial) Lagrange multiplier, (optionally) an initial penalty parameter, and (optionally) a pointer to a self-adjoint positive- definite linear operator , used to scale the inner product on the constraint space. The default value for the penalty parameter is . Note that the penalty parameter can be updated using the Parameters() method as follows: Parameters().PutValue( "PenParam",newvalue );

virtual HCL_VectorSpace_d& Domain() const
Domain space access.

virtual double MaxStep( const HCL_Vector_d & x, const HCL_Vector_d &dir) const
MaxStep computes the longest vector from x in the direction dir that will lie in the domain of the functional, i.e. it computes the greatest such that lies in the domain.

Table& Parameters()
Access to parameter table

virtual HCL_EvaluateFunctional_d* Evaluate( const HCL_Vector_d & x ) const
Evaluate creates an "evaluation" object, which knows how to compute the function value and gradient at the given x

virtual ostream& Write( ostream & str ) const
Write prints out some useful information about the function.


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