class HCL_LineSearch_Fl_d : public HCL_LineSearch_d

An implementation of a backtracking line search algorithm using cubic and quadratic interpolation (See Fletcher, "Practical Methods of Optimization" (2nd edition), Wiley, (1987))

Inheritance:


Public Methods

HCL_LineSearch_Fl_d ( char *fname = NULL )
Usual constructor
virtual Table& Parameters () const
Access to the parameter table
virtual void SetScaling ( const HCL_LinearOp_d * S )
SetScaling allows the specification of a different inner product (and hence norm)
virtual void UnSetScaling ()
UnSetScaling causes the line search to use the default inner product
virtual HCL_EvaluateFunctional_d* Search ( HCL_Functional_d & fptr, const HCL_Vector_d & xcur, HCL_Vector_d & xnext, HCL_Vector_d & dir, HCL_EvaluateFunctional_d * xinit_eval)
LineSearch algorithm
virtual ostream& Write ( ostream & str ) const
Prints description of the object

Inherited from HCL_LineSearch_d:

Public

Term codes


Inherited from HCL_Base:

Public Methods

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

Documentation

An implementation of a backtracking line search algorithm using cubic and quadratic interpolation (See Fletcher, "Practical Methods of Optimization" (2nd edition), Wiley, (1987)). The description of this class follows closely that of the base class HCL_LineSearch_d, which should be consulted for details.
double FcnDecreaseTol
(1e-4) Tolerance for decreasing function value (Armijo-Goldstein condition)

double SlopeDecreaseTol
(1e-1) Slope at minimum must be smaller than SlopeDecreaseTol times the initial slope

double MinStep
(1e-20) Minimum step length.

double MaxStep
(1e20) Maximum step length.

int MaxSample
(8) Maximum number of function evaluations to perform

double ZeroDivideTol
(1e-40) Tolerance for divide-by-zero

int DispFlag
(0) DispFlag controls the amount of output sent to the screen during execution of the Search method. The usual choices are 0 --- no output 1 --- a summary at the end of execution 2 --- a summary at each iteration In addition, values of DispFlag greater than 2 may send increasing amount of detail to the screen (this is intended primarily for development use, i.e. for debugging).

int DumpFlag
(0) DumpFlag has exactly the same purpose as DispFlag, except the information is sent to a file, whose name is defined by DumpFile

char DumpFile[81]
(HCL_LineSearch_Fl.DumpFile) DumpFile is the name of the file to which results are written (if DumpFlag is positive).

int DispPrecision
(6) DispPrecision gives the number of digits in numbers sent to the screen

int DumpPrecision
(DispPrecision) DumpPrecision gives the number of digits in numbers sent to the file

double MinValue
(0) Minimum value of function. The algorithm will halt if the function value falls below this value.

double IntervalTol
(sqrt(macheps)) Line search halts if the length of the interval of of uncertainty falls below IntervalTol

double BracketIncrease
(9) Factor by which to increase the width of the bracket.

double tau2
(1e-1)tau2 and tau3 determine the size of the interval in which the minimum value of the interpolating polynomial is allowed to lie during the sectioning phase. For example, if the interval for sectioning is [0,1], then the reduced interval will be [0, alpha] or [alpha, 1] with alpha in [tau2, 1-tau3].

double tau3
(5e-1)

int LineStepFlag
(0) Step length flag; use last mu if set; otherwise try step length one first

int TermCode
exit status (negative means no reduction, 0 means success, positive means reduction, but failed)

int MaxTkn
maximum step size taken? (1 = taken, 0 = not taken)

HCL_LineSearch_Fl_d( char *fname = NULL )
Usual constructor
Parameters:
fname - Parameter file name or NULL

virtual Table& Parameters() const
Access to the parameter table

virtual void SetScaling( const HCL_LinearOp_d * S )
SetScaling allows the specification of a different inner product (and hence norm). Instead of , the scaled inner product will be used, where is a symmetric positive definite operator. Through this method, a line search can be made consistent with a minimization algorithm which scales the norm.

virtual void UnSetScaling()
UnSetScaling causes the line search to use the default inner product

virtual HCL_EvaluateFunctional_d* Search( HCL_Functional_d & fptr, const HCL_Vector_d & xcur, HCL_Vector_d & xnext, HCL_Vector_d & dir, HCL_EvaluateFunctional_d * xinit_eval)
LineSearch algorithm. Returns an evaluation object for the final point or NULL, depending on whether the line search was successful or not. The Parameter TermCode contains the exit status.

Parameters:
fptr - function
xcur - starting point, on successful completion, this will hold the computed minimum
dir - starting direction
xinit_eval - evaluation object for starting point (or NULL)

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