14.4 Parameters (alphabetical list sorted by type)

14.4.1 Double parameters

"basisRelTolS"

Maximum relative dual bound violation allowed in an optimal basic solution.

Default

1.0e-12

Accepted

[0.0; +inf]

Example

M.setSolverParam("basisRelTolS", 1.0e-12)

Generic name

MSK_DPAR_BASIS_REL_TOL_S

Groups

Simplex optimizer, Termination criteria

"basisTolS"

Maximum absolute dual bound violation in an optimal basic solution.

Default

1.0e-6

Accepted

[1.0e-9; +inf]

Example

M.setSolverParam("basisTolS", 1.0e-6)

Generic name

MSK_DPAR_BASIS_TOL_S

Groups

Simplex optimizer, Termination criteria

"basisTolX"

Maximum absolute primal bound violation allowed in an optimal basic solution.

Default

1.0e-6

Accepted

[1.0e-9; +inf]

Example

M.setSolverParam("basisTolX", 1.0e-6)

Generic name

MSK_DPAR_BASIS_TOL_X

Groups

Simplex optimizer, Termination criteria

"intpntCoTolDfeas"

Dual feasibility tolerance used by the interior-point optimizer for conic problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntCoTolDfeas", 1.0e-8)

See also

intpntCoTolNearRel

Generic name

MSK_DPAR_INTPNT_CO_TOL_DFEAS

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntCoTolInfeas"

Infeasibility tolerance used by the interior-point optimizer for conic problems. Controls when the interior-point optimizer declares the model primal or dual infeasible. A small number means the optimizer gets more conservative about declaring the model infeasible.

Default

1.0e-12

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntCoTolInfeas", 1.0e-12)

Generic name

MSK_DPAR_INTPNT_CO_TOL_INFEAS

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntCoTolMuRed"

Relative complementarity gap tolerance used by the interior-point optimizer for conic problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntCoTolMuRed", 1.0e-8)

Generic name

MSK_DPAR_INTPNT_CO_TOL_MU_RED

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntCoTolNearRel"

Optimality tolerance used by the interior-point optimizer for conic problems. If MOSEK cannot compute a solution that has the prescribed accuracy then it will check if the solution found satisfies the termination criteria with all tolerances multiplied by the value of this parameter. If yes, then the solution is also declared optimal.

Default

1000

Accepted

[1.0; +inf]

Example

M.setSolverParam("intpntCoTolNearRel", 1000)

Generic name

MSK_DPAR_INTPNT_CO_TOL_NEAR_REL

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntCoTolPfeas"

Primal feasibility tolerance used by the interior-point optimizer for conic problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntCoTolPfeas", 1.0e-8)

See also

intpntCoTolNearRel

Generic name

MSK_DPAR_INTPNT_CO_TOL_PFEAS

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntCoTolRelGap"

Relative gap termination tolerance used by the interior-point optimizer for conic problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntCoTolRelGap", 1.0e-8)

See also

intpntCoTolNearRel

Generic name

MSK_DPAR_INTPNT_CO_TOL_REL_GAP

Groups

Interior-point method, Termination criteria, Conic interior-point method

"intpntTolDfeas"

Dual feasibility tolerance used by the interior-point optimizer for linear problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntTolDfeas", 1.0e-8)

Generic name

MSK_DPAR_INTPNT_TOL_DFEAS

Groups

Interior-point method, Termination criteria

"intpntTolDsafe"

Controls the initial dual starting point used by the interior-point optimizer. If the interior-point optimizer converges slowly and/or the constraint or variable bounds are very large, then it might be worthwhile to increase this value.

Default

1.0

Accepted

[1.0e-4; +inf]

Example

M.setSolverParam("intpntTolDsafe", 1.0)

Generic name

MSK_DPAR_INTPNT_TOL_DSAFE

Groups

Interior-point method

"intpntTolInfeas"

Infeasibility tolerance used by the interior-point optimizer for linear problems. Controls when the interior-point optimizer declares the model primal or dual infeasible. A small number means the optimizer gets more conservative about declaring the model infeasible.

Default

1.0e-10

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntTolInfeas", 1.0e-10)

Generic name

MSK_DPAR_INTPNT_TOL_INFEAS

Groups

Interior-point method, Termination criteria

"intpntTolMuRed"

Relative complementarity gap tolerance used by the interior-point optimizer for linear problems.

Default

1.0e-16

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntTolMuRed", 1.0e-16)

Generic name

MSK_DPAR_INTPNT_TOL_MU_RED

Groups

Interior-point method, Termination criteria

"intpntTolPath"

Controls how close the interior-point optimizer follows the central path. A large value of this parameter means the central path is followed very closely. On numerically unstable problems it may be worthwhile to increase this parameter.

Default

1.0e-8

Accepted

[0.0; 0.9999]

Example

M.setSolverParam("intpntTolPath", 1.0e-8)

Generic name

MSK_DPAR_INTPNT_TOL_PATH

Groups

Interior-point method

"intpntTolPfeas"

Primal feasibility tolerance used by the interior-point optimizer for linear problems.

Default

1.0e-8

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntTolPfeas", 1.0e-8)

Generic name

MSK_DPAR_INTPNT_TOL_PFEAS

Groups

Interior-point method, Termination criteria

"intpntTolPsafe"

Controls the initial primal starting point used by the interior-point optimizer. If the interior-point optimizer converges slowly and/or the constraint or variable bounds are very large, then it may be worthwhile to increase this value.

Default

1.0

Accepted

[1.0e-4; +inf]

Example

M.setSolverParam("intpntTolPsafe", 1.0)

Generic name

MSK_DPAR_INTPNT_TOL_PSAFE

Groups

Interior-point method

"intpntTolRelGap"

Relative gap termination tolerance used by the interior-point optimizer for linear problems.

Default

1.0e-8

Accepted

[1.0e-14; +inf]

Example

M.setSolverParam("intpntTolRelGap", 1.0e-8)

Generic name

MSK_DPAR_INTPNT_TOL_REL_GAP

Groups

Termination criteria, Interior-point method

"intpntTolRelStep"

Relative step size to the boundary for linear and quadratic optimization problems.

Default

0.9999

Accepted

[1.0e-4; 0.999999]

Example

M.setSolverParam("intpntTolRelStep", 0.9999)

Generic name

MSK_DPAR_INTPNT_TOL_REL_STEP

Groups

Interior-point method

"intpntTolStepSize"

Minimal step size tolerance. If the step size falls below the value of this parameter, then the interior-point optimizer assumes that it is stalled. In other words the interior-point optimizer does not make any progress and therefore it is better to stop.

Default

1.0e-6

Accepted

[0.0; 1.0]

Example

M.setSolverParam("intpntTolStepSize", 1.0e-6)

Generic name

MSK_DPAR_INTPNT_TOL_STEP_SIZE

Groups

Interior-point method

"lowerObjCut"

If either a primal or dual feasible solution is found proving that the optimal objective value is outside the interval \([\) lowerObjCut, upperObjCut \(]\), then MOSEK is terminated.

Default

-1.0e30

Accepted

[-inf; +inf]

Example

M.setSolverParam("lowerObjCut", -1.0e30)

See also

lowerObjCutFiniteTrh

Generic name

MSK_DPAR_LOWER_OBJ_CUT

