class HCL_LineSearch_MT_d : public HCL_LineSearch_d

An implementation of the More' and Thuente line search algorithm (See More' and Thuente, "Line Search Algorithms with Guaranteed Sufficient Decrease", ACM TOMS, Vol

Inheritance:


Public Methods

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

Public

constructors and destructor
HCL_LineSearch_MT_d ( char *fname = NULL )
Usual constructor

Private Methods

virtual void Clean ()
Write output parameters out to parameter table and deallocate vectors.
int cstep ( double & mux, double & fx, double & dgx, double & muy, double & fy, double & dgy, double & mu, double & fv, double & dg, int & bracket, double & mumin, double & mumax )
Update the interval of uncertainty and compute the next step.
void DisplayResults ( int )
Display results
virtual void Initialize ( HCL_VectorSpace_d & dom)
Read parameters from parameter table and allocate temporary vectors.

Private

Debugging parameters
Input parameters
double FcnDecreaseTol
(1e-4) Tolerance for decreasing function value (Armijo-Goldstein condition)
double SlopeDecreaseTol
(9e-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_MT
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 IntervalTol
(sqrt(macheps)) Line search halts if the length of the interval of of uncertainty falls below IntervalTol
double BracketIncrease
(4) factor to change mu during backtracking
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 the More' and Thuente line search algorithm (See More' and Thuente, "Line Search Algorithms with Guaranteed Sufficient Decrease", ACM TOMS, Vol. 20, No. 3, 286--307 (1994))
Input parameters

double FcnDecreaseTol
(1e-4) Tolerance for decreasing function value (Armijo-Goldstein condition)

double SlopeDecreaseTol
(9e-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_MT.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 IntervalTol
(sqrt(macheps)) Line search halts if the length of the interval of of uncertainty falls below IntervalTol

double BracketIncrease
(4) factor to change mu during backtracking

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)

Debugging parameters

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.

void DisplayResults( int )
Display results

int cstep( double & mux, double & fx, double & dgx, double & muy, double & fy, double & dgy, double & mu, double & fv, double & dg, int & bracket, double & mumin, double & mumax )
Update the interval of uncertainty and compute the next step.

constructors and destructor

HCL_LineSearch_MT_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


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