OpenMD
3.2
Molecular Dynamics in the Open
Toggle main menu visibility
Loading...
Searching...
No Matches
Armijo.hpp
Go to the documentation of this file.
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2001, 2002, 2003 Nicolas Di Césaré
5
6
This file is part of QuantLib, a free-software/open-source library
7
for financial quantitative analysts and developers - http://quantlib.org/
8
9
QuantLib is free software: you can redistribute it and/or modify it
10
under the terms of the QuantLib license. You should have received a
11
copy of the license along with this program; if not, please email
12
<quantlib-dev@lists.sf.net>. The license is also available online at
13
<http://quantlib.org/license.shtml>.
14
15
This program is distributed in the hope that it will be useful, but WITHOUT
16
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
FOR A PARTICULAR PURPOSE. See the license for more details.
18
*/
19
20
/*! \file armijo.hpp
21
\brief Armijo line-search class
22
*/
23
24
#ifndef quantlib_optimization_armijo_hpp
25
#define quantlib_optimization_armijo_hpp
26
27
#include "
optimization/LineSearch.hpp
"
28
29
namespace
QuantLib {
30
31
class
EndCriteria
;
32
33
//! Armijo line search.
34
/*! Let \f$ \alpha \f$ and \f$ \beta \f$ be 2 scalars in \f$ [0,1]
35
\f$. Let \f$ x \f$ be the current value of the unknown, \f$ d
36
\f$ the search direction and \f$ t \f$ the step. Let \f$ f \f$
37
be the function to minimize. The line search stops when \f$ t
38
\f$ verifies
39
\f[ f(x + t \cdot d) - f(x) \leq -\alpha t f'(x+t \cdot d) \f]
40
and
41
\f[ f(x+\frac{t}{\beta} \cdot d) - f(x) > -\frac{\alpha}{\beta}
42
t f'(x+t \cdot d) \f]
43
44
(see Polak, Algorithms and consistent approximations, Optimization,
45
volume 124 of Applied Mathematical Sciences, Springer-Verlag, NY,
46
1997)
47
*/
48
class
ArmijoLineSearch
:
public
LineSearch
{
49
public
:
50
//! Default constructor
51
ArmijoLineSearch
(RealType eps = 1e-8, RealType alpha = 0.05,
52
RealType beta = 0.65) :
53
LineSearch
(eps),
54
alpha_(alpha), beta_(beta) {}
55
56
//! Perform line search
57
RealType
operator()
(
58
Problem
& P,
// Optimization problem
59
EndCriteria::Type& ecType,
const
EndCriteria
&,
60
const
RealType t_ini);
// initial value of line-search step
61
private
:
62
RealType alpha_, beta_;
63
};
64
65
}
// namespace QuantLib
66
67
#endif
LineSearch.hpp
Line search abstract class.
QuantLib::ArmijoLineSearch::operator()
RealType operator()(Problem &P, EndCriteria::Type &ecType, const EndCriteria &, const RealType t_ini)
Perform line search.
Definition
Armijo.cpp:27
QuantLib::ArmijoLineSearch::ArmijoLineSearch
ArmijoLineSearch(RealType eps=1e-8, RealType alpha=0.05, RealType beta=0.65)
Default constructor.
Definition
Armijo.hpp:51
QuantLib::EndCriteria
Criteria to end optimization process:
Definition
EndCriteria.hpp:42
QuantLib::LineSearch::LineSearch
LineSearch(RealType=0.0)
Default constructor.
Definition
LineSearch.hpp:42
QuantLib::Problem
Constrained optimization problem.
Definition
Problem.hpp:37
optimization
Armijo.hpp
Generated on
for OpenMD by
1.17.0