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 ()
Access to the parameter table
virtual HCL_EvaluateFunctionalGrad_d* Search ( HCL_FunctionalGrad_d & fptr, const HCL_Vector_d & xcur, HCL_Vector_d & xnext, HCL_Vector_d & dir, HCL_EvaluateFunctionalGrad_d * xinit_eval)
LineSearch algorithm
virtual void SetScaling ( const HCL_LinearOpAdj_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

Private Methods

virtual void Clean ()
Write output parameters out to parameter table and deallocate vectors.
virtual void Initialize ( HCL_VectorSpace_d & dom)
Read parameters from parameter table and allocate temporary vectors.

Private

Input parameters
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
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
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
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
double tau3
(5e-1)
int LineStepFlag
(0) Step length flag; use last mu if set; otherwise try step length one first
Output parameters
int TermCode
exit status (<0 = no reduction, 0 = success, >0 = reduction, but failed)
int MaxTkn
maximum step size taken? (1 = taken, 0 = not taken)

Inherited from HCL_LineSearch_d:

Public

Term codes

Private

Required output parameters

int TermCode
exit status (<0 = no reduction, 0 = success, >0 = reduction, but failed)
int MaxTkn
maximum step size taken? (1 = taken, 0 = not taken)

Inherited from HCL_Base:

Public Methods

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

Private Fields

int ReferenceCount

Documentation

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

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

Output parameters

int TermCode
exit status (<0 = no reduction, 0 = success, >0 = reduction, but failed)

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

virtual void Initialize( HCL_VectorSpace_d & dom)
Read parameters from parameter table and allocate temporary vectors.

virtual void Clean()
Write output parameters out to parameter table and deallocate vectors.

HCL_LineSearch_Fl_d( char *fname = NULL )
Usual constructor.

Parameters:
fname - Parameter file name or NULL

virtual Table& Parameters()
Access to the parameter table

virtual void SetScaling( const HCL_LinearOpAdj_d * S )
SetScaling allows the specification of a different inner product (and hence norm). Instead of $(x,y)$, the scaled inner product $(x,S^{-1}y)$ will be used, where $S$ 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_EvaluateFunctionalGrad_d* Search( HCL_FunctionalGrad_d & fptr, const HCL_Vector_d & xcur, HCL_Vector_d & xnext, HCL_Vector_d & dir, HCL_EvaluateFunctionalGrad_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)


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