Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Parameter Groups

To provide some guidance on this page, we have classified the parameters into a number of categories. Some parameters are part of multiple categories. Those categories are:

- Termination parameters which set the stopping conditions for algorithms;

- Tolerance parameters which control solution quality requirements;

- Logging and I/O parameters which control logging behavior as well as input and output files;

- Algorithmic control parameters for Presolve, Simplex, Barrier, Scaling, MIP, MIP Cuts, and Numerics;

- Tuning parameters which control parameter tuning strategies for `grbtune` and the `tune` API calls;

- Solution Pool parameters which control how the solver searches for and stores additional solutions other than the best available one;

- Multi-Objective parameters which control some aspects when working with multiple objectives;

- Parameters for configuring aspects of remote optimization and licensing: Parallel and Distributed Computing, Instant Cloud, Compute Server, Cluster Manager, Token Server, Web License Service;

- Miscellaneous parameters that do not fit directly into one of the categories above; and

- Callback Settable parameters.

The tables below link to the full detail of each parameter’s effect in the Parameter Reference section.

## 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
NLBarIterLimit | NL barrier iteration limit
NodeLimit | MIP node limit
PDHGIterLimit | PDHG iteration limit
SoftMemLimit | Soft memory limit
SolutionLimit | MIP feasible solution limit
TimeLimit | Time limit
WorkLimit | Work limit

A few termination parameters can be modified from a callback with the corresponding callback methods. Those are: TimeLimit, WorkLimit, NodeLimit, and BarIterLimit. This makes it easier to implement custom termination criteria that, for example, set a time limit based on dynamic solving process data like the current incumbent objective value.

## 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
NLBarCFeasTol | NL barrier complementarity tolerance
NLBarDFeasTol | NL barrier dual feasibility tolerance
NLBarPFeasTol | NL barrier primal feasibility tolerance
OptimalityTol | Dual feasibility tolerance
PDHGAbsTol | PDHG absolute feasibility tolereance
PDHGConvTol | PDHG convergence tolerance
PDHGRelTol | PDHG relative feasibility tolereance
PSDTol | Positive semi-definite tolerance

## Logging

These parameters control the logging information.

Parameter name | Purpose
--- | ---
CSClientLog | Controls logging for Compute Server and the Web License Service (WLS)
DisplayInterval | Frequency at which log lines are printed
LogFile | Log file name
LogToConsole | Console logging
OutputFlag | Solver output control

## I/O

These parameters can be used to read or write information.

Parameter name | Purpose
--- | ---
InputFile | File to be read before optimization commences
JSONSolDetail | Controls the level of detail stored in generated JSON solution
Record | Enable API call recording
ResultFile | Result file written upon completion of optimization
SolFiles | Location to store intermediate solution files

## 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

## Simplex

These parameters control the operation of the simplex algorithms.

Parameter name | Purpose
--- | ---
InfUnbdInfo | Generate additional info for infeasible/unbounded models
IterationLimit | Simplex iteration limit
LPWarmStart | Warm start usage in simplex
Method | Define method, e.g., Simplex, to solve continuous models
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
--- | ---
BarConvTol | Barrier convergence tolerance
BarCorrectors | Central correction limit
BarHomogeneous | Barrier homogeneous algorithm
BarIterLimit | Barrier iteration limit
BarOrder | Barrier ordering algorithm
BarQCPConvTol | Barrier QCP convergence tolerance
Crossover | Barrier crossover strategy
CrossoverBasis | Crossover initial basis construction strategy
Method | Define method, e.g., Barrier, to solve continuous models
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
Disconnected | Disconnected component strategy
DistributedMIPJobs | Enables the distributed MIP solver
FixVarsInIndicators | Controls conversion of indicator constraints in the fixed model
Heuristics | Turn MIP heuristics up or down
ImproveStartGap | Trigger solution improvement
ImproveStartNodes | Trigger solution improvement
ImproveStartTime | Trigger solution improvement
ImproveStartWork | Trigger solution improvement
IntegralityFocus | Set the integrality focus
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
NodeLimit | MIP node limit
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
SolutionLimit | MIP feasible solution limit
SolutionNumber | Sub-optimal MIP solution retrieval
StartNodeLimit | Node limit for MIP start sub-MIP
StartNumber | Set index of MIP start
StartTimeLimit | Time limit for MIP start sub-MIP (in seconds)
StartWorkLimit | Work limit for MIP start sub-MIP (in work units)
SubMIPNodes | Nodes explored by sub-MIP heuristics
Symmetry | Symmetry detection
VarBranch | Branch variable selection strategy
ZeroObjNodes | Zero objective heuristic control

