blob: ba3abc86acb7ad18f2c79581e66eb0058880a37a [file] [log] [blame]
Austin Schuh9049e202022-02-20 17:34:16 -08001.. _solver_settings :
2
3Solver settings
4---------------
5
6The solver settings are displayed in the following table. The settings marked with * can be changed without running the setup method again.
7
8.. tabularcolumns:: |p{4.5cm}|p{3.5cm}|p{6.5cm}|L|
9
10+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
11| Argument | Description | Allowed values | Default value |
12+================================+=============================================================+==============================================================+=================+
13| :code:`rho` * | ADMM rho step | 0 < :code:`rho` | 0.1 |
14+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
15| :code:`sigma` | ADMM sigma step | 0 < :code:`sigma` | 1e-06 |
16+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
17| :code:`max_iter` * | Maximum number of iterations | 0 < :code:`max_iter` (integer) | 4000 |
18+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
19| :code:`eps_abs` * | Absolute tolerance | 0 <= :code:`eps_abs` | 1e-03 |
20+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
21| :code:`eps_rel` * | Relative tolerance | 0 <= :code:`eps_rel` | 1e-03 |
22+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
23| :code:`eps_prim_inf` * | Primal infeasibility tolerance | 0 <= :code:`eps_prim_inf` | 1e-04 |
24+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
25| :code:`eps_dual_inf` * | Dual infeasibility tolerance | 0 <= :code:`eps_dual_inf` | 1e-04 |
26+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
27| :code:`alpha` * | ADMM overrelaxation parameter | 0 < :code:`alpha` < 2 | 1.6 |
28+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
29| :code:`linsys_solver` | Linear systems solver type | See :ref:`linear_system_solvers_setting` | qdldl |
30+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
31| :code:`delta` * | Polishing regularization parameter | 0 < :code:`delta` | 1e-06 |
32+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
33| :code:`polish` * | Perform polishing | True/False | False |
34+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
35| :code:`polish_refine_iter` * | Refinement iterations in polish | 0 < :code:`polish_refine_iter` (integer) | 3 |
36+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
37| :code:`verbose` * | Print output | True/False | True |
38+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
39| :code:`scaled_termination` * | Scaled termination conditions | True/False | False |
40+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
41| :code:`check_termination` * | Check termination interval | 0 (disabled) or 0 < :code:`check_termination` (integer) | 25 |
42+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
43| :code:`warm_start` * | Perform warm starting | True/False | True |
44+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
45| :code:`scaling` | Number of scaling iterations | 0 (disabled) or 0 < :code:`scaling` (integer) | 10 |
46+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
47| :code:`adaptive_rho` | Adaptive rho | True/False | True |
48+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
49| :code:`adaptive_rho_interval` | Adaptive rho interval | 0 (automatic) or 0 < :code:`adaptive_rho_interval` (integer) | 0 |
50+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
51| :code:`adaptive_rho_tolerance` | Tolerance for adapting rho | 1 <= :code:`adaptive_rho_tolerance` | 5 |
52+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
53| :code:`adaptive_rho_fraction` | Adaptive rho interval as fraction of setup time (auto mode) | 0 < :code:`adaptive_rho_fraction` | 0.4 |
54+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
55| :code:`time_limit` * | Run time limit in seconds | 0 (disabled) or 0 <= :code:`time_limit` | 0 |
56+--------------------------------+-------------------------------------------------------------+--------------------------------------------------------------+-----------------+
57
58The boolean values :code:`True/False` are defined as :code:`1/0` in the C interfaces.
59
60
61.. The infinity values correspond to:
62..
63.. +----------+--------------------+
64.. | Language | Value |
65.. +==========+====================+
66.. | C | :code:`OSQP_INFTY` |
67.. +----------+--------------------+
68.. | Python | :code:`numpy.inf` |
69.. +----------+--------------------+
70.. | Matlab | :code:`Inf` |
71.. +----------+--------------------+
72.. | Julia | :code:`Inf` |
73.. +----------+--------------------+