class HCL_UMinSubspace_d : public HCL_UMinProductDomain_d

HCL_UMinSubspace_d is a variation on the idea of Kennett for minimizing a function with two or more distinct classes of problem variables

Inheritance:


Public Methods

HCL_UMinSubspace_d ( char * fname=NULL )
Usual constructor; the only argument is the name of an optional parameter file
virtual Table& Parameters () const
Access to parameter table
virtual HCL_EvalFunctionalProductDomain_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_FunctionalProductDomain_d & f, HCL_ProductVector_d & x )
Minimize attempts to find a local minimizer of the functional f, using x as a starting guess
virtual ostream& Write ( ostream & str ) const
Prints description of the object

Inherited from HCL_UMinProductDomain_d:

Public Classes

enum
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

Documentation

HCL_UMinSubspace_d is a variation on the idea of Kennett for minimizing a function with two or more distinct classes of problem variables. In the HCL setting, this means that the objective function is defined on a product space and hence is an instance of HCL_FunctionalProductDomain_d.

The Kennett idea is to define a low-dimensional affine set in the space of the problem variables spanned by the components of the gradient and possibly the image of the gradient under the Hessian (and its image under the Hessian, and so on). The local quadratic model of the objective function is then minimized over this low dimensional subspace. In this version of the Kennett algorithm, a trust-region is imposed on the step, and the More'-Sorensen algorithm (HCL_MatTR_d for dense trust region problems is used.

int MaxItn
(100) Maximum number of iterations.

double Typf
(1) Typical value of the functional near the solution. Setting this makes the gradient stopping tolerance more meaningful.

double TypxNorm
(1) Typical norm of the unknown vector x near the solution. Setting this makes the gradient stopping tolerance more meaningful.

double GradTol
(1e-2) Gradient tolerance. The algorithm attempts to locate a point where the relative gradient norm (i.e. the norm of the gradient scaled by the size of the vector x and by f(x)) is less than this value.

double MinStep
(1e-20) Minimum allowable step. If the algorithm takes a (relative) step less than this value in norm, it halts and reports "Possible convergence".

double MaxStep
(1e+20) Maximum allowable step. If the algorithm takes too many consecutive steps of length MaxStep, it assumes that the iterates are diverging and reports "Possible divergence".

int CscMaxLimit
(5) Maximum number of steps of length MaxStep allowed before the algorithm decides that the iterates are diverging

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_UMinSubspace.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

int TraceSteps
(0) If nonzero, the iterates are sent to a file using the Write method from the vector class

char StepFile[81]
(HCL_UMinSubspace.StepFile) File name for recording iterates.

int KrylovSubspaceLevel
(2) This number determines the dimension of the subspace generated from the components of the gradient by applying the Hessian

double LowerTol
(1e-1) Tolerance for reducing the trust region radius. If the ratio of the actual to the predicted reduction falls below LowerTol, the radius is cut in half.

double UpperTol
(9e-1) Tolerance for increasing the trust region radius. If the ratio of the actual to the predicted reduction is greater than UpperTol, the radius is doubled.

int Reorthogonalize
(0) Flag indicating whether re-orthogonalization is to be applied to the basis for subspace

double Delta
(1.0) Initial trust region radius.

HCL_UMinSubspace_d( char * fname=NULL )
Usual constructor; the only argument is the name of an optional parameter file. If such a file is provided, it must be a plain text file with entries of the form

ParameterName = value

or

UMinProductDomain::ParameterName = value

or

UMinSubspace::ParameterName = value

The second and third forms allow the same file to contain parameters for more than one algorithm to be given in the same file. For example, one can have entries such as

UMinSubspace::DispFlag = 2 TRSolver::DispFlag = 1

which set the display flags for the minimization algorithm and the trust region solver to different values.

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_EvalFunctionalProductDomain_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). This method is included for future use; it is not currently implemented.

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

virtual int Minimize( HCL_FunctionalProductDomain_d & f, HCL_ProductVector_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.

virtual ostream& Write( ostream & str ) 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