Parameter Groups#

To provide some guidance on this page, we have classified the parameters into a number of categories. Some parameters are part of multiple categories. Those categories are:

The tables below link to the full detail of each parameter’s effect in the Parameter Reference section.

Termination#

These parameters affect the termination of the algorithms. If the algorithm exceeds any of these limits, it will terminate and report a non-optimal termination status (see the Status Code section for further details). Note that the algorithm won’t necessarily stop the moment it hits the specified limit. The termination check may occur well after the limit has been exceeded.

Parameter name

Purpose

BarIterLimit

Barrier iteration limit

BestBdStop

Best objective bound to stop

BestObjStop

Best objective value to stop

Cutoff

Objective cutoff

IterationLimit

Simplex iteration limit

MemLimit

Memory limit

NodeLimit

MIP node limit

SoftMemLimit

Soft memory limit

SolutionLimit

MIP feasible solution limit

TimeLimit

Time limit

WorkLimit

Work limit

A few termination parameters can be modified from a callback with the corresponding callback methods. Those are: TimeLimit, WorkLimit, NodeLimit, and BarIterLimit. This makes it easier to implement custom termination criteria that, for example, set a time limit based on dynamic solving process data like the current incumbent objective value.

Tolerances#

These parameters control the allowable feasibility or optimality violations.

Parameter name

Purpose

BarConvTol

Barrier convergence tolerance

BarQCPConvTol

Barrier QCP convergence tolerance

FeasibilityTol

Primal feasibility tolerance

IntFeasTol

Integer feasibility tolerance

MarkowitzTol

Threshold pivoting tolerance

MIPGap

Relative MIP optimality gap

MIPGapAbs

Absolute MIP optimality gap

OptimalityTol

Dual feasibility tolerance

PSDTol

Positive semi-definite tolerance

Logging#

These parameters control the logging information.

Parameter name

Purpose

CSClientLog

Controls logging for Compute Server and the Web License Service (WLS)

DisplayInterval

Frequency at which log lines are printed

LogFile

Log file name

LogToConsole

Console logging

OutputFlag

Solver output control

I/O#

These parameters can be used to read or write information.

Parameter name

Purpose

InputFile

File to be read before optimization commences

JSONSolDetail

Controls the level of detail stored in generated JSON solution

Record

Enable API call recording

ResultFile

Result file written upon completion of optimization

SolFiles

Location to store intermediate solution files

Presolve#

These parameters control the operation of the presolve algorithms.

Parameter name

Purpose

AggFill

Allowed fill during presolve aggregation

Aggregate

Presolve aggregation control

DualReductions

Disables dual reductions in presolve

PreCrush

Allows presolve to translate constraints on the original model to equivalent constraints on the presolved model

PreDepRow

Presolve dependent row reduction

PreDual

Presolve dualization

PreMIQCPForm

Format of presolved MIQCP model

PrePasses

Presolve pass limit

PreQLinearize

Presolve Q matrix linearization

Presolve

Presolve level

PreSOS1BigM

Controls largest coefficient in SOS1 reformulation

PreSOS1Encoding

Controls SOS1 reformulation

PreSOS2BigM

Controls largest coefficient in SOS2 reformulation

PreSOS2Encoding

Controls SOS2 reformulation

PreSparsify

Presolve sparsify reduction

Simplex#

These parameters control the operation of the simplex algorithms.

Parameter name

Purpose

InfUnbdInfo

Generate additional info for infeasible/unbounded models

IterationLimit

Simplex iteration limit

LPWarmStart

Warm start usage in simplex

Method

Define method, e.g., Simplex, to solve continuous models

NetworkAlg

Network simplex algorithm

NormAdjust

Simplex pricing norm

PerturbValue

Simplex perturbation magnitude

Quad

Quad precision computation in simplex

Sifting

Sifting within dual simplex

SiftMethod

LP method used to solve sifting sub-problems

SimplexPricing

Simplex variable pricing strategy

Barrier#

These parameters control the operation of the barrier solver.

Parameter name

Purpose

BarConvTol

Barrier convergence tolerance

BarCorrectors

Central correction limit

BarHomogeneous

Barrier homogeneous algorithm

BarIterLimit

Barrier iteration limit

BarOrder

Barrier ordering algorithm

BarQCPConvTol

Barrier QCP convergence tolerance

Crossover

Barrier crossover strategy

CrossoverBasis

Crossover initial basis construction strategy

Method

Define method, e.g., Barrier, to solve continuous models

QCPDual

Compute dual variables for QCP models

Scaling#

These parameters control the operation of the simplex algorithms and the barrier solver.

Parameter name

Purpose

ObjScale

Objective scaling

ScaleFlag

Model scaling

MIP#

These parameters control the operation of the MIP algorithms.

Parameter name

Purpose

BranchDir

Branch direction preference

ConcurrentJobs

Enables distributed concurrent solver

ConcurrentMethod

Chooses continuous solvers to run concurrently

ConcurrentMIP

Enables concurrent MIP solver

ConcurrentSettings

Create concurrent environments from a list of .prm files

DegenMoves

Degenerate simplex moves

Disconnected

Disconnected component strategy

DistributedMIPJobs

Enables the distributed MIP solver

Heuristics

Turn MIP heuristics up or down

ImproveStartGap

Trigger solution improvement

ImproveStartNodes

Trigger solution improvement

ImproveStartTime

Trigger solution improvement

IntegralityFocus

Set the integrality focus

LazyConstraints

Programs that add lazy constraints must set this parameter

MinRelNodes

Minimum relaxation heuristic control

MIPFocus

Set the focus of the MIP solver

MIQCPMethod

Method used to solve MIQCP models

NLPHeur

Controls the NLP heuristic for non-convex quadratic models

NodefileDir

Directory for MIP node files

NodefileStart

Memory threshold for writing MIP tree nodes to disk

NodeLimit

MIP node limit

NodeMethod

Method used to solve MIP node relaxations

NonConvex

Control how to deal with non-convex quadratic programs

NoRelHeurTime

Limits the amount of time (in seconds) spent in the NoRel heuristic

NoRelHeurWork

Limits the amount of work performed by the NoRel heuristic

OBBT

Controls aggressiveness of optimality-based bound tightening

PartitionPlace

Controls when the partition heuristic runs

PumpPasses

Feasibility pump heuristic control

RINS

RINS heuristic

SolFiles

Location to store intermediate solution files

SolutionLimit

MIP feasible solution limit

SolutionNumber

Sub-optimal MIP solution retrieval

StartNodeLimit

Node limit for MIP start sub-MIP

StartNumber

Set index of MIP start

SubMIPNodes

Nodes explored by sub-MIP heuristics

Symmetry

Symmetry detection

VarBranch

Branch variable selection strategy

ZeroObjNodes

Zero objective heuristic control

The PumpPasses parameter can be modified from a callback with the corresponding callback methods.

MIP Cuts#

These parameters affect the generation of MIP cutting planes. In all cases, a value of -1 corresponds to an automatic setting, which allows the solver to determine the appropriate level of aggressiveness in the cut generation. Unless otherwise noted, settings of 0, 1, and 2 correspond to no cut generation, conservative cut generation, or aggressive cut generation, respectively. The Cuts parameter provides global cut control, affecting the generation of all cuts. This parameter also has a setting of 3, which corresponds to very aggressive cut generation. The other parameters override the global Cuts parameter (so setting Cuts to 2 and CliqueCuts to 0 would generate all cut types aggressively, except clique cuts which would not be generated at all).

Parameter name

Purpose

BQPCuts

BQP cut generation

Cuts

Global cut generation control

CliqueCuts

Clique cut generation

CoverCuts

Cover cut generation

CutAggPasses

Constraint aggregation passes performed during cut generation

CutPasses

Root cutting plane pass limit

DualImpliedCuts

Dual implied bound cut generation

FlowCoverCuts

Flow cover cut generation

FlowPathCuts

Flow path cut generation

GomoryPasses

Root Gomory cut pass limit

GUBCoverCuts

GUB cover cut generation

ImpliedCuts

Implied bound cut generation

InfProofCuts

Infeasibility proof cut generation

LiftProjectCuts

Lift-and-project cut generation

MIPSepCuts

MIP separation cut generation

MIRCuts

MIR cut generation

MixingCuts

Mixing cut generation

ModKCuts

Mod-k cut generation

NetworkCuts

Network cut generation

ProjImpliedCuts

Projected implied bound cut generation

PSDCuts

PSD cut generation

RelaxLiftCuts

Relax-and-lift cut generation

RLTCuts

RLT cut generation

StrongCGCuts

Strong-CG cut generation

SubMIPCuts

Sub-MIP cut generation

ZeroHalfCuts

Zero-half cut generation

Numerics#

These parameters can help to handle numerically challenging problems.

Parameter name

Purpose

BarHomogeneous

Barrier homogeneous algorithm

IntegralityFocus

Set the integrality focus

NumericFocus

Set the numerical focus

Tuning#

These parameters control the operation of the parameter tuning tool.

Parameter name

Purpose

TuneBaseSettings

Comma-separated list of base parameter settings

TuneCleanup

Enables a tuning cleanup phase

TuneCriterion

Specify tuning criterion

TuneDynamicJobs

Enables distributed tuning using a dynamic set of workers

TuneJobs

Enables distributed tuning using a static set of workers

TuneMetric

Metric to aggregate results into a single measure

TuneOutput

Tuning output level

TuneParams

Comma-separated list of JSON files defining the parameters to be considered for tuning

TuneResults

Number of improved parameter sets returned

TuneTargetMIPGap

A target gap to be reached

TuneTargetTime

A target runtime in seconds to be reached

TuneTimeLimit

Time limit for tuning

TuneTrials

Perform multiple runs on each parameter set to limit the effect of random noise

TuneUseFilename

Use model file names as model names

Multiple Solutions#

These parameters allow you to modify the behavior of the MIP search in order to find more than one solution to a MIP model.

Parameter name

Purpose

PoolGap

Relative gap for solutions in pool

PoolGapAbs

Absolute gap for solutions in pool

PoolSearchMode

Choose the approach used to find additional solutions

PoolSolutions

Number of solutions to keep in pool

Multiple Objectives#

These parameters can be relevant when working with multiple objectives.

Parameter name

Purpose

MultiObjMethod

Warm-start method to solve for subsequent objectives

MultiObjPre

Initial presolve on multi-objective models

MultiObjSettings

Create multi-objective settings from a list of .prm files

ObjNumber

Set index of multi-objectives

Parallel and Distributed Computing#

Parameters that are used to control the number of threads and our distributed parallel algorithms (distributed MIP, distributed concurrent, and distributed tuning).

Parameter name

Purpose

ConcurrentJobs

Enables distributed concurrent solver

ConcurrentMIP

Enables concurrent MIP solver

ConcurrentSettings

Create concurrent environments from a list of .prm files

DistributedMIPJobs

Enables the distributed MIP solver

Threads

Number of parallel threads to use

ThreadLimit

Specifies a thread limit when starting an environment

TuneJobs

Enables distributed tuning

WorkerPassword

Password for distributed worker cluster

WorkerPool

Distributed worker cluster

Instant Cloud#

Parameters that are used to launch Gurobi Instant Cloud instances.

Parameter name

Purpose

CloudAccessID

Access ID for Gurobi Instant Cloud

CloudHost

Host for the Gurobi Cloud entry point

CloudSecretKey

Secret Key for Gurobi Instant Cloud

CloudPool

Cloud pool to use for Gurobi Instant Cloud instance

Compute Server#

Parameters that are used to configure and launch Gurobi Compute Server jobs. You will normally set these in your license file, but you have the option of setting them through these parameters instead (by first constructing an empty environment). Refer to the Gurobi Remote Services Reference Manual for more information.

Parameter name

Purpose

ComputeServer

Name of a node in the Remote Services cluster

CSClientLog

Controls logging

CSPriority

Job priority for Remote Services job

CSQueueTimeout

Queue timeout for new jobs

CSRouter

Router node for Remote Services cluster

CSGroup

Group placement request for cluster

CSIdleTimeout

Idle time before Compute Server kills a job

CSTLSInsecure

Use insecure mode in Transport Layer Security (TLS)

JobID

Job ID of current job

ServerPassword

Client password for Remote Services cluster (or token server)

ServerTimeout

Network timeout interval

Cluster Manager#

Parameters that are used to configure and launch Gurobi Cluster Manager. You will normally set these in your license file, but you have the option of setting them through these parameters instead (by first constructing an empty environment). Refer to the Gurobi Remote Services Reference Manual for more information.

Parameter name

Purpose

CSAPIAccessID

Access ID for Gurobi Cluster Manager

CSAPISecret

Secret key for Gurobi Cluster Manager

CSAppName

Application name of the batches or jobs

CSAuthToken

Token used internally for authentication

CSBatchMode

Controls Batch-Mode optimization

CSClientLog

Controls logging

CSManager

URL for the Cluster Manager

Username

User name to use when connecting to the Cluster Manager

Token Server#

Parameters that are used to launch jobs that check out tokens from a token server. You will normally set these in your license file, but you have the option of setting them through these parameters instead (by first constructing an empty environment).

Parameter name

Purpose

ServerPassword

Client password for token server (or Remote Services cluster)

TokenServer

Name of your token server

TSPort

Token server port number

Web License Service#

Parameters that are used to launch jobs that use the Web License Service (WLS). You will normally set these in your license file, but you have the option of setting them through these parameters instead (by first constructing an empty environment).

Parameter name

Purpose

CSClientLog

Controls logging

LicenseID

License ID

WLSAccessID

WLS access ID

WLSSecret

WLS secret

WLSToken

WLS token

WLSTokenDuration

WLS token duration

WLSTokenRefresh

Relative WLS token refresh interval

Other#

Other parameters.

Parameter name

Purpose

FeasRelaxBigM

Big-M value for feasibility relaxations

FuncPieceError

Error allowed for PWL translation of function constraint

FuncPieceLength

Piece length for PWL translation of function constraint

FuncPieceRatio

Controls whether to under- or over-estimate function values in PWL approximation

FuncPieces

Sets strategy for PWL function approximation

FuncMaxVal

Maximum value for x and y variables in function constraints

FuncNonlinear

Chooses the approximation approach used to handle function constraints

IgnoreNames

Indicates whether to ignore names provided by users

IISMethod

IIS method

ScenarioNumber

Set index of scenario in multi-scenario models

Seed

Modify the random number seed

SolutionTarget

Specify the solution target for LP

UpdateMode

Change the behavior of lazy updates

Callback settable parameters

A few parameters can be modified from within a callback with the corresponding callback methods. This makes it easier to implement custom termination criteria that, for example, set a time limit based on dynamic solving process data like the current incumbent objective value. How to do that for the different APIs is illustrated here.

Note

In case of a remote server, the change of a parameter from within a callback may not be taken into account immediately.

Parameter name

Purpose

BarIterLimit

Barrier iteration limit

NodeLimit

MIP node limit

PumpPasses

Feasibility pump heuristic control

TimeLimit

Time limit

WorkLimit

Work limit