SoPlex Documentation
Loading...
Searching...
No Matches
List of all SoPlex parameters

This page lists all parameters of the current SoPlex version. This list can easily be generated by the SoPlex command line interface using:

soplex --saveset=<file name>.set

or via the method saveSettingsFile("<file name>.set", true) of the class SoPlex.

# SoPlexBase version 7.1.2

# should lifting be used to reduce range of nonzero matrix coefficients?
# range {true, false}, default false
bool:lifting = false

# should LP be transformed to equality form before a rational solve?
# range {true, false}, default false
bool:eqtrans = false

# should dual infeasibility be tested in order to try to return a dual solution even if primal infeasible?
# range {true, false}, default false
bool:testdualinf = false

# should a rational factorization be performed after iterative refinement?
# range {true, false}, default true
bool:ratfac = true

# should cycling solutions be accepted during iterative refinement?
# range {true, false}, default false
bool:acceptcycling = false

# apply rational reconstruction after each iterative refinement?
# range {true, false}, default true
bool:ratrec = true

# round scaling factors for iterative refinement to powers of two?
# range {true, false}, default true
bool:powerscaling = true

# continue iterative refinement with exact basic solution if not optimal?
# range {true, false}, default false
bool:ratfacjump = false

# use bound flipping also for row representation?
# range {true, false}, default false
bool:rowboundflips = false

# should persistent scaling be used?
# range {true, false}, default true
bool:persistentscaling = true

# should perturbation be applied to the entire problem?
# range {true, false}, default false
bool:fullperturbation = false

# re-optimize the original problem to get a proof (ray) of infeasibility/unboundedness?
# range {true, false}, default false
bool:ensureray = false

# try to enforce that the optimal solution is a basic solution
# range {true, false}, default false
bool:forcebasic = false

# enable presolver SingletonCols in PaPILO
# range {true, false}, default true
bool:simplifier_enable_singletoncols = true

# enable presolver ConstraintPropagation in PaPILO
# range {true, false}, default true
bool:simplifier_enable_propagation = true

# enable presolver ParallelRowDetection in PaPILO
# range {true, false}, default true
bool:simplifier_enable_parallelrows = true

# enable presolver ParallelColDetection in PaPILO
# range {true, false}, default true
bool:simplifier_enable_parallelcols = true

# enable presolver SingletonStuffing in PaPILO
# range {true, false}, default true
bool:simplifier_enable_stuffing = true

# enable presolver DualFix in PaPILO
# range {true, false}, default true
bool:simplifier_enable_dualfix = true

# enable presolver FixContinuous in PaPILO
# range {true, false}, default true
bool:simplifier_enable_fixcontinuous = true

# enable presolver DominatedCols in PaPILO
# range {true, false}, default true
bool:simplifier_enable_domcol = true

# enable iterative refinement
# range {true, false}, default true
bool:iterative_refinement = true

# adapt tolerances to the multiprecision used
# range {true, false}, default false
bool:adapt_tols_to_multiprecision = false

# enable precision boosting
# range {true, false}, default true
bool:precision_boosting = true

# if true, boosted solver starts from last basis, otherwise from slack basis
# range {true, false}, default true
bool:boosted_warm_start = true

# enable recovery mechanism for when the solve fails
# range {true, false}, default false
bool:recovery_mechanism = false

# objective sense (-1 - minimize, +1 - maximize)
# range [-1,1], default 1
int:objsense = 1

# type of computational form (0 - auto, 1 - column representation, 2 - row representation)
# range [0,2], default 0
int:representation = 0

# type of algorithm (0 - primal, 1 - dual)
# range [0,1], default 1
int:algorithm = 1

# type of LU update (0 - eta update, 1 - Forrest-Tomlin update)
# range [0,1], default 1
int:factor_update_type = 1

# maximum number of LU updates without fresh factorization (0 - auto)
# range [0,2147483647], default 0
int:factor_update_max = 0

