29 const RealType t_ini) {
34 RealType qtold, t = t_ini;
35 size_t loopNumber = 0;
53 if ((
qt_ - q0) > -alpha_ * t * qpt_) {
69 }
while ((((
qt_ - q0) > (-alpha_ * t * qpt_)) ||
70 ((qtold - q0) <= (-alpha_ * t * qpt_ / beta_))) &&
80 qpt_ = P.DotProduct(gradient_, gradient_);
Armijo line-search class.
Abstract optimization method class.
Abstract optimization problem class.
Dynamically-sized vector class.
RealType operator()(Problem &P, EndCriteria::Type &ecType, const EndCriteria &, const RealType t_ini)
Perform line search.
Criteria to end optimization process:
bool checkMaxIterations(const size_t iteration, EndCriteria::Type &ecType) const
Test if the number of iteration is below MaxIterations.
DynamicVector< RealType > xtd_
new x and its gradient
DynamicVector< RealType > searchDirection_
current values of the search direction
RealType qt_
objective function value and gradient norm corresponding to xtd_
bool succeed_
flag to know if linesearch succeed
Constrained optimization problem.
void gradient(DynamicVector< RealType > &grad_f, const DynamicVector< RealType > &x)
call objective function gradient computation and increment
RealType functionValue() const
value of objective function
RealType value(const DynamicVector< RealType > &x)
call objective function computation and increment evaluation counter
RealType gradientNormValue() const
value of objective function gradient norm
Constraint & constraint() const
Constraint.
const DynamicVector< RealType > & currentValue() const
current value of the local minimum