Groups

Termination criteria

"lowerObjCutFiniteTrh"

If the lower objective cut is less than the value of this parameter value, then the lower objective cut i.e. lowerObjCut is treated as \(-\infty\).

Default

-0.5e30

Accepted

[-inf; +inf]

Example

M.setSolverParam("lowerObjCutFiniteTrh", -0.5e30)

Generic name

MSK_DPAR_LOWER_OBJ_CUT_FINITE_TRH

Groups

Termination criteria

"mioDjcMaxBigm"

Maximum allowed big-M value when reformulating disjunctive constraints to linear constraints. Higher values make it more likely that a disjunction is reformulated to linear constraints, but also increase the risk of numerical problems.

Default

1.0e6

Accepted

[0; +inf]

Example

M.setSolverParam("mioDjcMaxBigm", 1.0e6)

Generic name

MSK_DPAR_MIO_DJC_MAX_BIGM

Groups

Mixed-integer optimization

"mioMaxTime"

This parameter limits the maximum time spent by the mixed-integer optimizer. A negative number means infinity.

Default

-1.0

Accepted

[-inf; +inf]

Example

M.setSolverParam("mioMaxTime", -1.0)

Generic name

MSK_DPAR_MIO_MAX_TIME

Groups

Mixed-integer optimization, Termination criteria

"mioRelGapConst"

This value is used to compute the relative gap for the solution to an integer optimization problem.

Default

1.0e-10

Accepted

[1.0e-15; +inf]

Example

M.setSolverParam("mioRelGapConst", 1.0e-10)

Generic name

MSK_DPAR_MIO_REL_GAP_CONST

Groups

Mixed-integer optimization, Termination criteria

"mioTolAbsGap"

Absolute optimality tolerance employed by the mixed-integer optimizer.

Default

0.0

Accepted

[0.0; +inf]

Example

M.setSolverParam("mioTolAbsGap", 0.0)

Generic name

MSK_DPAR_MIO_TOL_ABS_GAP

Groups

Mixed-integer optimization

"mioTolAbsRelaxInt"

Absolute integer feasibility tolerance. If the distance to the nearest integer is less than this tolerance then an integer constraint is assumed to be satisfied.

Default

1.0e-5

Accepted

[1e-9; +inf]

Example

M.setSolverParam("mioTolAbsRelaxInt", 1.0e-5)

Generic name

MSK_DPAR_MIO_TOL_ABS_RELAX_INT

Groups

Mixed-integer optimization

"mioTolFeas"

Feasibility tolerance for mixed integer solver.

Default

1.0e-6

Accepted

[1e-9; 1e-3]

Example

M.setSolverParam("mioTolFeas", 1.0e-6)

Generic name

MSK_DPAR_MIO_TOL_FEAS

Groups

Mixed-integer optimization

"mioTolRelDualBoundImprovement"

If the relative improvement of the dual bound is smaller than this value, the solver will terminate the root cut generation. A value of 0.0 means that the value is selected automatically.

Default

0.0

Accepted

[0.0; 1.0]

Example

M.setSolverParam("mioTolRelDualBoundImprovement", 0.0)

Generic name

MSK_DPAR_MIO_TOL_REL_DUAL_BOUND_IMPROVEMENT

Groups

Mixed-integer optimization

"mioTolRelGap"

Relative optimality tolerance employed by the mixed-integer optimizer.

Default

1.0e-4

Accepted

[0.0; +inf]

Example

M.setSolverParam("mioTolRelGap", 1.0e-4)

Generic name

MSK_DPAR_MIO_TOL_REL_GAP

Groups

Mixed-integer optimization, Termination criteria

"optimizerMaxTicks"

CURRENTLY NOT IN USE.

Maximum amount of ticks the optimizer is allowed to spent on the optimization. A negative number means infinity.

Default

-1.0

Accepted

[-inf; +inf]

Example

M.setSolverParam("optimizerMaxTicks", -1.0)

Generic name

MSK_DPAR_OPTIMIZER_MAX_TICKS

Groups

Termination criteria

"optimizerMaxTime"

Maximum amount of time the optimizer is allowed to spent on the optimization. A negative number means infinity.

Default

-1.0

Accepted

[-inf; +inf]

Example

M.setSolverParam("optimizerMaxTime", -1.0)

Generic name

MSK_DPAR_OPTIMIZER_MAX_TIME

Groups

Termination criteria

"presolveTolAbsLindep"

Absolute tolerance employed by the linear dependency checker.

Default

1.0e-6

Accepted

[0.0; +inf]

Example

M.setSolverParam("presolveTolAbsLindep", 1.0e-6)

Generic name

MSK_DPAR_PRESOLVE_TOL_ABS_LINDEP

Groups

Presolve

"presolveTolAij"

Absolute zero tolerance employed for \(a_{ij}\) in the presolve.

Default

1.0e-12

Accepted

[1.0e-15; +inf]

Example

M.setSolverParam("presolveTolAij", 1.0e-12)

Generic name

MSK_DPAR_PRESOLVE_TOL_AIJ

Groups

Presolve

"presolveTolPrimalInfeasPerturbation"

The presolve is allowed to perturb a bound on a constraint or variable by this amount if it removes an infeasibility.

Default

1.0e-6

Accepted

[0.0; +inf]

Example

M.setSolverParam("presolveTolPrimalInfeasPerturbation", 1.0e-6)

Generic name

MSK_DPAR_PRESOLVE_TOL_PRIMAL_INFEAS_PERTURBATION

Groups

Presolve

"presolveTolRelLindep"

Relative tolerance employed by the linear dependency checker.

Default

1.0e-10

Accepted

[0.0; +inf]

Example

M.setSolverParam("presolveTolRelLindep", 1.0e-10)

Generic name

MSK_DPAR_PRESOLVE_TOL_REL_LINDEP

Groups

Presolve

"presolveTolS"

Absolute zero tolerance employed for \(s_i\) in the presolve.

Default

1.0e-8

Accepted

[0.0; +inf]

Example

M.setSolverParam("presolveTolS", 1.0e-8)

Generic name

MSK_DPAR_PRESOLVE_TOL_S

Groups

Presolve

"presolveTolX"

Absolute zero tolerance employed for \(x_j\) in the presolve.

Default

1.0e-8

Accepted

[0.0; +inf]

Example

M.setSolverParam("presolveTolX", 1.0e-8)

Generic name

MSK_DPAR_PRESOLVE_TOL_X

Groups

Presolve

"simLuTolRelPiv"

Relative pivot tolerance employed when computing the LU factorization of the basis in the simplex optimizers and in the basis identification procedure. A value closer to 1.0 generally improves numerical stability but typically also implies an increase in the computational work.

Default

0.01

Accepted

[1.0e-6; 0.999999]

Example

M.setSolverParam("simLuTolRelPiv", 0.01)

Generic name

MSK_DPAR_SIM_LU_TOL_REL_PIV

Groups

Basis identification, Simplex optimizer

"simplexAbsTolPiv"

Absolute pivot tolerance employed by the simplex optimizers.

Default

1.0e-7

Accepted

[1.0e-12; +inf]

Example

M.setSolverParam("simplexAbsTolPiv", 1.0e-7)

Generic name

MSK_DPAR_SIMPLEX_ABS_TOL_PIV

Groups

Simplex optimizer

"upperObjCut"

