#include <alpaqa/outer/alm.hpp>
template<class InnerSolverT>
class alpaqa::ALMSolver< InnerSolverT >
Augmented Lagrangian Method solver.
- Examples
- C++/CasADi/Rosenbrock/main.cpp, C++/CustomCppProblem/main.cpp, C++/DLProblem/main.cpp, and C++/FortranProblem/main.cpp.
Definition at line 69 of file alm.hpp.
◆ alpaqa::ALMSolver::Stats
struct alpaqa::ALMSolver::Stats |
Class Members |
unsigned |
outer_iterations = 0 |
Total number of outer ALM iterations (i.e. the number of times that the inner solver was invoked).
|
nanoseconds |
elapsed_time {} |
Total elapsed time. |
unsigned |
inner_convergence_failures = 0 |
The total number of times that the inner solver failed to converge. |
real_t |
ε = inf<config_t> |
Final primal tolerance that was reached, depends on the stopping criterion used by the inner solver, see for example PANOCStopCrit. |
real_t |
δ = inf<config_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 = 0 |
2-norm of the final penalty factors \( \| \Sigma \|_2 \). |
SolverStatus |
status = SolverStatus::Busy |
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
template<class InnerSolverT>
◆ InnerSolver
template<class InnerSolverT>
◆ Problem
template<class InnerSolverT>
using Problem = typename InnerSolver::Problem |
◆ Helpers
template<class InnerSolverT>
◆ ALMSolver() [1/2]
template<class InnerSolverT>
◆ ALMSolver() [2/2]
template<class InnerSolverT>
◆ operator()() [1/2]
template<class InnerSolverT>
◆ operator()() [2/2]
template<class InnerSolverT>
template<class P>
Stats operator() |
( |
const P & | problem, |
|
|
rvec | x, |
|
|
rvec | y, |
|
|
std::optional< rvec > | Σ = std::nullopt ) |
|
inline |
◆ get_name()
template<class InnerSolverT>
std::string get_name |
( |
| ) |
const |
|
inline |
◆ stop()
template<class InnerSolverT>
Abort the computation and return the result so far.
Can be called from other threads or signal handlers.
Definition at line 126 of file alm.hpp.
◆ get_params()
template<class InnerSolverT>
const Params & get_params |
( |
| ) |
const |
|
inline |
◆ params
template<class InnerSolverT>
◆ inner_solver
template<class InnerSolverT>
◆ os
template<class InnerSolverT>
std::ostream* os = &std::cout |
The documentation for this class was generated from the following files:
- src/alpaqa/include/alpaqa/outer/alm.hpp
- src/alpaqa/include/alpaqa/implementation/outer/alm.tpp