# iteration limit (-1 - no limit)
# range [-1,2147483647], default -1
int:iterlimit = -1

# refinement limit (-1 - no limit)
# range [-1,2147483647], default -1
int:reflimit = -1

# stalling refinement limit (-1 - no limit)
# range [-1,2147483647], default -1
int:stallreflimit = -1

# display frequency
# range [1,2147483647], default 200
int:displayfreq = 200

# verbosity level (0 - error, 1 - warning, 2 - debug, 3 - normal, 4 - high, 5 - full)
# range [0,5], default 3
int:verbosity = 3

# simplifier (0 - off, 1 - auto, 2 - PaPILO, 3 - internal)
# range [0,3], default 3
int:simplifier = 3

# scaling (0 - off, 1 - uni-equilibrium, 2 - bi-equilibrium, 3 - geometric, 4 - iterated geometric, 5 - least squares, 6 - geometric-equilibrium)
# range [0,6], default 2
int:scaler = 2

# crash basis generated when starting from scratch (0 - none, 1 - weight, 2 - sum, 3 - vector)
# range [0,3], default 0
int:starter = 0

# pricing method (0 - auto, 1 - dantzig, 2 - parmult, 3 - devex, 4 - quicksteep, 5 - steep)
# range [0,5], default 0
int:pricer = 0

# method for ratio test (0 - textbook, 1 - harris, 2 - fast, 3 - boundflipping)
# range [0,3], default 3
int:ratiotester = 3

# mode for synchronizing real and rational LP (0 - store only real LP, 1 - auto, 2 - manual)
# range [0,2], default 0
int:syncmode = 0

# mode for reading LP files (0 - floating-point, 1 - rational)
# range [0,1], default 0
int:readmode = 0

# mode for iterative refinement strategy (0 - floating-point solve, 1 - auto, 2 - exact rational solve)
# range [0,2], default 1
int:solvemode = 1

# mode for a posteriori feasibility checks (0 - floating-point check, 1 - auto, 2 - exact rational check)
# range [0,2], default 1
int:checkmode = 1

# type of timer (1 - cputime, aka. usertime, 2 - wallclock time, 0 - no timing)
# range [0,2], default 1
int:timer = 1

# mode for hyper sparse pricing (0 - off, 1 - auto, 2 - always)
# range [0,2], default 1
int:hyperpricing = 1

# minimum number of stalling refinements since last pivot to trigger rational factorization
# range [0,2147483647], default 2
int:ratfac_minstalls = 2

# maximum number of conjugate gradient iterations in least square scaling
# range [0,2147483647], default 50
int:leastsq_maxrounds = 50

# mode for solution polishing (0 - off, 1 - max basic slack, 2 - min basic slack)
# range [0,2], default 0
int:solution_polishing = 0

# print basis metric during the solve (-1 - off, 0 - condition estimate , 1 - trace, 2 - determinant, 3 - condition)
# range [-1,3], default -1
int:printbasismetric = -1

# measure for statistics, e.g. factorization time (0 - off, 1 - user time, 2 - wallclock time)
# range [0,2], default 1
int:stattimer = 1

# maximum number of digits for the multiprecision type
# range [50,2147483647], default 300
int:multiprecision_limit = 300

# at max, after how many simplex pivots do we store the advanced and stable basis, 1 = every iterations
# range [1,2147483647], default 10000
int:storeBasisSimplexFreq = 10000

# primal feasibility tolerance
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-06
real:feastol = 1.00000000e-06

# dual feasibility tolerance
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-06
real:opttol = 1.00000000e-06

# general zero tolerance
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-16
real:epsilon_zero = 1.00000000e-16

# zero tolerance used in factorization
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-20
real:epsilon_factorization = 1.00000000e-20

# zero tolerance used in update of the factorization
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-16
real:epsilon_update = 1.00000000e-16

