proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
proxsuite::proxqp::Settings< T > Struct Template Reference

This class defines the settings of PROXQP solvers with sparse and dense backends. More...

#include <proxsuite/proxqp/settings.hpp>

Collaboration diagram for proxsuite::proxqp::Settings< T >:
[legend]

Public Member Functions

 Settings (DenseBackend dense_backend=DenseBackend::PrimalDualLDLT, T default_mu_eq=1.E-3, T default_mu_in=1.E-1, T alpha_bcl=0.1, T beta_bcl=0.9, T refactor_dual_feasibility_threshold=1e-2, T refactor_rho_threshold=1e-7, T mu_min_eq=1e-9, T mu_min_in=1e-8, T mu_max_eq_inv=1e9, T mu_max_in_inv=1e8, T mu_update_factor=0.1, T mu_update_inv_factor=10, T cold_reset_mu_eq=1./1.1, T cold_reset_mu_in=1./1.1, T cold_reset_mu_eq_inv=1.1, T cold_reset_mu_in_inv=1.1, T eps_abs=1.e-5, T eps_rel=0, isize max_iter=10000, isize max_iter_in=1500, isize safe_guard=1.E4, isize nb_iterative_refinement=10, T eps_refact=1.e-6, bool verbose=false, InitialGuessStatus initial_guess=InitialGuessStatus::EQUALITY_CONSTRAINED_INITIAL_GUESS, bool update_preconditioner=false, bool compute_preconditioner=true, bool compute_timings=false, bool check_duality_gap=false, T eps_duality_gap_abs=1.e-4, T eps_duality_gap_rel=0, isize preconditioner_max_iter=10, T preconditioner_accuracy=1.e-3, T eps_primal_inf=1.E-4, T eps_dual_inf=1.E-4, bool bcl_update=true, MeritFunctionType merit_function_type=MeritFunctionType::GPDAL, T alpha_gpdal=0.95, SparseBackend sparse_backend=SparseBackend::Automatic, bool primal_infeasibility_solving=false, isize frequence_infeasibility_check=1, T default_H_eigenvalue_estimate=0.)
 

Public Attributes

default_rho
 
default_mu_eq
 
default_mu_in
 
alpha_bcl
 
beta_bcl
 
refactor_dual_feasibility_threshold
 
refactor_rho_threshold
 
mu_min_eq
 
mu_min_in
 
mu_max_eq_inv
 
mu_max_in_inv
 
mu_update_factor
 
mu_update_inv_factor
 
cold_reset_mu_eq
 
cold_reset_mu_in
 
cold_reset_mu_eq_inv
 
cold_reset_mu_in_inv
 
eps_abs
 
eps_rel
 
isize max_iter
 
isize max_iter_in
 
isize safe_guard
 
isize nb_iterative_refinement
 
eps_refact
 
bool verbose
 
InitialGuessStatus initial_guess
 
bool update_preconditioner
 
bool compute_preconditioner
 
bool compute_timings
 
bool check_duality_gap
 
eps_duality_gap_abs
 
eps_duality_gap_rel
 
isize preconditioner_max_iter
 
preconditioner_accuracy
 
eps_primal_inf
 
eps_dual_inf
 
bool bcl_update
 
MeritFunctionType merit_function_type
 
alpha_gpdal
 
SparseBackend sparse_backend
 
bool primal_infeasibility_solving
 
isize frequence_infeasibility_check
 
default_H_eigenvalue_estimate
 

Detailed Description

template<typename T>
struct proxsuite::proxqp::Settings< T >

This class defines the settings of PROXQP solvers with sparse and dense backends.

Settings class, which defines the parameters used by the dense and sparse solver (and its preconditioner).

Definition at line 88 of file settings.hpp.

Constructor & Destructor Documentation

◆ Settings()