If either a primal or dual feasible solution is found proving that the optimal objective value is outside the interval \([\) lowerObjCut, upperObjCut \(]\), then MOSEK is terminated.

Default

1.0e30

Accepted

[-inf; +inf]

Example

M.setSolverParam("upperObjCut", 1.0e30)

See also

upperObjCutFiniteTrh

Generic name

MSK_DPAR_UPPER_OBJ_CUT

Groups

Termination criteria

"upperObjCutFiniteTrh"

If the upper objective cut is greater than the value of this parameter, then the upper objective cut upperObjCut is treated as \(\infty\).

Default

0.5e30

Accepted

[-inf; +inf]

Example

M.setSolverParam("upperObjCutFiniteTrh", 0.5e30)

Generic name

MSK_DPAR_UPPER_OBJ_CUT_FINITE_TRH

Groups

Termination criteria

14.4.2 Integer parameters

"autoUpdateSolInfo"

Controls whether the solution information items are automatically updated after an optimization is performed.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("autoUpdateSolInfo", "off")

Generic name

MSK_IPAR_AUTO_UPDATE_SOL_INFO

Groups

Overall system

"biCleanOptimizer"

Controls which simplex optimizer is used in the clean-up phase. Anything else than "primalSimplex" or "dualSimplex" is equivalent to "freeSimplex".

Default

"free"

Accepted

"free", "intpnt", "conic", "primalSimplex", "dualSimplex", "freeSimplex", "mixedInt"

Example

M.setSolverParam("biCleanOptimizer", "free")

Generic name

MSK_IPAR_BI_CLEAN_OPTIMIZER

Groups

Basis identification, Overall solver

"biIgnoreMaxIter"

If the parameter intpntBasis has the value "noError" and the interior-point optimizer has terminated due to maximum number of iterations, then basis identification is performed if this parameter has the value "on".

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("biIgnoreMaxIter", "off")

Generic name

MSK_IPAR_BI_IGNORE_MAX_ITER

Groups

Interior-point method, Basis identification

"biIgnoreNumError"

If the parameter intpntBasis has the value "noError" and the interior-point optimizer has terminated due to a numerical problem, then basis identification is performed if this parameter has the value "on".

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("biIgnoreNumError", "off")

Generic name

MSK_IPAR_BI_IGNORE_NUM_ERROR

Groups

Interior-point method, Basis identification

"biMaxIterations"

Controls the maximum number of simplex iterations allowed to optimize a basis after the basis identification.

Default

1000000

Accepted

[0; +inf]

Example

M.setSolverParam("biMaxIterations", 1000000)

Generic name

MSK_IPAR_BI_MAX_ITERATIONS

Groups

Basis identification, Termination criteria

"cacheLicense"

Specifies if the license is kept checked out for the lifetime of the MOSEK environment/model/process ("on") or returned to the server immediately after the optimization ("off").

By default the license is checked out for the lifetime of the process by the first call to Model.solve.

Check-in and check-out of licenses have an overhead. Frequent communication with the license server should be avoided.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("cacheLicense", "on")

Generic name

MSK_IPAR_CACHE_LICENSE

Groups

License manager

"infeasPreferPrimal"

If both certificates of primal and dual infeasibility are supplied then only the primal is used when this option is turned on.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("infeasPreferPrimal", "on")

Generic name

MSK_IPAR_INFEAS_PREFER_PRIMAL

Groups

Overall solver

"infeasReportAuto"

Controls whether an infeasibility report is automatically produced after the optimization if the problem is primal or dual infeasible.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("infeasReportAuto", "off")

Generic name

MSK_IPAR_INFEAS_REPORT_AUTO

Groups

Data input/output, Solution input/output

"intpntBasis"

Controls whether the interior-point optimizer also computes an optimal basis.

Default

"always"

Accepted

"never", "always", "noError", "ifFeasible", "reservered"

Example

M.setSolverParam("intpntBasis", "always")

See also

biIgnoreMaxIter, biIgnoreNumError, biMaxIterations, biCleanOptimizer

Generic name

MSK_IPAR_INTPNT_BASIS

Groups

Interior-point method, Basis identification

"intpntDiffStep"

Controls whether different step sizes are allowed in the primal and dual space.

Default

"on"

Accepted

  • "on": Different step sizes are allowed.

  • "off": Different step sizes are not allowed.

Example

M.setSolverParam("intpntDiffStep", "on")

Generic name

MSK_IPAR_INTPNT_DIFF_STEP

Groups

Interior-point method

"intpntMaxIterations"

Controls the maximum number of iterations allowed in the interior-point optimizer.

Default

400

Accepted

[0; +inf]

Example

M.setSolverParam("intpntMaxIterations", 400)

Generic name

MSK_IPAR_INTPNT_MAX_ITERATIONS

Groups

Interior-point method, Termination criteria

"intpntMaxNumCor"

Controls the maximum number of correctors allowed by the multiple corrector procedure. A negative value means that MOSEK is making the choice.

Default

-1

Accepted

[-1; +inf]

Example

M.setSolverParam("intpntMaxNumCor", -1)

Generic name

MSK_IPAR_INTPNT_MAX_NUM_COR

Groups

Interior-point method

"intpntOffColTrh"

Controls how many offending columns are detected in the Jacobian of the constraint matrix.

\(0\)

no detection

\(1\)

aggressive detection

\(>1\)

higher values mean less aggressive detection

Default

40

Accepted

[0; +inf]

Example

M.setSolverParam("intpntOffColTrh", 40)

Generic name

MSK_IPAR_INTPNT_OFF_COL_TRH

Groups

Interior-point method

"intpntOrderGpNumSeeds"

The GP ordering is dependent on a random seed. Therefore, trying several random seeds may lead to a better ordering. This parameter controls the number of random seeds tried.

A value of 0 means that MOSEK makes the choice.

Default

0

Accepted

[0; +inf]

Example

M.setSolverParam("intpntOrderGpNumSeeds", 0)

Generic name

MSK_IPAR_INTPNT_ORDER_GP_NUM_SEEDS

Groups

Interior-point method

"intpntOrderMethod"

Controls the ordering strategy used by the interior-point optimizer when factorizing the Newton equation system.

Default

"free"

Accepted

"free", "appminloc", "experimental", "tryGraphpar", "forceGraphpar", "none"

Example

M.setSolverParam("intpntOrderMethod", "free")

Generic name

MSK_IPAR_INTPNT_ORDER_METHOD

Groups

Interior-point method

"intpntRegularizationUse"

Controls whether regularization is allowed.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("intpntRegularizationUse", "on")

Generic name

MSK_IPAR_INTPNT_REGULARIZATION_USE

Groups

Interior-point method

"intpntScaling"

Controls how the problem is scaled before the interior-point optimizer is used.

Default

"free"

Accepted

"free", "none"

Example

M.setSolverParam("intpntScaling", "free")

Generic name

MSK_IPAR_INTPNT_SCALING

Groups

Interior-point method

"intpntSolveForm"

Controls whether the primal or the dual problem is solved.

Default

"free"

Accepted

"free", "primal", "dual"

Example

M.setSolverParam("intpntSolveForm", "free")

Generic name

MSK_IPAR_INTPNT_SOLVE_FORM

Groups

Interior-point method

"intpntStartingPoint"

Starting point used by the interior-point optimizer.

Default

"free"

Accepted

"free", "guess", "constant"

Example

M.setSolverParam("intpntStartingPoint", "free")

Generic name

MSK_IPAR_INTPNT_STARTING_POINT

Groups

Interior-point method

"licenseDebug"

This option is used to turn on debugging of the license manager.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("licenseDebug", "off")

Generic name

MSK_IPAR_LICENSE_DEBUG

Groups

License manager

"licensePauseTime"

If licenseWait is "on" and no license is available, then MOSEK sleeps a number of milliseconds between each check of whether a license has become free.

Default

100

Accepted

[0; 1000000]

Example

M.setSolverParam("licensePauseTime", 100)

Generic name

MSK_IPAR_LICENSE_PAUSE_TIME

Groups

License manager

"licenseSuppressExpireWrns"

Controls whether license features expire warnings are suppressed.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("licenseSuppressExpireWrns", "off")

Generic name

MSK_IPAR_LICENSE_SUPPRESS_EXPIRE_WRNS

Groups

License manager, Output information

"licenseTrhExpiryWrn"

If a license feature expires in a numbers of days less than the value of this parameter then a warning will be issued.

Default

7

Accepted

[0; +inf]

Example

M.setSolverParam("licenseTrhExpiryWrn", 7)

Generic name

MSK_IPAR_LICENSE_TRH_EXPIRY_WRN

Groups

License manager, Output information

"licenseWait"

If all licenses are in use MOSEK returns with an error code. However, by turning on this parameter MOSEK will wait for an available license.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("licenseWait", "off")

Generic name

MSK_IPAR_LICENSE_WAIT

Groups

Overall solver, Overall system, License manager

"log"

Controls the amount of log information. The value 0 implies that all log information is suppressed. A higher level implies that more information is logged.

Please note that if a task is employed to solve a sequence of optimization problems the value of this parameter is reduced by the value of logCutSecondOpt for the second and any subsequent optimizations.

Default

10

Accepted

[0; +inf]

Example

M.setSolverParam("log", 10)

See also

logCutSecondOpt

Generic name

MSK_IPAR_LOG

Groups

Output information, Logging

"logBi"

Controls the amount of output printed by the basis identification procedure. A higher level implies that more information is logged.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logBi", 1)

Generic name

MSK_IPAR_LOG_BI

Groups

Basis identification, Output information, Logging

"logBiFreq"

Controls how frequently the optimizer outputs information about the basis identification and how frequent the user-defined callback function is called.

Default

2500

Accepted

[0; +inf]

Example

M.setSolverParam("logBiFreq", 2500)

Generic name

MSK_IPAR_LOG_BI_FREQ

Groups

Basis identification, Output information, Logging

"logCutSecondOpt"

If a task is employed to solve a sequence of optimization problems, then the value of the log levels is reduced by the value of this parameter. E.g log and logSim are reduced by the value of this parameter for the second and any subsequent optimizations.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logCutSecondOpt", 1)

See also

log, logIntpnt, logMio, logSim

Generic name

MSK_IPAR_LOG_CUT_SECOND_OPT

Groups

Output information, Logging

"logExpand"

Controls the amount of logging when a data item such as the maximum number constrains is expanded.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logExpand", 1)

Generic name

MSK_IPAR_LOG_EXPAND

Groups

Output information, Logging

"logFile"

If turned on, then some log info is printed when a file is written or read.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logFile", 1)

Generic name

MSK_IPAR_LOG_FILE

Groups

Data input/output, Output information, Logging

"logInfeasAna"

Controls amount of output printed by the infeasibility analyzer procedures. A higher level implies that more information is logged.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logInfeasAna", 1)

Generic name

MSK_IPAR_LOG_INFEAS_ANA

Groups

Infeasibility report, Output information, Logging

"logIntpnt"

Controls amount of output printed by the interior-point optimizer. A higher level implies that more information is logged.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logIntpnt", 1)

Generic name

MSK_IPAR_LOG_INTPNT

Groups

Interior-point method, Output information, Logging

"logLocalInfo"

Controls whether local identifying information like environment variables, filenames, IP addresses etc. are printed to the log.

Note that this will only affect some functions. Some functions that specifically emit system information will not be affected.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("logLocalInfo", "on")

Generic name

MSK_IPAR_LOG_LOCAL_INFO

Groups

Output information, Logging

"logMio"

Controls the log level for the mixed-integer optimizer. A higher level implies that more information is logged.

Default

4

Accepted

[0; +inf]

Example

M.setSolverParam("logMio", 4)

Generic name

MSK_IPAR_LOG_MIO

Groups

Mixed-integer optimization, Output information, Logging

"logMioFreq"

Controls how frequent the mixed-integer optimizer prints the log line. It will print line every time logMioFreq relaxations have been solved.

Default

10

Accepted

[-inf; +inf]

Example

M.setSolverParam("logMioFreq", 10)

Generic name

MSK_IPAR_LOG_MIO_FREQ

Groups

Mixed-integer optimization, Output information, Logging

"logOrder"

If turned on, then factor lines are added to the log.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logOrder", 1)

Generic name

MSK_IPAR_LOG_ORDER

Groups

Output information, Logging

"logPresolve"

Controls amount of output printed by the presolve procedure. A higher level implies that more information is logged.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logPresolve", 1)

Generic name

MSK_IPAR_LOG_PRESOLVE

Groups

Logging

"logResponse"

Controls amount of output printed when response codes are reported. A higher level implies that more information is logged.

Default

0

Accepted

[0; +inf]

Example

M.setSolverParam("logResponse", 0)

Generic name

MSK_IPAR_LOG_RESPONSE

Groups

Output information, Logging

"logSim"

Controls amount of output printed by the simplex optimizer. A higher level implies that more information is logged.

Default

4

Accepted

[0; +inf]

Example

M.setSolverParam("logSim", 4)

Generic name

MSK_IPAR_LOG_SIM

Groups

Simplex optimizer, Output information, Logging

"logSimFreq"

Controls how frequent the simplex optimizer outputs information about the optimization and how frequent the user-defined callback function is called.

Default

1000

Accepted

[0; +inf]

Example

M.setSolverParam("logSimFreq", 1000)

Generic name

MSK_IPAR_LOG_SIM_FREQ

Groups

Simplex optimizer, Output information, Logging

"logSimMinor"

Currently not in use.

Default

1

Accepted

[0; +inf]

Example

M.setSolverParam("logSimMinor", 1)

Generic name

MSK_IPAR_LOG_SIM_MINOR

Groups

Simplex optimizer, Output information

"mioBranchDir"

Controls whether the mixed-integer optimizer is branching up or down by default.

Default

"free"

Accepted

"free", "up", "down", "near", "far", "rootLp", "guided", "pseudocost"

Example

M.setSolverParam("mioBranchDir", "free")

Generic name

MSK_IPAR_MIO_BRANCH_DIR

Groups

Mixed-integer optimization

"mioConicOuterApproximation"

If this option is turned on outer approximation is used when solving relaxations of conic problems; otherwise interior point is used.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("mioConicOuterApproximation", "off")

Generic name

MSK_IPAR_MIO_CONIC_OUTER_APPROXIMATION

Groups

Mixed-integer optimization

"mioConstructSol"

If set to "on" and all integer variables have been given a value for which a feasible mixed integer solution exists, then MOSEK generates an initial solution to the mixed integer problem by fixing all integer values and solving the remaining problem.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("mioConstructSol", "off")

Generic name

MSK_IPAR_MIO_CONSTRUCT_SOL

Groups

Mixed-integer optimization

"mioCutClique"

Controls whether clique cuts should be generated.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutClique", "on")

Generic name

MSK_IPAR_MIO_CUT_CLIQUE

Groups

Mixed-integer optimization

"mioCutCmir"

Controls whether mixed integer rounding cuts should be generated.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutCmir", "on")

Generic name

MSK_IPAR_MIO_CUT_CMIR

Groups

Mixed-integer optimization

"mioCutGmi"

Controls whether GMI cuts should be generated.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutGmi", "on")

Generic name

MSK_IPAR_MIO_CUT_GMI

Groups

Mixed-integer optimization

"mioCutImpliedBound"

Controls whether implied bound cuts should be generated.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutImpliedBound", "on")

Generic name

MSK_IPAR_MIO_CUT_IMPLIED_BOUND

Groups

Mixed-integer optimization

"mioCutKnapsackCover"

Controls whether knapsack cover cuts should be generated.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutKnapsackCover", "on")

Generic name

MSK_IPAR_MIO_CUT_KNAPSACK_COVER

Groups

Mixed-integer optimization

"mioCutLipro"

Controls whether lift-and-project cuts should be generated.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("mioCutLipro", "off")

Generic name

MSK_IPAR_MIO_CUT_LIPRO

Groups

Mixed-integer optimization

"mioCutSelectionLevel"

Controls how aggressively generated cuts are selected to be included in the relaxation.

  • \(-1\). The optimizer chooses the level of cut selection

  • \(0\). Generated cuts less likely to be added to the relaxation

  • \(1\). Cuts are more aggressively selected to be included in the relaxation

Default

-1

Accepted

[-1; +1]

Example

M.setSolverParam("mioCutSelectionLevel", -1)

Generic name

MSK_IPAR_MIO_CUT_SELECTION_LEVEL

Groups

Mixed-integer optimization

"mioDataPermutationMethod"

Controls what problem data permutation method is appplied to mixed-integer problems.

Default

"none"

Accepted

"none", "cyclicShift", "random"

Example

M.setSolverParam("mioDataPermutationMethod", "none")

Generic name

MSK_IPAR_MIO_DATA_PERMUTATION_METHOD

Groups

Mixed-integer optimization

"mioDualRayAnalysisLevel"

Controls the amount of symmetry detection and handling employed by the mixed-integer optimizer in presolve.

  • \(-1\). The optimizer chooses the level of dual ray analysis employed

  • \(0\). Dual ray analysis is disabled

  • \(1\). A lower amount of dual ray analysis is employed

  • \(2\). A higher amount of dual ray analysis is employed

Default

-1

Accepted

[-1; 2]

Example

M.setSolverParam("mioDualRayAnalysisLevel", -1)

Generic name

MSK_IPAR_MIO_DUAL_RAY_ANALYSIS_LEVEL

Groups

Mixed-integer optimization

"mioFeaspumpLevel"

Controls the way the Feasibility Pump heuristic is employed by the mixed-integer optimizer.

  • \(-1\). The optimizer chooses how the Feasibility Pump is used

  • \(0\). The Feasibility Pump is disabled

  • \(1\). The Feasibility Pump is enabled with an effort to improve solution quality

  • \(2\). The Feasibility Pump is enabled with an effort to reach feasibility early

Default

-1

Accepted

[-1; 2]

Example

M.setSolverParam("mioFeaspumpLevel", -1)

Generic name

MSK_IPAR_MIO_FEASPUMP_LEVEL

Groups

Mixed-integer optimization

"mioHeuristicLevel"

Controls the heuristic employed by the mixed-integer optimizer to locate an initial good integer feasible solution. A value of zero means the heuristic is not used at all. A larger value than \(0\) means that a gradually more sophisticated heuristic is used which is computationally more expensive. A negative value implies that the optimizer chooses the heuristic. Normally a value around \(3\) to \(5\) should be optimal.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("mioHeuristicLevel", -1)

Generic name

MSK_IPAR_MIO_HEURISTIC_LEVEL

Groups

Mixed-integer optimization

"mioMaxNumBranches"

Maximum number of branches allowed during the branch and bound search. A negative value means infinite.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("mioMaxNumBranches", -1)

Generic name

MSK_IPAR_MIO_MAX_NUM_BRANCHES

Groups

Mixed-integer optimization, Termination criteria

"mioMaxNumRelaxs"

Maximum number of relaxations allowed during the branch and bound search. A negative value means infinite.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("mioMaxNumRelaxs", -1)

Generic name

MSK_IPAR_MIO_MAX_NUM_RELAXS

Groups

Mixed-integer optimization

"mioMaxNumRestarts"

Maximum number of restarts allowed during the branch and bound search.

Default

0

Accepted

[0; +inf]

Example

M.setSolverParam("mioMaxNumRestarts", 0)

Generic name

MSK_IPAR_MIO_MAX_NUM_RESTARTS

Groups

Mixed-integer optimization

"mioMaxNumRootCutRounds"

Maximum number of cut separation rounds at the root node.

Default

100

Accepted

[0; +inf]

Example

M.setSolverParam("mioMaxNumRootCutRounds", 100)

Generic name

MSK_IPAR_MIO_MAX_NUM_ROOT_CUT_ROUNDS

Groups

Mixed-integer optimization, Termination criteria

"mioMaxNumSolutions"

The mixed-integer optimizer can be terminated after a certain number of different feasible solutions has been located. If this parameter has the value \(n>0\), then the mixed-integer optimizer will be terminated when \(n\) feasible solutions have been located.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("mioMaxNumSolutions", -1)

Generic name

MSK_IPAR_MIO_MAX_NUM_SOLUTIONS

Groups

Mixed-integer optimization, Termination criteria

"mioMemoryEmphasisLevel"

Controls how much emphasis is put on reducing memory usage. Being more conservative about memory usage may come at the cost of decreased solution speed.

  • \(0\). The optimizer chooses

  • \(1\). More emphasis is put on reducing memory usage and less on speed

Default

0

Accepted

[0; +1]

Example

M.setSolverParam("mioMemoryEmphasisLevel", 0)

Generic name

MSK_IPAR_MIO_MEMORY_EMPHASIS_LEVEL

Groups

Mixed-integer optimization

"mioMinRel"

Number of times a variable must have been branched on for its pseudocost to be considered reliable.

Default

5

Accepted

[0; +inf]

Example

M.setSolverParam("mioMinRel", 5)

Generic name

MSK_IPAR_MIO_MIN_REL

Groups

Mixed-integer optimization

"mioMode"

Controls whether the optimizer includes the integer restrictions and disjunctive constraints when solving a (mixed) integer optimization problem.

Default

"satisfied"

Accepted

"ignored", "satisfied"

Example

M.setSolverParam("mioMode", "satisfied")

Generic name

MSK_IPAR_MIO_MODE

Groups

Overall solver

"mioNodeOptimizer"

Controls which optimizer is employed at the non-root nodes in the mixed-integer optimizer.

Default

"free"

Accepted

"free", "intpnt", "conic", "primalSimplex", "dualSimplex", "freeSimplex", "mixedInt"

Example

M.setSolverParam("mioNodeOptimizer", "free")

Generic name

MSK_IPAR_MIO_NODE_OPTIMIZER

Groups

Mixed-integer optimization

"mioNodeSelection"

Controls the node selection strategy employed by the mixed-integer optimizer.

Default

"free"

Accepted

"free", "first", "best", "pseudo"

Example

M.setSolverParam("mioNodeSelection", "free")

Generic name

MSK_IPAR_MIO_NODE_SELECTION

Groups

Mixed-integer optimization

"mioNumericalEmphasisLevel"

Controls how much emphasis is put on reducing numerical problems possibly at the expense of solution speed.

  • \(0\). The optimizer chooses

  • \(1\). More emphasis is put on reducing numerical problems

  • \(2\). Even more emphasis

Default

0

Accepted

[0; +2]

Example

M.setSolverParam("mioNumericalEmphasisLevel", 0)

Generic name

MSK_IPAR_MIO_NUMERICAL_EMPHASIS_LEVEL

Groups

Mixed-integer optimization

"mioPerspectiveReformulate"

Enables or disables perspective reformulation in presolve.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioPerspectiveReformulate", "on")

Generic name

MSK_IPAR_MIO_PERSPECTIVE_REFORMULATE

Groups

Mixed-integer optimization

"mioPresolveAggregatorUse"

Controls if the aggregator should be used.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("mioPresolveAggregatorUse", "on")

Generic name

MSK_IPAR_MIO_PRESOLVE_AGGREGATOR_USE

Groups

Presolve

"mioProbingLevel"

Controls the amount of probing employed by the mixed-integer optimizer in presolve.

  • \(-1\). The optimizer chooses the level of probing employed

  • \(0\). Probing is disabled

  • \(1\). A low amount of probing is employed

  • \(2\). A medium amount of probing is employed

  • \(3\). A high amount of probing is employed

Default

-1

Accepted

[-1; 3]

Example

M.setSolverParam("mioProbingLevel", -1)

Generic name

MSK_IPAR_MIO_PROBING_LEVEL

Groups

Mixed-integer optimization

"mioPropagateObjectiveConstraint"

Use objective domain propagation.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("mioPropagateObjectiveConstraint", "off")

Generic name

MSK_IPAR_MIO_PROPAGATE_OBJECTIVE_CONSTRAINT

Groups

Mixed-integer optimization

"mioQcqoReformulationMethod"

Controls what reformulation method is applied to mixed-integer quadratic problems.

Default

"free"

Accepted

"free", "none", "linearization", "eigenValMethod", "diagSdp", "relaxSdp"

Example

M.setSolverParam("mioQcqoReformulationMethod", "free")

Generic name

MSK_IPAR_MIO_QCQO_REFORMULATION_METHOD

Groups

Mixed-integer optimization

"mioRinsMaxNodes"

Controls the maximum number of nodes allowed in each call to the RINS heuristic. The default value of -1 means that the value is determined automatically. A value of zero turns off the heuristic.

Default

-1

Accepted

[-1; +inf]

Example

M.setSolverParam("mioRinsMaxNodes", -1)

Generic name

MSK_IPAR_MIO_RINS_MAX_NODES

Groups

Mixed-integer optimization

"mioRootOptimizer"

Controls which optimizer is employed at the root node in the mixed-integer optimizer.

Default

"free"

Accepted

"free", "intpnt", "conic", "primalSimplex", "dualSimplex", "freeSimplex", "mixedInt"

Example

M.setSolverParam("mioRootOptimizer", "free")

Generic name

MSK_IPAR_MIO_ROOT_OPTIMIZER

Groups

Mixed-integer optimization

"mioRootRepeatPresolveLevel"

Controls whether presolve can be repeated at root node.

  • \(-1\). The optimizer chooses whether presolve is repeated

  • \(0\). Never repeat presolve

  • \(1\). Always repeat presolve

Default

-1

Accepted

[-1; 1]

Example

M.setSolverParam("mioRootRepeatPresolveLevel", -1)

Generic name

MSK_IPAR_MIO_ROOT_REPEAT_PRESOLVE_LEVEL

Groups

Mixed-integer optimization

"mioSeed"

Sets the random seed used for randomization in the mixed integer optimizer. Selecting a different seed can change the path the optimizer takes to the optimal solution.

Default

42

Accepted

[0; +inf]

Example

M.setSolverParam("mioSeed", 42)

Generic name

MSK_IPAR_MIO_SEED

Groups

Mixed-integer optimization

"mioSymmetryLevel"

Controls the amount of symmetry detection and handling employed by the mixed-integer optimizer in presolve.

  • \(-1\). The optimizer chooses the level of symmetry detection and handling employed

  • \(0\). Symmetry detection and handling is disabled

  • \(1\). A low amount of symmetry detection and handling is employed

  • \(2\). A medium amount of symmetry detection and handling is employed

  • \(3\). A high amount of symmetry detection and handling is employed

  • \(4\). An extremely high amount of symmetry detection and handling is employed

Default

-1

Accepted

[-1; 4]

Example

M.setSolverParam("mioSymmetryLevel", -1)

Generic name

MSK_IPAR_MIO_SYMMETRY_LEVEL

Groups

Mixed-integer optimization

"mioVarSelection"

Controls the variable selection strategy employed by the mixed-integer optimizer.

Default

"free"

Accepted

"free", "pseudocost", "strong"

Example

M.setSolverParam("mioVarSelection", "free")

Generic name

MSK_IPAR_MIO_VAR_SELECTION

Groups

Mixed-integer optimization

"mioVbDetectionLevel"

Controls how much effort is put into detecting variable bounds.

  • \(-1\). The optimizer chooses

  • \(0\). No variable bounds are detected

  • \(1\). Only detect variable bounds that are directly represented in the problem

  • \(2\). Detect variable bounds in probing

Default

-1

Accepted

[-1; +2]

Example

M.setSolverParam("mioVbDetectionLevel", -1)

Generic name

MSK_IPAR_MIO_VB_DETECTION_LEVEL

Groups

Mixed-integer optimization

"mtSpincount"

Set the number of iterations to spin before sleeping.

Default

0

Accepted

[0; 1000000000]

Example

M.setSolverParam("mtSpincount", 0)

Generic name

MSK_IPAR_MT_SPINCOUNT

Groups

Overall system

"numThreads"

Controls the number of threads employed by the optimizer. If set to 0 the number of threads used will be equal to the number of cores detected on the machine.

Default

0

Accepted

[0; +inf]

Example

M.setSolverParam("numThreads", 0)

Generic name

MSK_IPAR_NUM_THREADS

Groups

Overall system

"optimizer"

The parameter controls which optimizer is used to optimize the task.

Default

"free"

Accepted

"free", "intpnt", "conic", "primalSimplex", "dualSimplex", "freeSimplex", "mixedInt"

Example

M.setSolverParam("optimizer", "free")

Generic name

MSK_IPAR_OPTIMIZER

Groups

Overall solver

"presolveEliminatorMaxFill"

Controls the maximum amount of fill-in that can be created by one pivot in the elimination phase of the presolve. A negative value means the parameter value is selected automatically.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveEliminatorMaxFill", -1)

Generic name

MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_FILL

Groups

Presolve

"presolveEliminatorMaxNumTries"

