#include <alpaqa/inner/decl/panoc-fwd.hpp>
#include <alpaqa/util/problem.hpp>
#include <alpaqa/util/solverstatus.hpp>
#include <chrono>
#include <string>
Go to the source code of this file.
Classes | |
struct | ALMParams |
Parameters for the Augmented Lagrangian solver. More... | |
class | ALMSolver< InnerSolverT > |
Augmented Lagrangian Method solver. More... | |
struct | ALMSolver< InnerSolverT >::Stats |
Namespaces | |
namespace | alpaqa |
struct alpaqa::ALMParams |
Class Members | ||
---|---|---|
real_t | ε | Primal tolerance. |
real_t | δ | Dual tolerance. |
real_t | Δ | Factor used in updating the penalty parameters. |
real_t | Δ_lower | Factor to reduce ALMParams::Δ when inner convergence fails. |
real_t | Σ₀ |
Initial penalty parameter. When set to zero (which is the default), it is computed automatically, based on the constraint violation in the starting point and the parameter ALMParams::σ₀. |
real_t | σ₀ |
Initial penalty parameter factor. Active if ALMParams::Σ₀ is set to zero. |
real_t | Σ₀_lower | Factor to reduce the initial penalty factor by if convergence fails in in the first iteration. |
real_t | ε₀ | Initial primal tolerance. |
real_t | ε₀_increase | Factor to increase the initial primal tolerance if convergence fails in the first iteration. |
real_t | ρ | Update factor for primal tolerance. |
real_t | ρ_increase | Factor to increase the primal tolerance update factor by if convergence fails. |
real_t | θ | Error tolerance for penalty increase. |
real_t | M | Lagrange multiplier bound. |
real_t | Σ_max | Maximum penalty factor. |
real_t | Σ_min | Minimum penalty factor (used during initialization). |
unsigned int | max_iter | Maximum number of outer ALM iterations. |
microseconds | max_time | Maximum duration. |
unsigned | max_num_initial_retries | How many times can the initial penalty ALMParams::Σ₀ or ALMParams::σ₀ and the initial primal tolerance ALMParams::ε₀ be reduced. |
unsigned | max_num_retries | How many times can the penalty update factor ALMParams::Δ and the primal tolerance factor ALMParams::ρ be reduced. |
unsigned | max_total_num_retries | Combined limit for ALMParams::max_num_initial_retries and ALMParams::max_num_retries. |
unsigned | print_interval |
When to print progress. If set to zero, nothing will be printed. If set to N != 0, progress is printed every N iterations. |
bool | preconditioning | Apply preconditioning to the problem, based on the gradients in the starting point. |
bool | single_penalty_factor | Use one penalty factor for all m constraints. |
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.
|
InnerStatsAccumulator< typename Stats > | inner | The statistics of the inner solver invocations, accumulated over all ALM iterations. |