Filter Content By
Version

## 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
Barrier iteration limit
Best objective bound to stop
Best objective value to stop
Objective cutoff
Simplex iteration limit
Memory limit
MIP node limit
Soft memory limit
MIP feasible solution limit
Time limit
Work limit

Tolerances: These parameters control the allowable feasibility or optimality violations.

Parameter name Purpose
Barrier convergence tolerance
Barrier QCP convergence tolerance
Primal feasibility tolerance
Integer feasibility tolerance
Threshold pivoting tolerance
Relative MIP optimality gap
Absolute MIP optimality gap
Dual feasibility tolerance
Positive semi-definite tolerance

Simplex: These parameters control the operation of the simplex algorithms.

Parameter name Purpose
Generate additional info for infeasible/unbounded models
Warm start usage in simplex
Network simplex algorithm
Simplex pricing norm
Simplex perturbation magnitude
Quad precision computation in simplex
Sifting within dual simplex
LP method used to solve sifting sub-problems
Simplex variable pricing strategy

Barrier: These parameters control the operation of the barrier solver.

Parameter name Purpose
Central correction limit
Barrier homogeneous algorithm
Barrier ordering algorithm
Barrier crossover strategy
Crossover initial basis construction strategy
Compute dual variables for QCP models

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

Parameter name Purpose
Objective scaling
Model scaling

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

Parameter name Purpose
Branch direction preference
Enables distributed concurrent solver
Enables concurrent MIP solver
Create concurrent environments from a list of .prm files
Degenerate simplex moves
Disconnected component strategy
Enables the distributed MIP solver
Turn MIP heuristics up or down
Trigger solution improvement
Trigger solution improvement
Trigger solution improvement
Programs that add lazy constraints must set this parameter
Minimum relaxation heuristic control
Set the focus of the MIP solver
Method used to solve MIQCP models
Controls the NLP heuristic for non-convex quadratic models
Directory for MIP node files
Memory threshold for writing MIP tree nodes to disk
Method used to solve MIP node relaxations
Control how to deal with non-convex quadratic programs
Limits the amount of time (in seconds) spent in the NoRel heuristic
Limits the amount of work performed by the NoRel heuristic
Controls aggressiveness of Optimality-Based Bound Tightening
Controls when the partition heuristic runs
Feasibility pump heuristic control
RINS heuristic
Location to store intermediate solution files
Sub-optimal MIP solution retrieval
Node limit for MIP start sub-MIP
Set index of MIP start
Nodes explored by sub-MIP heuristics
Symmetry detection
Branch variable selection strategy
Zero objective heuristic control

Presolve: These parameters control the operation of the presolve algorithms.

Parameter name Purpose
Allowed fill during presolve aggregation
Presolve aggregation control
Disables dual reductions in presolve
Allows presolve to translate constraints on the original model to equivalent constraints on the presolved model
Presolve dependent row reduction
Presolve dualization
Format of presolved MIQCP model
Presolve pass limit
Presolve Q matrix linearization
Presolve level
Controls largest coefficient in SOS1 reformulation
Controls SOS1 reformulation
Controls largest coefficient in SOS2 reformulation
Controls SOS2 reformulation
Presolve sparsify reduction

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

Parameter name Purpose
Comma-separated list of base parameter settings
Enables a tuning cleanup phase
Specify tuning criterion
Enables distributed tuning
Metric to aggregate results into a single measure
Tuning output level
Number of improved parameter sets returned
A target gap to be reached
A target runtime in seconds to be reached
Time limit for tuning
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
Relative gap for solutions in pool
Absolute gap for solutions in pool
Choose the approach used to find additional solutions
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
BQP cut generation
Global cut generation control
Clique cut generation
Cover cut generation
Constraint aggregation passes performed during cut generation
Root cutting plane pass limit
Flow cover cut generation
Flow path cut generation
Root Gomory cut pass limit
GUB cover cut generation
Implied bound cut generation
Infeasibility proof cut generation
Lift-and-project cut generation
MIP separation cut generation
MIR cut generation
Mod-k cut generation
Network cut generation
Projected implied bound cut generation
PSD cut generation
Relax-and-lift cut generation
RLT cut generation
Strong-CG cut generation
Sub-MIP cut generation
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
Password for distributed worker cluster
Distributed worker cluster

Cloud: Parameters that are used to launch Gurobi Instant Cloud instances.

Parameter name Purpose
Access ID for Gurobi Instant Cloud
Host for the Gurobi Cloud entry point
Secret Key for Gurobi Instant Cloud
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
Name of a node in the Remote Services cluster.
Client password for Remote Services cluster (or token server).
Network timeout interval
Job priority for Remote Services job
Queue timeout for new jobs
Router node for Remote Services cluster
Group placement request for cluster
Use insecure mode in Transport Layer Security (TLS)
Idle time before Compute Server kills a job
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
Access ID for Gurobi Cluster Manager
Secret key for Gurobi Cluster Manager
Application name of the batches or jobs
Token used internally for authentication
Controls Batch-Mode optimization
Turns logging on or off
URL for the Cluster Manager
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
Client password for token server (or Remote Services cluster).
Name of your token server.
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
WLS access ID.
WLS secret.
WLS token.
WLS token duration.
Relative WLS token refresh interval.

Other: Other parameters.

Parameter name Purpose
Frequency at which log lines are printed
Big-M value for feasibility relaxations
Error allowed for PWL translation of function constraint
Piece length for PWL translation of function constraint
Controls whether to under- or over-estimate function values in PWL approximation
Sets strategy for PWL function approximation
Maximum value for x and y variables in function constraints
Indicates whether to ignore names provided by users
IIS method
File to be read before optimization commences
Set the integrality focus
Controls the level of detail stored in generated JSON solution
Log file name
Console logging
Algorithm used to solve continuous models
Warm-start method to solve for subsequent objectives
Initial presolve on multi-objective models
Create multi-objective settings from a list of .prm files
Set the numerical focus
Set index of multi-objectives
Solver output control
Enable API call recording
Result file written upon completion of optimization
Set index of scenario in multi-scenario models
Modify the random number seed
Specify the solution target for LP
Number of parallel threads to use
Change the behavior of lazy updates

Subsections