class HCL_UMinAlternation_d : public HCL_UMinProductDomain_d

HCL_UMinAlternation_d is the simplest concrete class derived from HCL_UMinProductDomain_d

Inheritance:


Public Methods

HCL_UMinAlternation_d ( int n, char * fname=NULL )
Usual constructor
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
void SetNext ( HCL_UMin_d * um )
SetNext sets the next minimization algorithm to be set
virtual void SetScaling ( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver )
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_UMinAlternation_d is the simplest concrete class derived from HCL_UMinProductDomain_d. This class attempts to find an unconstrained minimum of a function defined on a product space by repeated minimizing the function over one component. This algorithm is sometimes referred to as coordinate-search.

The algorithm(s) used to minimize the functional in the component directions must be specified by the user; they can be any instances of HCL_UMin_d. Note the algorithm need not be the same for each component.

int MaxItn
(100) Maximum number of iterations.

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

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

double GradTol
(1.0e-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
(1.0e-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
(1.0e+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_UMinAlternation.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_UMinAlternation.StepFile) File name for recording iterates.

HCL_UMinAlternation_d( int n, char * fname=NULL )
Usual constructor. The arguments are the number of factors in the domain of the functional to be minimized, and an optional parameter file. If a parameter file is provided, it must be a plain text file with entries of the form

ParameterName = value

or

UMinProductDomain::ParameterName = value

or

UMinAlternation::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 entries such as

UMinAlternation::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.

void SetNext( HCL_UMin_d * um )
SetNext sets the next minimization algorithm to be set. The program creating the HCL_UMinAlternation_d object is responsible for defining a minimization algorithm for each coordinate direction using this method.

virtual void SetScaling( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver )
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. 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