template<typename T >
proxsuite::proxqp::Settings< T >::Settings ( DenseBackend dense_backend = DenseBackend::PrimalDualLDLT,
T default_mu_eq = 1.E-3,
T default_mu_in = 1.E-1,
T alpha_bcl = 0.1,
T beta_bcl = 0.9,
T refactor_dual_feasibility_threshold = 1e-2,
T refactor_rho_threshold = 1e-7,
T mu_min_eq = 1e-9,
T mu_min_in = 1e-8,
T mu_max_eq_inv = 1e9,
T mu_max_in_inv = 1e8,
T mu_update_factor = 0.1,
T mu_update_inv_factor = 10,
T cold_reset_mu_eq = 1. / 1.1,
T cold_reset_mu_in = 1. / 1.1,
T cold_reset_mu_eq_inv = 1.1,
T cold_reset_mu_in_inv = 1.1,
T eps_abs = 1.e-5,
T eps_rel = 0,
isize max_iter = 10000,
isize max_iter_in = 1500,
isize safe_guard = 1.E4,
isize nb_iterative_refinement = 10,
T eps_refact = 1.e-6,
bool verbose = false,
InitialGuessStatus initial_guess = InitialGuessStatus:: EQUALITY_CONSTRAINED_INITIAL_GUESS,
bool update_preconditioner = false,
bool compute_preconditioner = true,
bool compute_timings = false,
bool check_duality_gap = false,
T eps_duality_gap_abs = 1.e-4,
T eps_duality_gap_rel = 0,
isize preconditioner_max_iter = 10,
T preconditioner_accuracy = 1.e-3,
T eps_primal_inf = 1.E-4,
T eps_dual_inf = 1.E-4,
bool bcl_update = true,
MeritFunctionType merit_function_type = MeritFunctionType::GPDAL,
T alpha_gpdal = 0.95,
SparseBackend sparse_backend = SparseBackend::Automatic,
bool primal_infeasibility_solving = false,
isize frequence_infeasibility_check = 1,
T default_H_eigenvalue_estimate = 0. )
inline

Default constructor.

Parameters
default_rhodefault rho parameter of result class
default_mu_eqdefault mu_eq parameter of result class
default_mu_indefault mu_in parameter of result class
alpha_bclalpha parameter of the BCL algorithm.
beta_bclbeta parameter of the BCL algorithm.
refactor_dual_feasibility_thresholdthreshold above which refactorization is performed to change rho parameter.
refactor_rho_thresholdnew rho parameter used if the refactor_dual_feasibility_threshold_ condition has been satisfied.
mu_min_eqminimal authorized value for mu_eq.
mu_min_inminimal authorized value for mu_in.
mu_max_eq_invmaximal authorized value for the inverse of mu_eq_inv.
mu_max_in_invmaximal authorized value for the inverse of mu_in_inv.
mu_update_factorupdate factor used for updating mu_eq and mu_in.
mu_update_inv_factorupdate factor used for updating mu_eq_inv and mu_in_inv.
cold_reset_mu_eqvalue used for cold restarting mu_eq.
cold_reset_mu_invalue used for cold restarting mu_in.
cold_reset_mu_eq_invvalue used for cold restarting mu_eq_inv.
cold_reset_mu_in_invvalue used for cold restarting mu_in_inv.
eps_absasbolute stopping criterion of the solver.
eps_relrelative stopping criterion of the solver.
max_itermaximal number of authorized iteration.
max_iter_inmaximal number of authorized iterations for an inner loop.
nb_iterative_refinementnumber of iterative refinements.
eps_refactthreshold value for refactorizing the ldlt factorization in the iterative refinement loop.
safe_guardsafeguard parameter ensuring global convergence of ProxQP scheme.
VERBOSEif set to true, the solver prints information at each loop.
initial_guesssets the initial guess option for initilizing x, y and z.
update_preconditionerIf set to true, the preconditioner will be re-computed when calling the update method.
compute_preconditionerIf set to true, the preconditioner will be computed with the init method.
compute_timingsIf set to true, timings in microseconds will be computed by the solver (setup time, solving time, and run time = setup time
  • solving time).
