Austin Schuh | 9049e20 | 2022-02-20 17:34:16 -0800 | [diff] [blame^] | 1 | .. _solver_settings : |
| 2 | |
| 3 | Solver settings |
| 4 | --------------- |
| 5 | |
| 6 | The 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 | |
| 58 | The 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 | .. +----------+--------------------+ |