QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
ArmijoLineSearch Class Reference

Armijo line search. More...

#include <armijo.hpp>

+ Inheritance diagram for ArmijoLineSearch:
+ Collaboration diagram for ArmijoLineSearch:

Public Member Functions

 ArmijoLineSearch (Real eps=1e-8, Real alpha=0.05, Real beta=0.65)
 Default constructor. More...
 
Real operator() (Problem &P, EndCriteria::Type &ecType, const EndCriteria &, Real t_ini) override
 Perform line search. More...
 

Private Attributes

Real alpha_
 
Real beta_
 

Additional Inherited Members

Detailed Description

Armijo line search.

Let \( \alpha \) and \( \beta \) be 2 scalars in \( [0,1] \). Let \( x \) be the current value of the unknown, \( d \) the search direction and \( t \) the step. Let \( f \) be the function to minimize. The line search stops when \( t \) verifies

\[ f(x + t \cdot d) - f(x) \leq -\alpha t f'(x+t \cdot d) \]

and

\[ f(x+\frac{t}{\beta} \cdot d) - f(x) > -\frac{\alpha}{\beta} t f'(x+t \cdot d) \]

(see Polak, Algorithms and consistent approximations, Optimization, volume 124 of Applied Mathematical Sciences, Springer-Verlag, NY, 1997)

Definition at line 48 of file armijo.hpp.

Constructor & Destructor Documentation

◆ ArmijoLineSearch()

ArmijoLineSearch ( Real  eps = 1e-8,
Real  alpha = 0.05,
Real  beta = 0.65 
)

Default constructor.

Definition at line 51 of file armijo.hpp.

Member Function Documentation

◆ operator()()

Real operator() ( Problem P,
EndCriteria::Type ecType,
const EndCriteria endCriteria,
Real  t_ini 
)
overridevirtual

Perform line search.

Implements LineSearch.

Definition at line 26 of file armijo.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ alpha_

Real alpha_
private

Definition at line 62 of file armijo.hpp.

◆ beta_

Real beta_
private

Definition at line 62 of file armijo.hpp.