#include <alpaqa/decl/alm.hpp>
template<class InnerSolverT = PANOCSolver<>>
class alpaqa::ALMSolver< InnerSolverT >
Augmented Lagrangian Method solver.
- Examples
- CUTEst/Rosenbrock/main.cpp, and CasADi/Rosenbrock/main.cpp.
Definition at line 82 of file decl/alm.hpp.
◆ alpaqa::ALMSolver::Stats
struct alpaqa::ALMSolver::Stats |
Class Members |
unsigned |
outer_iterations |
Total number of outer ALM iterations (i.e. the number of times that the inner solver was invoked).
|
microseconds |
elapsed_time |
Total elapsed time. |
unsigned |
initial_penalty_reduced |
The number of times that the initial penalty factor was reduced by ALMParams::Σ₀_lower and that the initial tolerance was increased by ALMParams::ε₀_increase because the inner solver failed to converge in the first ALM iteration. If this number is greater than zero, consider lowering the initial penalty factor ALMParams::Σ₀ or ALMParams::σ₀ or increasing the initial tolerance ALMParams::ε₀ (or both).
|
unsigned |
penalty_reduced |
The number of times that the penalty update factor ALMParams::Δ was reduced, that the tolerance update factor ALMParams::ρ was increased, and that an ALM iteration had to be restarted with a lower penalty factor and a higher tolerance because the inner solver failed to converge (not applicable in the first ALM iteration). If this number is greater than zero, consider lowerering the penalty update factor ALMParams::Δ or increasing the tolerance update factor (or both). Lowering the initial penalty factor could help as well.
|
unsigned |
inner_convergence_failures |
The total number of times that the inner solver failed to converge. |
real_t |
ε |
Final primal tolerance that was reached, depends on the stopping criterion used by the inner solver, see for example PANOCStopCrit. |
real_t |
δ |
Final dual tolerance or constraint violation that was reached:
\[ \delta = \| \Pi_D\left(g(x^k) + \Sigma^{-1}y\right) \|_\infty \]
|
real_t |
norm_penalty |
2-norm of the final penalty factors \( \| \Sigma \|_2 \). |
SolverStatus |
status |
Whether the solver converged or not. - See also
- SolverStatus
|
InnerStatsAccumulator< typename Stats > |
inner |
The statistics of the inner solver invocations, accumulated over all ALM iterations. |
◆ Params
◆ InnerSolver
◆ ALMSolver() [1/2]
◆ ALMSolver() [2/2]
◆ operator()()
◆ get_name()
std::string get_name |
( |
| ) |
const |
|
inline |
◆ stop()
Abort the computation and return the result so far.
Can be called from other threads or signal handlers.
Definition at line 148 of file decl/alm.hpp.
◆ get_params()
const Params & get_params |
( |
| ) |
const |
|
inline |
◆ params
◆ inner_solver
The documentation for this class was generated from the following files: