Posted by
Nicolas Di Césaré on
Aug 02, 2004; 1:29pm
URL: http://quantlib.414.s1.nabble.com/Armijo-Line-Search-tp3128p3129.html
Le ven 30/07/2004 à 17:53, Sergey Iskoz a écrit :
> Hi,
>
>
>
> I have a question about the implementation of the Armijo line search
> algorithm (see ql/Optimization/armijo.*).
>
>
Hi Sergey,
>
> The termination condition in the do ... while loop seems to be using
> the gradient norm qpt_. However, looking at the description of the
> algorithm in Polak's book (pp. 30-31) referenced in armijo.hpp and in
> Bertsekas's book (p. 25) [Dimitri Bersekas, Nonlinear Programming,
> 1995], I see that they use an inner product of the gradient (g) and
> the direction vector d, which will not always be equal to -g.
That's true and it's a mistake. One shoud replace
qpt_ = qp0;
with
qpt_ = -DotProduct(lastGradient(),d)
> In addition, Bertsekas recommends setting alpha (which he calls sigma)
> to a value in [1e-5, 1e-1], while in the current implementation alpha
> defaults to .5. As an aside, I also notice that one of the
> terminating conditions differs somewhat between Polak (eq-n 20b on p.
> 30) and Bertsekas (essentially replaces the RHS of 20b with 0).
>
>
It is a typo error, the default value is 0.05.
--
Nicolas Di Césaré <
[hidden email]>