| clarabel_control | R Documentation |
Control parameters with default values and types in parenthesis
clarabel_control(
max_iter = 200L,
time_limit = Inf,
verbose = TRUE,
max_step_fraction = 0.99,
tol_gap_abs = 1e-08,
tol_gap_rel = 1e-08,
tol_feas = 1e-08,
tol_infeas_abs = 1e-08,
tol_infeas_rel = 1e-08,
tol_ktratio = 1e-06,
reduced_tol_gap_abs = 5e-05,
reduced_tol_gap_rel = 5e-05,
reduced_tol_feas = 1e-04,
reduced_tol_infeas_abs = 5e-12,
reduced_tol_infeas_rel = 5e-05,
reduced_tol_ktratio = 1e-04,
equilibrate_enable = TRUE,
equilibrate_max_iter = 10L,
equilibrate_min_scaling = 1e-04,
equilibrate_max_scaling = 10000,
linesearch_backtrack_step = 0.8,
min_switch_step_length = 0.1,
min_terminate_step_length = 1e-04,
max_threads = 0L,
direct_kkt_solver = TRUE,
direct_solve_method = c("auto", "qdldl"),
static_regularization_enable = TRUE,
static_regularization_constant = 1e-08,
static_regularization_proportional = .Machine$double.eps * .Machine$double.eps,
dynamic_regularization_enable = TRUE,
dynamic_regularization_eps = 1e-13,
dynamic_regularization_delta = 2e-07,
iterative_refinement_enable = TRUE,
iterative_refinement_reltol = 1e-13,
iterative_refinement_abstol = 1e-12,
iterative_refinement_max_iter = 10L,
iterative_refinement_stop_ratio = 5,
presolve_enable = TRUE,
input_sparse_dropzeros = FALSE,
chordal_decomposition_enable = TRUE,
chordal_decomposition_merge_method = c("clique_graph", "parent_child", "none"),
chordal_decomposition_compact = TRUE,
chordal_decomposition_complete_dual = TRUE
)
max_iter |
maximum number of iterations ( |
time_limit |
maximum run time (seconds) ( |
verbose |
verbose printing ( |
max_step_fraction |
maximum interior point step length ( |
tol_gap_abs |
absolute duality gap tolerance ( |
tol_gap_rel |
relative duality gap tolerance ( |
tol_feas |
feasibility check tolerance (primal and dual) ( |
tol_infeas_abs |
absolute infeasibility tolerance (primal and dual) ( |
tol_infeas_rel |
relative infeasibility tolerance (primal and dual) ( |
tol_ktratio |
KT tolerance ( |
reduced_tol_gap_abs |
reduced absolute duality gap tolerance ( |
reduced_tol_gap_rel |
reduced relative duality gap tolerance ( |
reduced_tol_feas |
reduced feasibility check tolerance (primal and dual) ( |
reduced_tol_infeas_abs |
reduced absolute infeasibility tolerance (primal and dual) ( |
reduced_tol_infeas_rel |
reduced relative infeasibility tolerance (primal and dual) ( |
reduced_tol_ktratio |
reduced KT tolerance ( |
equilibrate_enable |
enable data equilibration pre-scaling ( |
equilibrate_max_iter |
maximum equilibration scaling iterations ( |
equilibrate_min_scaling |
minimum equilibration scaling allowed ( |
equilibrate_max_scaling |
maximum equilibration scaling allowed ( |
linesearch_backtrack_step |
linesearch backtracking ( |
min_switch_step_length |
minimum step size allowed for asymmetric cones with PrimalDual scaling ( |
min_terminate_step_length |
minimum step size allowed for symmetric cones && asymmetric cones with Dual scaling ( |
max_threads |
maximum solver threads for multithreaded KKT solvers, 0 lets the solver choose for itself ( |
direct_kkt_solver |
use a direct linear solver method (required true) ( |
direct_solve_method |
direct linear solver, either |
static_regularization_enable |
enable KKT static regularization ( |
static_regularization_constant |
KKT static regularization parameter ( |
static_regularization_proportional |
additional regularization parameter w.r.t. the maximum abs diagonal term ( |
dynamic_regularization_enable |
enable KKT dynamic regularization ( |
dynamic_regularization_eps |
KKT dynamic regularization threshold ( |
dynamic_regularization_delta |
KKT dynamic regularization shift ( |
iterative_refinement_enable |
KKT solve with iterative refinement ( |
iterative_refinement_reltol |
iterative refinement relative tolerance ( |
iterative_refinement_abstol |
iterative refinement absolute tolerance ( |
iterative_refinement_max_iter |
iterative refinement maximum iterations ( |
iterative_refinement_stop_ratio |
iterative refinement stalling tolerance ( |
presolve_enable |
whether to enable presolvle ( |
input_sparse_dropzeros |
explicitly drop structural zeros from sparse data inputs ( |
chordal_decomposition_enable |
whether to enable chordal decomposition for SDPs ( |
chordal_decomposition_merge_method |
chordal decomposition merge method, one of |
chordal_decomposition_compact |
a boolean flag for SDPs indicating whether to assemble decomposed system in compact form for SDPs ( |
chordal_decomposition_complete_dual |
a boolean flag indicating complete PSD dual variables after decomposition for SDPs ( |
Setting input_sparse_dropzeros to TRUE will disable parametric updating functionality. See documentation of 'dropzeros' in Rust struct CscMatrix for dropping structural zeros before passing to the solver.
These defaults track the Rust solver (Clarabel.rs 0.11.1) exactly. The only
departure is the set of values accepted for direct_solve_method, which is
limited by the features this package is built with.
Chordal decomposition applies only to semidefinite programs, and only when the
aggregate sparsity pattern of the semidefinite constraints is decomposable. For
such problems it can be dramatically faster, since it replaces one large
semidefinite cone by several small ones. It has two consequences worth knowing.
The reported dual variables for semidefinite constraints are not in general the
same as those obtained without decomposition, because the decomposition is
reversed and the dual completed, and a positive semidefinite completion is not
unique. It also blocks the data updates used for warm starts, but only when a
decomposition actually took place: linear, quadratic and second-order cone
problems are unaffected, and remain updatable. See
solver_is_update_allowed() to check a particular solver instance.
a list containing the control parameters.
# Default control parameters
ctrl <- clarabel_control()
ctrl$max_iter
# Custom tolerances and quiet output
ctrl <- clarabel_control(verbose = FALSE, tol_gap_rel = 1e-7, max_iter = 100L)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.