# pivot zero tolerance used in factorization
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-10
real:epsilon_pivot = 1.00000000e-10

# infinity threshold
# range [1.00000000e+10,1.00000000e+100], default 1.00000000e+100
real:infty = 1.00000000e+100

# time limit in seconds
# range [0.00000000e+00,1.00000000e+100], default 1.00000000e+100
real:timelimit = 1.00000000e+100

# lower limit on objective value
# range [-1.00000000e+100,1.00000000e+100], default -1.00000000e+100
real:objlimit_lower = -1.00000000e+100

# upper limit on objective value
# range [-1.00000000e+100,1.00000000e+100], default 1.00000000e+100
real:objlimit_upper = 1.00000000e+100

# working tolerance for feasibility in floating-point solver during iterative refinement
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-09
real:fpfeastol = 1.00000000e-09

# working tolerance for optimality in floating-point solver during iterative refinement
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-09
real:fpopttol = 1.00000000e-09

# maximum increase of scaling factors between refinements
# range [1.00000000e+00,1.00000000e+100], default 1.00000000e+25
real:maxscaleincr = 1.00000000e+25

# lower threshold in lifting (nonzero matrix coefficients with smaller absolute value will be reformulated)
# range [0.00000000e+00,1.00000000e-01], default 9.76562000e-04
real:liftminval = 9.76562000e-04

# lower threshold in lifting (nonzero matrix coefficients with smaller absolute value will be reformulated)
# range [1.00000000e+01,1.00000000e+100], default 1.02400000e+03
real:liftmaxval = 1.02400000e+03

# sparse pricing threshold (#violations < dimension * SPARSITY_THRESHOLD activates sparse pricing)
# range [0.00000000e+00,1.00000000e+00], default 6.00000000e-01
real:sparsity_threshold = 6.00000000e-01

# threshold on number of rows vs. number of columns for switching from column to row representations in auto mode
# range [0.00000000e+00,1.00000000e+100], default 1.20000000e+00
real:representation_switch = 1.20000000e+00

# geometric frequency at which to apply rational reconstruction
# range [1.00000000e+00,1.00000000e+100], default 1.20000000e+00
real:ratrec_freq = 1.20000000e+00

# minimal reduction (sum of removed rows/cols) to continue simplification
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e-04
real:minred = 1.00000000e-04

# refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix
# range [1.00000000e+00,1.00000000e+02], default 1.00000000e+01
real:refac_basis_nnz = 1.00000000e+01

# refactor threshold for fill-in in current factor update compared to fill-in in last factorization
# range [1.00000000e+00,1.00000000e+02], default 5.00000000e+00
real:refac_update_fill = 5.00000000e+00

# refactor threshold for memory growth in factorization since last refactorization
# range [1.00000000e+00,1.00000000e+01], default 1.50000000e+00
real:refac_mem_factor = 1.50000000e+00

# accuracy of conjugate gradient method in least squares scaling (higher value leads to more iterations)
# range [1.00000000e+00,1.00000000e+100], default 1.00000000e+03
real:leastsq_acrcy = 1.00000000e+03

# objective offset to be used
# range [-1.00000000e+100,1.00000000e+100], default 0.00000000e+00
real:obj_offset = 0.00000000e+00

# minimal Markowitz threshold in LU factorization
# range [1.00000000e-04,9.99900000e-01], default 1.00000000e-02
real:min_markowitz = 1.00000000e-02

# modify constraints when the number of nonzeros or rows is at most this factor times the number of nonzeros or rows before presolving
# range [0.00000000e+00,1.00000000e+00], default 1.00000000e+00
real:simplifier_modifyrowfac = 1.00000000e+00

# factor by which the precision of the floating-point solver is multiplied
# range [1.00000000e+00,1.00000000e+01], default 1.50000000e+00
real:precision_boosting_factor = 1.50000000e+00

# initial random seed used for perturbation
# range [0, 4294967295], default 0
uint:random_seed = 0