Scippy

SoPlex

Sequential object-oriented simPlex

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 false
bool:precision_boosting = false

# 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