Control the maximum number of times the eliminator is tried. A negative value implies MOSEK decides.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveEliminatorMaxNumTries", -1)

Generic name

MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_NUM_TRIES

Groups

Presolve

"presolveLevel"

Currently not used.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveLevel", -1)

Generic name

MSK_IPAR_PRESOLVE_LEVEL

Groups

Overall solver, Presolve

"presolveLindepAbsWorkTrh"

Controls linear dependency check in presolve. The linear dependency check is potentially computationally expensive.

Default

100

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveLindepAbsWorkTrh", 100)

Generic name

MSK_IPAR_PRESOLVE_LINDEP_ABS_WORK_TRH

Groups

Presolve

"presolveLindepNew"

Controls whether whether a new experimental linear dependency checker is employed.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("presolveLindepNew", "off")

Generic name

MSK_IPAR_PRESOLVE_LINDEP_NEW

Groups

Presolve

"presolveLindepRelWorkTrh"

Controls linear dependency check in presolve. The linear dependency check is potentially computationally expensive.

Default

100

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveLindepRelWorkTrh", 100)

Generic name

MSK_IPAR_PRESOLVE_LINDEP_REL_WORK_TRH

Groups

Presolve

"presolveLindepUse"

Controls whether the linear constraints are checked for linear dependencies.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("presolveLindepUse", "on")

Generic name

MSK_IPAR_PRESOLVE_LINDEP_USE

Groups

Presolve

"presolveMaxNumPass"

Control the maximum number of times presolve passes over the problem. A negative value implies MOSEK decides.

Default

-1

Accepted

[-inf; +inf]

Example

M.setSolverParam("presolveMaxNumPass", -1)

Generic name

MSK_IPAR_PRESOLVE_MAX_NUM_PASS

Groups

Presolve

"presolveUse"

Controls whether the presolve is applied to a problem before it is optimized.

Default

"free"

Accepted

"off", "on", "free"

Example

M.setSolverParam("presolveUse", "free")

Generic name

MSK_IPAR_PRESOLVE_USE

Groups

Overall solver, Presolve

"remoteUseCompression"

Use compression when sending data to an optimization server.

Default

"zstd"

Accepted

"none", "free", "gzip", "zstd"

Example

M.setSolverParam("remoteUseCompression", "zstd")

Generic name

MSK_IPAR_REMOTE_USE_COMPRESSION

"removeUnusedSolutions"

Removes unused solutions before the optimization is performed.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("removeUnusedSolutions", "off")

Generic name

MSK_IPAR_REMOVE_UNUSED_SOLUTIONS

Groups

Overall system

"simBasisFactorUse"

Controls whether an LU factorization of the basis is used in a hot-start. Forcing a refactorization sometimes improves the stability of the simplex optimizers, but in most cases there is a performance penalty.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("simBasisFactorUse", "on")

Generic name

MSK_IPAR_SIM_BASIS_FACTOR_USE

Groups

Simplex optimizer

"simDegen"

Controls how aggressively degeneration is handled.

Default

"free"

Accepted

"none", "free", "aggressive", "moderate", "minimum"

Example

M.setSolverParam("simDegen", "free")

Generic name

MSK_IPAR_SIM_DEGEN

Groups

Simplex optimizer

"simDualCrash"

Controls whether crashing is performed in the dual simplex optimizer. If this parameter is set to \(x\), then a crash will be performed if a basis consists of more than \((100-x)\mod f_v\) entries, where \(f_v\) is the number of fixed variables.

Default

90

Accepted

[0; +inf]

Example

M.setSolverParam("simDualCrash", 90)

Generic name

MSK_IPAR_SIM_DUAL_CRASH

Groups

Dual simplex

"simDualPhaseoneMethod"

An experimental feature.

Default

0

Accepted

[0; 10]

Example

M.setSolverParam("simDualPhaseoneMethod", 0)

Generic name

MSK_IPAR_SIM_DUAL_PHASEONE_METHOD

Groups

Simplex optimizer

"simDualRestrictSelection"

The dual simplex optimizer can use a so-called restricted selection/pricing strategy to choose the outgoing variable. Hence, if restricted selection is applied, then the dual simplex optimizer first choose a subset of all the potential outgoing variables. Next, for some time it will choose the outgoing variable only among the subset. From time to time the subset is redefined. A larger value of this parameter implies that the optimizer will be more aggressive in its restriction strategy, i.e. a value of 0 implies that the restriction strategy is not applied at all.

Default

50

Accepted

[0; 100]

Example

M.setSolverParam("simDualRestrictSelection", 50)

Generic name

MSK_IPAR_SIM_DUAL_RESTRICT_SELECTION

Groups

Dual simplex

"simDualSelection"

Controls the choice of the incoming variable, known as the selection strategy, in the dual simplex optimizer.

Default

"free"

Accepted

"free", "full", "ase", "devex", "se", "partial"

Example

M.setSolverParam("simDualSelection", "free")

Generic name

MSK_IPAR_SIM_DUAL_SELECTION

Groups

Dual simplex

"simExploitDupvec"

Controls if the simplex optimizers are allowed to exploit duplicated columns.

Default

"off"

Accepted

"on", "off", "free"

Example

M.setSolverParam("simExploitDupvec", "off")

Generic name

MSK_IPAR_SIM_EXPLOIT_DUPVEC

Groups

Simplex optimizer

"simHotstart"

Controls the type of hot-start that the simplex optimizer perform.

Default

"free"

Accepted

"none", "free", "statusKeys"

Example

M.setSolverParam("simHotstart", "free")

Generic name

MSK_IPAR_SIM_HOTSTART

Groups

Simplex optimizer

"simHotstartLu"

Determines if the simplex optimizer should exploit the initial factorization.

Default

"on"

Accepted

  • "on": Factorization is reused if possible.

  • "off": Factorization is recomputed.

Example

M.setSolverParam("simHotstartLu", "on")

Generic name

MSK_IPAR_SIM_HOTSTART_LU

Groups

Simplex optimizer

"simMaxIterations"

Maximum number of iterations that can be used by a simplex optimizer.

Default

10000000

Accepted

[0; +inf]

Example

M.setSolverParam("simMaxIterations", 10000000)

Generic name

MSK_IPAR_SIM_MAX_ITERATIONS

Groups

Simplex optimizer, Termination criteria

"simMaxNumSetbacks"

Controls how many set-backs are allowed within a simplex optimizer. A set-back is an event where the optimizer moves in the wrong direction. This is impossible in theory but may happen due to numerical problems.

Default

250

Accepted

[0; +inf]

Example

M.setSolverParam("simMaxNumSetbacks", 250)

Generic name

MSK_IPAR_SIM_MAX_NUM_SETBACKS

Groups

Simplex optimizer

"simNonSingular"

Controls if the simplex optimizer ensures a non-singular basis, if possible.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("simNonSingular", "on")

Generic name

MSK_IPAR_SIM_NON_SINGULAR

Groups

Simplex optimizer

"simPrimalCrash"

Controls whether crashing is performed in the primal simplex optimizer. In general, if a basis consists of more than (100-this parameter value)% fixed variables, then a crash will be performed.

Default

90

Accepted

[0; +inf]

Example

M.setSolverParam("simPrimalCrash", 90)

Generic name

MSK_IPAR_SIM_PRIMAL_CRASH

Groups

Primal simplex

"simPrimalPhaseoneMethod"

