aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
linesearch-base.hpp
Go to the documentation of this file.
1
4
#pragma once
5
6
#include <fmt/format.h>
7
#include <ostream>
8
9
namespace
aligator
{
10
enum class
LinesearchStrategy
{
ARMIJO
,
WOLFE
};
11
enum class
LSInterpolation
{
BISECTION
,
QUADRATIC
,
CUBIC
};
12
13
template
<
typename
T>
struct
LinesearchOptions
{
14
LinesearchOptions
() noexcept
15
:
armijo_c1
(1e-4)
16
,
wolfe_c2
(0.9)
17
,
dphi_thresh
(1e-13)
18
,
alpha_min
(1e-6)
19
,
max_num_steps
(20)
20
,
interp_type
(
LSInterpolation
::
CUBIC
)
21
,
contraction_min
(0.5)
22
,
contraction_max
(0.8) {}
23
T
armijo_c1
;
24
T
wolfe_c2
;
25
T
dphi_thresh
;
26
T
alpha_min
;
27
std::size_t
max_num_steps
;
28
LSInterpolation
interp_type
;
29
T
contraction_min
;
30
T
contraction_max
;
31
friend
std::ostream &
operator<<
(std::ostream &oss,
32
const
LinesearchOptions
&self) {
33
oss <<
"{"
;
34
oss << fmt::format(
"armijo_c1 = {:.3e}"
, self.
armijo_c1
);
35
oss <<
", "
36
<< fmt::format(
"contraction_min = {:.3e}"
, self.
contraction_min
);
37
oss <<
", "
38
<< fmt::format(
"contraction_max = {:.3e}"
, self.
contraction_max
);
39
oss <<
"}"
;
40
return
oss;
41
}
42
};
43
46
template
<
typename
T>
class
Linesearch
{
47
public
:
48
using
Options
=
LinesearchOptions<T>
;
49
explicit
Linesearch
(
const
Linesearch::Options
&options) noexcept
50
:
options_
(options) {}
51
~Linesearch
() =
default
;
52
53
struct
FunctionSample
{
54
T
alpha
;
55
T
phi
;
56
T
dphi
;
57
bool
valid
;
58
FunctionSample
()
59
:
alpha
(0.)
60
,
phi
(0.)
61
,
dphi
(0.)
62
,
valid
(false) {}
63
FunctionSample
(T a, T v)
64
:
alpha
(a)
65
,
phi
(v)
66
,
dphi
(0.)
67
,
valid
(true) {}
68
FunctionSample
(T a, T v, T g)
69
:
alpha
(a)
70
,
phi
(v)
71
,
dphi
(g)
72
,
valid
(true) {}
73
};
74
75
void
setOptions
(
const
Linesearch::Options
&options) {
options_
= options; }
76
77
void
reset
() {}
78
79
Linesearch::Options
options_
;
80
};
81
}
// namespace aligator
aligator::Linesearch< Scalar >::Options
LinesearchOptions< Scalar > Options
Definition
linesearch-base.hpp:48
aligator::Linesearch::setOptions
void setOptions(const Linesearch::Options &options)
Definition
linesearch-base.hpp:75
aligator::Linesearch::Linesearch
Linesearch(const Linesearch::Options &options) noexcept
Definition
linesearch-base.hpp:49
aligator::Linesearch::options_
Linesearch::Options options_
Definition
linesearch-base.hpp:79
aligator::Linesearch::reset
void reset()
Definition
linesearch-base.hpp:77
aligator::Linesearch::~Linesearch
~Linesearch()=default
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::LSInterpolation
LSInterpolation
Definition
linesearch-base.hpp:11
aligator::LSInterpolation::BISECTION
@ BISECTION
Definition
linesearch-base.hpp:11
aligator::LSInterpolation::QUADRATIC
@ QUADRATIC
Definition
linesearch-base.hpp:11
aligator::LSInterpolation::CUBIC
@ CUBIC
Definition
linesearch-base.hpp:11
aligator::LinesearchStrategy
LinesearchStrategy
Definition
linesearch-base.hpp:10
aligator::LinesearchStrategy::ARMIJO
@ ARMIJO
Definition
linesearch-base.hpp:10
aligator::LinesearchStrategy::WOLFE
@ WOLFE
Definition
linesearch-base.hpp:10
aligator::LinesearchOptions
Definition
linesearch-base.hpp:13
aligator::LinesearchOptions::interp_type
LSInterpolation interp_type
Definition
linesearch-base.hpp:28
aligator::LinesearchOptions::alpha_min
T alpha_min
Definition
linesearch-base.hpp:26
aligator::LinesearchOptions::max_num_steps
std::size_t max_num_steps
Definition
linesearch-base.hpp:27
aligator::LinesearchOptions::contraction_max
T contraction_max
Definition
linesearch-base.hpp:30
aligator::LinesearchOptions::armijo_c1
T armijo_c1
Definition
linesearch-base.hpp:23
aligator::LinesearchOptions::wolfe_c2
T wolfe_c2
Definition
linesearch-base.hpp:24
aligator::LinesearchOptions::operator<<
friend std::ostream & operator<<(std::ostream &oss, const LinesearchOptions &self)
Definition
linesearch-base.hpp:31
aligator::LinesearchOptions::contraction_min
T contraction_min
Definition
linesearch-base.hpp:29
aligator::LinesearchOptions::dphi_thresh
T dphi_thresh
Definition
linesearch-base.hpp:25
aligator::LinesearchOptions::LinesearchOptions
LinesearchOptions() noexcept
Definition
linesearch-base.hpp:14
aligator::Linesearch::FunctionSample::FunctionSample
FunctionSample(T a, T v)
Definition
linesearch-base.hpp:63
aligator::Linesearch::FunctionSample::FunctionSample
FunctionSample()
Definition
linesearch-base.hpp:58
aligator::Linesearch::FunctionSample::dphi
T dphi
Definition
linesearch-base.hpp:56
aligator::Linesearch::FunctionSample::phi
T phi
Definition
linesearch-base.hpp:55
aligator::Linesearch::FunctionSample::alpha
T alpha
Definition
linesearch-base.hpp:54
aligator::Linesearch::FunctionSample::FunctionSample
FunctionSample(T a, T v, T g)
Definition
linesearch-base.hpp:68
aligator::Linesearch::FunctionSample::valid
bool valid
Definition
linesearch-base.hpp:57
include
aligator
core
linesearch-base.hpp
Generated by
1.17.0