check_duality_gapIf set to true, duality gap will be calculated and included in the stopping criterion.
eps_duality_gap_absabsolute duality-gap stopping criterion.
eps_duality_gap_relrelative duality-gap stopping criterion.
preconditioner_max_itermaximal number of authorized iterations for the preconditioner.
preconditioner_accuracyaccuracy level of the preconditioner.
eps_primal_infthreshold under which primal infeasibility is detected.
eps_dual_infthreshold under which dual infeasibility is detected.
bcl_updateif set to true, BCL strategy is used for calibrating mu_eq and mu_in. If set to false, a strategy developped by Martinez & al is used.
sparse_backendDefault automatic. User can choose between sparse cholesky or iterative matrix free sparse backend.
primal_infeasibility_solvingsolves the closest primal feasible problem if activated
frequence_infeasibility_checkfrequence at which infeasibility is checked
find_H_minimal_eigenvaluetrack the minimal eigen value of the quadratic cost H
default_H_eigenvalue_estimatedefault H eigenvalue estimate (i.e., if we make a model update and H does not change this one is used)

Definition at line 213 of file settings.hpp.

Member Data Documentation

◆ default_rho

template<typename T >
T proxsuite::proxqp::Settings< T >::default_rho

Definition at line 91 of file settings.hpp.

◆ default_mu_eq

template<typename T >
T proxsuite::proxqp::Settings< T >::default_mu_eq

Definition at line 92 of file settings.hpp.

◆ default_mu_in

template<typename T >
T proxsuite::proxqp::Settings< T >::default_mu_in

Definition at line 93 of file settings.hpp.

◆ alpha_bcl

template<typename T >
T proxsuite::proxqp::Settings< T >::alpha_bcl

Definition at line 95 of file settings.hpp.

◆ beta_bcl

template<typename T >
T proxsuite::proxqp::Settings< T >::beta_bcl

Definition at line 96 of file settings.hpp.

◆ refactor_dual_feasibility_threshold

template<typename T >
T proxsuite::proxqp::Settings< T >::refactor_dual_feasibility_threshold

Definition at line 98 of file settings.hpp.

◆ refactor_rho_threshold

template<typename T >
T proxsuite::proxqp::Settings< T >::refactor_rho_threshold

Definition at line 99 of file settings.hpp.

◆ mu_min_eq

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_min_eq

Definition at line 101 of file settings.hpp.

◆ mu_min_in

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_min_in

Definition at line 102 of file settings.hpp.

◆ mu_max_eq_inv

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_max_eq_inv

Definition at line 103 of file settings.hpp.

◆ mu_max_in_inv

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_max_in_inv

Definition at line 104 of file settings.hpp.

◆ mu_update_factor

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_update_factor

Definition at line 106 of file settings.hpp.

◆ mu_update_inv_factor

template<typename T >
T proxsuite::proxqp::Settings< T >::mu_update_inv_factor

Definition at line 107 of file settings.hpp.

◆ cold_reset_mu_eq

template<typename T >
T proxsuite::proxqp::Settings< T >::cold_reset_mu_eq

Definition at line 109 of file settings.hpp.

◆ cold_reset_mu_in

template<typename T >
T proxsuite::proxqp::Settings< T >::cold_reset_mu_in

Definition at line 110 of file settings.hpp.

◆ cold_reset_mu_eq_inv

template<typename T >
T proxsuite::proxqp::Settings< T >::cold_reset_mu_eq_inv

Definition at line 111 of file settings.hpp.

◆ cold_reset_mu_in_inv

template<typename T >
T proxsuite::proxqp::Settings< T >::cold_reset_mu_in_inv

Definition at line 112 of file settings.hpp.

◆ eps_abs

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_abs

