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.
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 |
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 |
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 |
Subsections
- Parameter Guidelines
- Parameter Descriptions
- AggFill
- Aggregate
- BarConvTol
- BarCorrectors
- BarHomogeneous
- BarIterLimit
- BarOrder
- BarQCPConvTol
- BestBdStop
- BestObjStop
- BQPCuts
- BranchDir
- CliqueCuts
- CloudAccessID
- CloudHost
- CloudSecretKey
- CloudPool
- ComputeServer
- ConcurrentJobs
- ConcurrentMethod
- ConcurrentMIP
- ConcurrentSettings
- CoverCuts
- Crossover
- CrossoverBasis
- CSAPIAccessID
- CSAPISecret
- CSAppName
- CSAuthToken
- CSBatchMode
- CSClientLog
- CSGroup
- CSIdleTimeout
- CSManager
- CSPriority
- CSQueueTimeout
- CSRouter
- CSTLSInsecure
- CutAggPasses
- Cutoff
- CutPasses
- Cuts
- DegenMoves
- Disconnected
- DisplayInterval
- DistributedMIPJobs
- DualReductions
- FeasibilityTol
- FeasRelaxBigM
- FlowCoverCuts
- FlowPathCuts
- FuncPieceError
- FuncPieceLength
- FuncPieceRatio
- FuncPieces
- FuncMaxVal
- FuncNonlinear
- GomoryPasses
- GUBCoverCuts
- Heuristics
- IgnoreNames
- IISMethod
- ImpliedCuts
- ImproveStartGap
- ImproveStartNodes
- ImproveStartTime
- InfProofCuts
- InfUnbdInfo
- InputFile
- IntegralityFocus
- IntFeasTol
- IterationLimit
- JobID
- JSONSolDetail
- LazyConstraints
- LicenseID
- LiftProjectCuts
- LPWarmStart
- LogFile
- LogToConsole
- MarkowitzTol
- MemLimit
- Method
- MinRelNodes
- MIPFocus
- MIPGap
- MIPGapAbs
- MIPSepCuts
- MIQCPMethod
- MIRCuts
- MixingCuts
- ModKCuts
- MultiObjMethod
- MultiObjPre
- MultiObjSettings
- NetworkAlg
- NetworkCuts
- NLPHeur
- NodefileDir
- NodefileStart
- NodeLimit
- NodeMethod
- NonConvex
- NoRelHeurTime
- NoRelHeurWork
- NormAdjust
- NumericFocus
- OBBT
- ObjNumber
- ObjScale
- OptimalityTol
- OutputFlag
- PartitionPlace
- PerturbValue
- PoolGap
- PoolGapAbs
- PoolSearchMode
- PoolSolutions
- PreCrush
- PreDepRow
- PreDual
- PreMIQCPForm
- PrePasses
- PreQLinearize
- Presolve
- PreSOS1BigM
- PreSOS1Encoding
- PreSOS2BigM
- PreSOS2Encoding
- PreSparsify
- ProjImpliedCuts
- PSDCuts
- PSDTol
- PumpPasses
- QCPDual
- Quad
- Record
- ResultFile
- RINS
- RelaxLiftCuts
- RLTCuts
- ScaleFlag
- ScenarioNumber
- Seed
- ServerPassword
- ServerTimeout
- Sifting
- SiftMethod
- SimplexPricing
- SoftMemLimit
- SolutionLimit
- SolutionTarget
- SolFiles
- SolutionNumber
- StartNodeLimit
- StartNumber
- StrongCGCuts
- SubMIPCuts
- SubMIPNodes
- Symmetry
- Threads
- TimeLimit
- TokenServer
- TSPort
- TuneBaseSettings
- TuneCleanup
- TuneCriterion
- TuneDynamicJobs
- TuneJobs
- TuneMetric
- TuneOutput
- TuneResults
- TuneTargetMIPGap
- TuneTargetTime
- TuneTimeLimit
- TuneTrials
- TuneUseFilename
- UpdateMode
- UserName
- VarBranch
- WLSAccessID
- WLSSecret
- WLSToken
- WLSTokenDuration
- WLSTokenRefresh
- WorkerPassword
- WorkerPool
- WorkLimit
- ZeroHalfCuts
- ZeroObjNodes
- Parameter Examples
Next: Parameter Guidelines Up: Gurobi Optimizer Reference Manual Previous: Visual Basic Attribute Examples