9#ifndef PBAT_MATH_OPTIMIZATION_LINESEARCH_H
10#define PBAT_MATH_OPTIMIZATION_LINESEARCH_H
18template <
class TScalar = Scalar>
35 TScalar
tau = TScalar(0.5),
36 TScalar
c = TScalar(1e-4),
37 TScalar
alpha = TScalar(1));
51 template <
class FObjective,
class TDerivedG,
class TDerivedDX,
class TDerivedX>
54 Eigen::MatrixBase<TDerivedG>
const& g,
55 Eigen::MatrixBase<TDerivedDX>
const& dx,
56 Eigen::MatrixBase<TDerivedX>& xk)
const;
59template <
class TScalar>
69template <
class TScalar>
70template <
class FObjective,
class TDerivedG,
class TDerivedDX,
class TDerivedX>
73 Eigen::MatrixBase<TDerivedG>
const& g,
74 Eigen::MatrixBase<TDerivedDX>
const& dx,
75 Eigen::MatrixBase<TDerivedX>& xk)
const
77 TScalar alphaj =
alpha;
78 TScalar
const Dfk = g.dot(dx);
82 TScalar flinear = fk + (
c * alphaj) * Dfk;
83 xk = xk + alphaj * dx;
Namespace for optimization algorithms.
Definition BranchAndBound.h:7
TScalar tau
Step size decrease factor.
Definition LineSearch.h:22
BackTrackingLineSearch(int nMaxIters=20, TScalar tau=TScalar(0.5), TScalar c=TScalar(1e-4), TScalar alpha=TScalar(1))
Construct a new Back Tracking Line Search object.
Definition LineSearch.h:60
TScalar Solve(FObjective f, Eigen::MatrixBase< TDerivedG > const &g, Eigen::MatrixBase< TDerivedDX > const &dx, Eigen::MatrixBase< TDerivedX > &xk) const
Perform a backtracking line search.
Definition LineSearch.h:71
TScalar c
Armijo slope scale.
Definition LineSearch.h:23
TScalar alpha
Initial step size.
Definition LineSearch.h:24
int nMaxIters
Maximum number of iterations for the line search.
Definition LineSearch.h:21