Definition at line 113 of file settings.hpp.

◆ eps_rel

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_rel

Definition at line 114 of file settings.hpp.

◆ max_iter

template<typename T >
isize proxsuite::proxqp::Settings< T >::max_iter

Definition at line 116 of file settings.hpp.

◆ max_iter_in

template<typename T >
isize proxsuite::proxqp::Settings< T >::max_iter_in

Definition at line 117 of file settings.hpp.

◆ safe_guard

template<typename T >
isize proxsuite::proxqp::Settings< T >::safe_guard

Definition at line 118 of file settings.hpp.

◆ nb_iterative_refinement

template<typename T >
isize proxsuite::proxqp::Settings< T >::nb_iterative_refinement

Definition at line 119 of file settings.hpp.

◆ eps_refact

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_refact

Definition at line 120 of file settings.hpp.

◆ verbose

template<typename T >
bool proxsuite::proxqp::Settings< T >::verbose

Definition at line 122 of file settings.hpp.

◆ initial_guess

template<typename T >
InitialGuessStatus proxsuite::proxqp::Settings< T >::initial_guess

Definition at line 123 of file settings.hpp.

◆ update_preconditioner

template<typename T >
bool proxsuite::proxqp::Settings< T >::update_preconditioner

Definition at line 124 of file settings.hpp.

◆ compute_preconditioner

template<typename T >
bool proxsuite::proxqp::Settings< T >::compute_preconditioner

Definition at line 125 of file settings.hpp.

◆ compute_timings

template<typename T >
bool proxsuite::proxqp::Settings< T >::compute_timings

Definition at line 126 of file settings.hpp.

◆ check_duality_gap

template<typename T >
bool proxsuite::proxqp::Settings< T >::check_duality_gap

Definition at line 128 of file settings.hpp.

◆ eps_duality_gap_abs

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_duality_gap_abs

Definition at line 129 of file settings.hpp.

◆ eps_duality_gap_rel

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_duality_gap_rel

Definition at line 130 of file settings.hpp.

◆ preconditioner_max_iter

template<typename T >
isize proxsuite::proxqp::Settings< T >::preconditioner_max_iter

Definition at line 132 of file settings.hpp.

◆ preconditioner_accuracy

template<typename T >
T proxsuite::proxqp::Settings< T >::preconditioner_accuracy

Definition at line 133 of file settings.hpp.

◆ eps_primal_inf

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_primal_inf

Definition at line 134 of file settings.hpp.

◆ eps_dual_inf

template<typename T >
T proxsuite::proxqp::Settings< T >::eps_dual_inf

Definition at line 135 of file settings.hpp.

◆ bcl_update

template<typename T >
bool proxsuite::proxqp::Settings< T >::bcl_update

Definition at line 136 of file settings.hpp.

◆ merit_function_type

template<typename T >
MeritFunctionType proxsuite::proxqp::Settings< T >::merit_function_type

Definition at line 137 of file settings.hpp.

◆ alpha_gpdal

template<typename T >
T proxsuite::proxqp::Settings< T >::alpha_gpdal

Definition at line 138 of file settings.hpp.

◆ sparse_backend

template<typename T >
SparseBackend proxsuite::proxqp::Settings< T >::sparse_backend

Definition at line 140 of file settings.hpp.

◆ primal_infeasibility_solving

template<typename T >
bool proxsuite::proxqp::Settings< T >::primal_infeasibility_solving

Definition at line 141 of file settings.hpp.

◆ frequence_infeasibility_check

template<typename T >
isize proxsuite::proxqp::Settings< T >::frequence_infeasibility_check

Definition at line 142 of file settings.hpp.

◆ default_H_eigenvalue_estimate

template<typename T >
T proxsuite::proxqp::Settings< T >::default_H_eigenvalue_estimate

Definition at line 143 of file settings.hpp.


The documentation for this struct was generated from the following file: