Options reference

Parameters can be queried and set through the get_parameter and set_parameter functions.

In all that follows, $\epsilon$ refers to the numerical precision, which is given by eps(Tv) where Tv is the arithmetic of the current model. For instance, in double-precision arithmetic, i.e., Tv=Float64, we have $\epsilon \simeq 10^{-16}$.

Tulip.FactoryType
Factory{T}

Factory-like struct for passing options to lower-level components.

source

IPM

Tolerances

Numerical tolerances for the interior-point algorithm.

ParameterDescriptionDefault
TolerancePFeasPrimal feasibility tolerance$\sqrt{\epsilon}$
ToleranceDFeasDual feasibility tolerance$\sqrt{\epsilon}$
ToleranceRGapRelative optimality gap tolerance$\sqrt{\epsilon}$
ToleranceIFeasInfeasibility tolerance$\sqrt{\epsilon}$

Algorithmic parameters

ParameterDescriptionDefault
BarrierAlgorithmInterior-point algorithm1
CorrectionLimitMaximum number of additional centrality corrections5
StepDampFactorStep0.9995
GammaMinMinimum value of $\gamma$ for computing correctors0.1
CentralityOutlierThresholdRelative threshold for computing extra centrality corrections0.1
PRegMinMinimum value of primal regularization$\sqrt{\epsilon}$
DRegMinMinimum value of dual regularization$\sqrt{\epsilon}$

Stopping criterion

ParameterDescriptionDefault
IterationsLimitMaximum number of barrier iterations100
TimeLimitTime limit, in secondsInf

KKT

ParameterDescriptionDefault
BackendSee KKT backendsKKT.DefaultKKTBackend
SystemSee KKT systemsKKT.DefaultKKTSystem

Linear Algebra

These parameters control the linear algebra implementation

ParameterDescriptionDefault
MatrixFactorySee FactoryFactory(SparseMatrixCSC)

Presolve

These parameters control the execution of the presolve phase. They should be called as "Presolve_<Param>".

Others

ParameterDescriptionDefault
OutputLevelControls the solver's output0
ThreadsMaximum number of threads1
PresolvePresolve (no presolve if set to ≤ 0)1