First, set the following:


Languages:
C
C++
Java
.NET
Python
MATLAB
R

Then, choose below:


Quick Start Guides

Example Tour

Reference Manual

AMPL-Gurobi Guide

Cloud Guide

Parameters


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.

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
Cutoff Objective cutoff
IterationLimit Simplex iteration limit
NodeLimit MIP node limit
SolutionLimit MIP feasible solution limit
TimeLimit Time limit
BestObjStop Best objective value to stop
BestBdStop Best objective bound to stop

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
DegenMoves Degenerate simplex moves
ConcurrentJobs Enables distributed concurrent solver
ConcurrentMIP Enables concurrent MIP solver
ConcurrentSettings Comma-separated list of .prm files - used to create concurrent environments
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
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
PumpPasses Feasibility pump heuristic control
RINS RINS heuristic
SolutionNumber Sub-optimal MIP solution retrieval
SubMIPNodes Nodes explored by sub-MIP heuristics
Symmetry MIP symmetry detection
VarBranch Branch variable selection strategy
ZeroObjNodes Zero objective heuristic control

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
PoolSearchMode Choose the approach used to find additional solutions
PoolGap Gap for solutions in pool
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
Cuts Global cut generation control
CliqueCuts Clique cut generation
CoverCuts Cover cut generation
FlowCoverCuts Flow cover cut generation
FlowPathCuts Flow path cut generation
GUBCoverCuts GUB cover cut generation
ImpliedCuts Implied bound cut generation
MIPSepCuts MIP separation cut generation
MIRCuts MIR cut generation
StrongCGCuts Strong-CG cut generation
ModKCuts Mod-k cut generation
NetworkCuts Network cut generation
ProjImpliedCuts Projected implied bound cut generation
SubMIPCuts Sub-MIP cut generation
ZeroHalfCuts Zero-half cut generation
InfProofCuts Infeasibility proof cut generation
CutAggPasses Constraint aggregation passes performed during cut generation
CutPasses Root cutting plane pass limit
GomoryPasses Root Gomory cut pass limit

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 workers
WorkerPool List of available distributed workers
WorkerPort Non-default port number for distributed workers

Other: Other parameters.

Parameter name Purpose
AggFill Allowed fill during presolve aggregation
Aggregate Presolve aggregation control
DisplayInterval Frequency at which log lines are printed
DualReductions Disables dual reductions in presolve
FeasRelaxBigM Big-M value for feasibility relaxations
IISMethod IIS method
InputFile File to be read before optimization commences
LazyConstraints Programs that add lazy constraints must set this parameter
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
IgnoreNames Indicates whether to ignore names provided by users
ObjNumber Set index of multi-objectives
OutputFlag Solver output control
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 converstion to binary form
PreSOS2BigM Controls SOS2 converstion to binary form
PreSparsify Presolve sparsify reduction
Record Enable API call recording
ResultFile Result file written upon completion of optimization
Seed Modify the random number seed
StartNodeLimit Node limit for MIP start sub-MIP
Threads Number of parallel threads to use
UpdateMode Change the behavior of lazy updates



Subsections