Try our new documentation site (beta).
Next: Parameter Guidelines Up: Gurobi Optimizer Reference Manual Previous: Visual Basic Attribute Examples
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
- Parameter Guidelines
- Parameter Descriptions
- AggFill
- Aggregate
- BarConvTol
- BarCorrectors
- BarHomogeneous
- BarOrder
- BarQCPConvTol
- BarIterLimit
- BestBdStop
- BestObjStop
- BranchDir
- DegenMoves
- CliqueCuts
- ConcurrentJobs
- ConcurrentMIP
- ConcurrentSettings
- CoverCuts
- Crossover
- CrossoverBasis
- Cutoff
- CutAggPasses
- CutPasses
- Cuts
- Disconnected
- DisplayInterval
- DistributedMIPJobs
- DualReductions
- FeasibilityTol
- FeasRelaxBigM
- FlowCoverCuts
- FlowPathCuts
- GomoryPasses
- GUBCoverCuts
- Heuristics
- IISMethod
- ImpliedCuts
- ImproveStartGap
- ImproveStartNodes
- ImproveStartTime
- InfProofCuts
- InfUnbdInfo
- InputFile
- IntFeasTol
- IterationLimit
- LazyConstraints
- LogFile
- LogToConsole
- MarkowitzTol
- Method
- MinRelNodes
- MIPFocus
- MIPGap
- MIPGapAbs
- MIPSepCuts
- MIQCPMethod
- MIRCuts
- ModKCuts
- MultiObjMethod
- MultiObjPre
- NetworkCuts
- NodefileDir
- NodefileStart
- NodeLimit
- NodeMethod
- IgnoreNames
- NormAdjust
- NumericFocus
- ObjScale
- OptimalityTol
- ObjNumber
- OutputFlag
- PerturbValue
- PoolGap
- PoolSearchMode
- PoolSolutions
- PreCrush
- PreDepRow
- PreDual
- PreMIQCPForm
- PrePasses
- PreQLinearize
- Presolve
- PreSOS1BigM
- PreSOS2BigM
- PreSparsify
- ProjImpliedCuts
- PSDTol
- PumpPasses
- QCPDual
- Quad
- Record
- ResultFile
- RINS
- ScaleFlag
- Seed
- Sifting
- SiftMethod
- SimplexPricing
- SolutionLimit
- SolutionNumber
- StartNodeLimit
- StrongCGCuts
- SubMIPCuts
- SubMIPNodes
- Symmetry
- Threads
- TimeLimit
- TuneCriterion
- TuneJobs
- TuneOutput
- TuneResults
- TuneTimeLimit
- TuneTrials
- UpdateMode
- VarBranch
- WorkerPassword
- WorkerPool
- WorkerPort
- ZeroHalfCuts
- ZeroObjNodes
- Parameter Examples
Next: Parameter Guidelines Up: Gurobi Optimizer Reference Manual Previous: Visual Basic Attribute Examples