Parameters#

Parameters control the operation of the Gurobi solvers. They must be modified before the optimization begins. While you should feel free to experiment with different parameter settings, we recommend that you leave parameters at their default settings unless you find a compelling reason not to. For a discussion of when you might want to change parameter values, refer to our Parameter Guidelines.

The various Gurobi APIs all provide routines for querying and modifying parameter values. Refer to our Parameter Examples for additional information.

Some of the parameters below are used to configure a client program for use with a Compute Server, a Gurobi Instant Cloud instance, or a token server. Refer to our discussion of empty environments for details.

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

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

Simplex

These parameters control the operation of the simplex algorithms.

Parameter name

Purpose

InfUnbdInfo

Generate additional info for infeasible/unbounded models

LPWarmStart

Warm start usage in simplex

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

BarCorrectors

Central correction limit

BarHomogeneous

Barrier homogeneous algorithm

BarOrder

Barrier ordering algorithm

Crossover

Barrier crossover strategy

CrossoverBasis

Crossover initial basis construction strategy

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

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

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

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

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

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

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

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

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

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

Distributed Algorithms

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

Parameter name

Purpose

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.

ServerPassword

Client password for Remote Services cluster (or token server).

ServerTimeout

Network timeout interval

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

CSTLSInsecure

Use insecure mode in Transport Layer Security (TLS)

CSIdleTimeout

Idle time before Compute Server kills a job

JobID

Job ID of current job

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

Turns logging on or off

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

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

Disconnected

Disconnected component strategy

DisplayInterval

Frequency at which log lines are printed

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

InputFile

File to be read before optimization commences

IntegralityFocus

Set the integrality focus

JSONSolDetail

Controls the level of detail stored in generated JSON solution

LogFile

Log file name

LogToConsole

Console logging

Method

Algorithm used to solve continuous models

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

NumericFocus

Set the numerical focus

ObjNumber

Set index of multi-objectives

OutputFlag

Solver output control

Record

Enable API call recording

ResultFile

Result file written upon completion of optimization

ScenarioNumber

Set index of scenario in multi-scenario models

Seed

Modify the random number seed

SolutionTarget

Specify the solution target for LP

Threads

Number of parallel threads to use

UpdateMode

Change the behavior of lazy updates