The PumpPasses parameter can be modified from a callback with the corresponding callback methods.

## 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
DualImpliedCuts | Dual implied bound cut generation
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
MasterKnapsackCuts | Master Knapsack Polytope 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

## Numerics

These parameters can help to handle numerically challenging problems.

Parameter name | Purpose
--- | ---
BarHomogeneous | Barrier homogeneous algorithm
IntegralityFocus | Set the integrality focus
NumericFocus | Set the numerical focus

## 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
TuneIgnoreSettings | Comma-separated list of parameter settings to be ignored
TuneJobs | Enables distributed tuning using a static set of workers
TuneMetric | Metric to aggregate results into a single measure
TuneOutput | Tuning output level
TuneParams | Comma-separated list of JSON files defining the parameters to be considered for tuning
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

## Multiple Objectives

These parameters can be relevant when working with multiple objectives.

Parameter name | Purpose
--- | ---
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
ObjNumber | Set index of multi-objectives

## Parallel and Distributed Computing

Parameters that are used to control the number of threads and our distributed parallel algorithms (distributed MIP, distributed concurrent, and distributed tuning).

Parameter name | Purpose
--- | ---
ConcurrentJobs | Enables distributed concurrent solver
ConcurrentMIP | Enables concurrent MIP solver
ConcurrentSettings | Create concurrent environments from a list of .prm files
DistributedMIPJobs | Enables the distributed MIP solver
Threads | Number of parallel threads to use
ThreadLimit | Specifies a thread limit when starting an environment
TuneJobs | Enables distributed tuning
WorkerPassword | Password for distributed worker cluster
WorkerPool | Distributed worker cluster

## Instant 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
CSClientLog | Controls logging
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
CSIdleTimeout | Idle time before Compute Server kills a job
CSTLSInsecure | Use insecure mode in Transport Layer Security (TLS)
JobID | Job ID of current job
ServerPassword | Client password for Remote Services cluster (or token server)
ServerTimeout | Network timeout interval

## 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 | Controls logging
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
--- | ---
CSClientLog | Controls logging
LicenseID | License ID
WLSAccessID | WLS access ID
WLSSecret | WLS secret
WLSToken | WLS token
WLSTokenDuration | WLS token duration
WLSTokenRefresh | Relative WLS token refresh interval

## Miscellaneous

Parameter name | Purpose
--- | ---
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
InheritParams | Indicates whether parameters from a main environment should be inherited
IISMethod | IIS method
ScenarioNumber | Set index of scenario in multi-scenario models
Seed | Modify the random number seed
SolutionTarget | Specify the solution target for LP
UpdateMode | Change the behavior of lazy updates

## Callback Settable Parameters

A few parameters can be modified from within a callback with the corresponding callback methods. This makes it easier to implement custom termination criteria that, for example, set a time limit based on dynamic solving process data like the current incumbent objective value. How to do that for the different APIs is illustrated here.

Note

In case of a remote server, the change of a parameter from within a callback may not be taken into account immediately.

Parameter name | Purpose
--- | ---
BarIterLimit | Barrier iteration limit
NodeLimit | MIP node limit
PumpPasses | Feasibility pump heuristic control
TimeLimit | Time limit
WorkLimit | Work limit

Help and Feedback

Press `/` or click to search this documentation | Gurobi website | Gurobi community forum
Go to other Gurobi documentation | Gurobi download | Contact support