Try our new documentation site (beta).


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.

Available Gurobi Parameters

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
NodeLimit MIP node limit
SolutionLimit MIP feasible solution limit
TimeLimit Time 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
NormAdjust Simplex pricing norm
ObjScale Objective scaling
PerturbValue Simplex perturbation magnitude
Quad Quad precision computation in simplex
ScaleFlag Model scaling
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

MIP: These parameters control the operation of the MIP algorithms.

Parameter name Purpose
BranchDir Branch direction preference
ConcurrentJobs Enables distributed concurrent solver
ConcurrentMIP Enables concurrent MIP solver
ConcurrentSettings Comma-separated list of .prm files - used to create concurrent environments
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
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
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
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 MIP 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 SOS1 conversion to binary form
PreSOS2BigM Controls SOS2 conversion to binary form
PreSparsify Presolve sparsify reduction

Tuning: These parameters control the operation of the parameter tuning tool.

Parameter name Purpose
TuneCriterion Specify tuning criterion
TuneJobs Enables distributed tuning
TuneOutput Tuning output level
TuneResults Number of improved parameter sets returned
TuneTimeLimit Time limit for tuning
TuneTrials Perform multiple runs on each parameter set to limit the effect of random noise

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 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
MIPSepCuts MIP separation cut generation
MIRCuts MIR cut generation
ModKCuts Mod-k cut generation
NetworkCuts Network cut generation
ProjImpliedCuts Projected implied bound 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

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.

Other: Other parameters.

Parameter name Purpose
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
IgnoreNames Indicates whether to ignore names provided by users
IISMethod IIS method
InputFile File to be read before optimization commences
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
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
Threads Number of parallel threads to use
UpdateMode Change the behavior of lazy updates



Subsections

Try Gurobi for Free

Choose the evaluation license that fits you best, and start working with our Expert Team for technical guidance and support.

Evaluation License
Get a free, full-featured license of the Gurobi Optimizer to experience the performance, support, benchmarking and tuning services we provide as part of our product offering.
Academic License
Gurobi supports the teaching and use of optimization within academic institutions. We offer free, full-featured copies of Gurobi for use in class, and for research.
Cloud Trial

Request free trial hours, so you can see how quickly and easily a model can be solved on the cloud.

Search

Gurobi Optimization