An experimental feature.

Default

0

Accepted

[0; 10]

Example

M.setSolverParam("simPrimalPhaseoneMethod", 0)

Generic name

MSK_IPAR_SIM_PRIMAL_PHASEONE_METHOD

Groups

Simplex optimizer

"simPrimalRestrictSelection"

The primal simplex optimizer can use a so-called restricted selection/pricing strategy to choose the outgoing variable. Hence, if restricted selection is applied, then the primal simplex optimizer first choose a subset of all the potential incoming variables. Next, for some time it will choose the incoming variable only among the subset. From time to time the subset is redefined. A larger value of this parameter implies that the optimizer will be more aggressive in its restriction strategy, i.e. a value of 0 implies that the restriction strategy is not applied at all.

Default

50

Accepted

[0; 100]

Example

M.setSolverParam("simPrimalRestrictSelection", 50)

Generic name

MSK_IPAR_SIM_PRIMAL_RESTRICT_SELECTION

Groups

Primal simplex

"simPrimalSelection"

Controls the choice of the incoming variable, known as the selection strategy, in the primal simplex optimizer.

Default

"free"

Accepted

"free", "full", "ase", "devex", "se", "partial"

Example

M.setSolverParam("simPrimalSelection", "free")

Generic name

MSK_IPAR_SIM_PRIMAL_SELECTION

Groups

Primal simplex

"simRefactorFreq"

Controls how frequent the basis is refactorized. The value 0 means that the optimizer determines the best point of refactorization. It is strongly recommended NOT to change this parameter.

Default

0

Accepted

[0; +inf]

Example

M.setSolverParam("simRefactorFreq", 0)

Generic name

MSK_IPAR_SIM_REFACTOR_FREQ

Groups

Simplex optimizer

"simReformulation"

Controls if the simplex optimizers are allowed to reformulate the problem.

Default

"off"

Accepted

"on", "off", "free", "aggressive"

Example

M.setSolverParam("simReformulation", "off")

Generic name

MSK_IPAR_SIM_REFORMULATION

Groups

Simplex optimizer

"simSaveLu"

Controls if the LU factorization stored should be replaced with the LU factorization corresponding to the initial basis.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("simSaveLu", "off")

Generic name

MSK_IPAR_SIM_SAVE_LU

Groups

Simplex optimizer

"simScaling"

Controls how much effort is used in scaling the problem before a simplex optimizer is used.

Default

"free"

Accepted

"free", "none"

Example

M.setSolverParam("simScaling", "free")

Generic name

MSK_IPAR_SIM_SCALING

Groups

Simplex optimizer

"simScalingMethod"

Controls how the problem is scaled before a simplex optimizer is used.

Default

"pow2"

Accepted

"pow2", "free"

Example

M.setSolverParam("simScalingMethod", "pow2")

Generic name

MSK_IPAR_SIM_SCALING_METHOD

Groups

Simplex optimizer

"simSeed"

Sets the random seed used for randomization in the simplex optimizers.

Default

23456

Accepted

[0; 32749]

Example

M.setSolverParam("simSeed", 23456)

Generic name

MSK_IPAR_SIM_SEED

Groups

Simplex optimizer

"simSolveForm"

Controls whether the primal or the dual problem is solved by the primal-/dual-simplex optimizer.

Default

"free"

Accepted

"free", "primal", "dual"

Example

M.setSolverParam("simSolveForm", "free")

Generic name

MSK_IPAR_SIM_SOLVE_FORM

Groups

Simplex optimizer

"simSwitchOptimizer"

The simplex optimizer sometimes chooses to solve the dual problem instead of the primal problem. This implies that if you have chosen to use the dual simplex optimizer and the problem is dualized, then it actually makes sense to use the primal simplex optimizer instead. If this parameter is on and the problem is dualized and furthermore the simplex optimizer is chosen to be the primal (dual) one, then it is switched to the dual (primal).

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("simSwitchOptimizer", "off")

Generic name

MSK_IPAR_SIM_SWITCH_OPTIMIZER

Groups

Simplex optimizer

"writeJsonIndentation"

When set, the JSON task and solution files are written with indentation for better readability.

Default

"off"

Accepted

"on", "off"

Example

M.setSolverParam("writeJsonIndentation", "off")

Generic name

MSK_IPAR_WRITE_JSON_INDENTATION

Groups

Data input/output

"writeLpFullObj"

Write all variables, including the ones with 0-coefficients, in the objective.

Default

"on"

Accepted

"on", "off"

Example

M.setSolverParam("writeLpFullObj", "on")

Generic name

MSK_IPAR_WRITE_LP_FULL_OBJ

Groups

Data input/output

"writeLpLineWidth"

Maximum width of line in an LP file written by MOSEK.

Default

80

Accepted

[40; +inf]

Example

M.setSolverParam("writeLpLineWidth", 80)

Generic name

MSK_IPAR_WRITE_LP_LINE_WIDTH

Groups

Data input/output

14.4.3 String parameters

"basSolFileName"

Name of the bas solution file.

Accepted

Any valid file name.

Example

M.setSolverParam("basSolFileName", "somevalue")

Generic name

MSK_SPAR_BAS_SOL_FILE_NAME

Groups

Data input/output, Solution input/output

"dataFileName"

Data are read and written to this file.

Accepted

Any valid file name.

Example

M.setSolverParam("dataFileName", "somevalue")

Generic name

MSK_SPAR_DATA_FILE_NAME

Groups

Data input/output

"intSolFileName"

Name of the int solution file.

Accepted

Any valid file name.

Example

M.setSolverParam("intSolFileName", "somevalue")

Generic name

MSK_SPAR_INT_SOL_FILE_NAME

Groups

Data input/output, Solution input/output

"itrSolFileName"

Name of the itr solution file.

Accepted

Any valid file name.

Example

M.setSolverParam("itrSolFileName", "somevalue")

Generic name

MSK_SPAR_ITR_SOL_FILE_NAME

Groups

Data input/output, Solution input/output

"remoteOptserverHost"

URL of the remote optimization server in the format (http|https)://server:port. If set, all subsequent calls to any MOSEK function that involves synchronous optimization will be sent to the specified OptServer instead of being executed locally. Passing empty string deactivates this redirection.

Accepted

Any valid URL.

Example

M.setSolverParam("remoteOptserverHost", "somevalue")

Generic name

MSK_SPAR_REMOTE_OPTSERVER_HOST

Groups

Overall system

"remoteTlsCert"

List of known server certificates in PEM format.

Accepted

PEM files separated by new-lines.

Example

M.setSolverParam("remoteTlsCert", "somevalue")

Generic name

MSK_SPAR_REMOTE_TLS_CERT

Groups

Overall system

"remoteTlsCertPath"

Path to known server certificates in PEM format.

Accepted

Any valid path.

Example

M.setSolverParam("remoteTlsCertPath", "somevalue")

Generic name

MSK_SPAR_REMOTE_TLS_CERT_PATH

Groups

Overall system

"writeLpGenVarName"

Sometimes when an LP file is written additional variables must be inserted. They will have the prefix denoted by this parameter.

Default

xmskgen

Accepted

Any valid string.

Example

M.setSolverParam("writeLpGenVarName", "xmskgen")

Generic name

MSK_SPAR_WRITE_LP_GEN_VAR_NAME

Groups

Data input/output