54 std::chrono::microseconds
max_time = std::chrono::minutes(5);
81template <
class InnerSolverT = PANOCSolver<>>
Augmented Lagrangian Method solver.
std::string get_name() const
unsigned penalty_reduced
The number of times that the penalty update factor ALMParams::Δ was reduced, that the tolerance updat...
ALMSolver(Params params, const InnerSolver &inner_solver)
real_t δ
Final dual tolerance or constraint violation that was reached:
Stats operator()(const Problem &problem, rvec y, rvec x)
real_t norm_penalty
2-norm of the final penalty factors .
unsigned initial_penalty_reduced
The number of times that the initial penalty factor was reduced by ALMParams::Σ₀_lower and that the i...
InnerStatsAccumulator< typename InnerSolver::Stats > inner
The statistics of the inner solver invocations, accumulated over all ALM iterations.
unsigned inner_convergence_failures
The total number of times that the inner solver failed to converge.
void stop()
Abort the computation and return the result so far.
real_t ε
Final primal tolerance that was reached, depends on the stopping criterion used by the inner solver,...
const Params & get_params() const
unsigned outer_iterations
Total number of outer ALM iterations (i.e.
std::chrono::microseconds elapsed_time
Total elapsed time.
ALMSolver(Params params, InnerSolver &&inner_solver)
SolverStatus status
Whether the solver converged or not.
real_t Δ_lower
Factor to reduce ALMParams::Δ when inner convergence fails.
real_t Σ_min
Minimum penalty factor (used during initialization).
real_t ε₀_increase
Factor to increase the initial primal tolerance if convergence fails in the first iteration.
real_t θ
Error tolerance for penalty increase.
real_t ε₀
Initial primal tolerance.
unsigned max_total_num_retries
Combined limit for ALMParams::max_num_initial_retries and ALMParams::max_num_retries.
real_t Δ
Factor used in updating the penalty parameters.
real_t Σ₀_lower
Factor to reduce the initial penalty factor by if convergence fails in in the first iteration.
real_t σ₀
Initial penalty parameter factor.
real_t ρ
Update factor for primal tolerance.
unsigned int max_iter
Maximum number of outer ALM iterations.
SolverStatus
Exit status of a numerical solver such as ALM or PANOC.
std::chrono::microseconds max_time
Maximum duration.
unsigned max_num_retries
How many times can the penalty update factor ALMParams::Δ and the primal tolerance factor ALMParams::...
real_t Σ₀
Initial penalty parameter.
real_t ε
Primal tolerance.
unsigned max_num_initial_retries
How many times can the initial penalty ALMParams::Σ₀ or ALMParams::σ₀ and the initial primal toleranc...
double real_t
Default floating point type.
unsigned print_interval
When to print progress.
real_t ρ_increase
Factor to increase the primal tolerance update factor by if convergence fails.
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.
real_t Σ_max
Maximum penalty factor.
real_t M
Lagrange multiplier bound.
Eigen::Ref< vec > rvec
Default type for mutable references to vectors.
Parameters for the Augmented Lagrangian solver.
Problem description for minimization problems.