GUROBI 3.0

 Top Next

Description

GUROBI is a tool for solving linear optimization problems. Such problems are conventionally written like this:

Minimize (or Maximize) c1x1 + c2x2 + ... + cnxn

Subject to:

a11x1 + a12x2 + … + a1nxn ~ b1

a21x1 + a22x2 + … + a2nxn ~ b2

…

am1x1 + am2x2 + … + amnxn ~ bm

l1 <= x1 <= u1, …, ln <= xn <= un

where,

x is the vector of variables,

a, b, and c are real numbers,

l and u are vectors of lower and upper bounds, and

~ can be either <=, >=, or =.

Some of the lower bounds may be –inf and some of the upper bounds may be inf. The scalar value n will denote the number of variables and m the number of equations. GUROBI 3.0 can handle ranged constraints, i.e., constraints with both a finite lower and upper bound, but it cannot handle (GMP) updates on the left-hand-side or right-hand-side of a ranged constraint.

In the most basic linear optimization problem, the variables of the objective function are continuous in the mathematical sense, with no gaps between real values. GUROBI can also be used for solving linear programming problems in which some or all of the variables must assume integer values in the solution. Such problems are known as mixed integer programs or MIPs.

GUROBI is equipped with parameters that influence the performance of GUROBI. AIMMS is equipped with options that set the parameters in GUROBI. Options in AIMMS can be set in the options dialog box.

In GUROBI it is possible to use a solution as a MIP start by setting the option MIP Start.

Supported computers

GUROBI requires that your computer's CPU supports SSE2. SSE2 was first introduced by Intel in 2001, and AMD added support for SSE2 in 2003.

Parallel GUROBI

GUROBI has a parallel optimizer for solving MIP problems. This parallel optimizer is implemented to run on hardware platforms with parallel processors. To invoke the parallel optimizer you have to set the option Thread Limit.

Learn more about

• GUROBI (Internet link)
• The mapping from GUROBI 3.0 parameter names to AIMMS option names
• The mapping from AIMMS option names to GUROBI 3.0 parameter names
• The options dialog box
• SOS types
• Troubleshooting
• MIP start
• Thread limit


GUROBI 3.0 to AIMMS Mapping

 Top Previous Next

Description

The table shows in the left column the parameters from GUROBI 3.0 that can be set in AIMMS; the right column displays for each GUROBI 3.0 parameter the associated AIMMS option.

Name in GUROBI Option name in AIMMS
AGGFILL Presolve - Presolve aggregation fill
AGGREGATE Presolve - Presolve aggregation
BARCONVTOL Barrier - Barrier convergence tolerance
BARCORRECTORS Barrier - Barrier correction steps
BARITERLIMIT Barrier - Barrier iteration limit
BARORDER Barrier - Barrier ordering
CLIQUECUTS MIP Cuts - Clique cuts
COVERCUTS MIP Cuts - Covers cuts
CROSSOVER Barrier - Barrier crossover
CROSSOVERBASIS Barrier - Barrier crossover basis
CUTAGGPASSES MIP Cuts - Cut aggregation passes limit
CUTS MIP Cuts - Global cut control
DISPLAYINTERVAL Logging - Output file display interval
FEASIBILITYTOL General - Feasibility
FLOWCOVERCUTS MIP Cuts - Flow cover cuts
FLOWPATHCUTS MIP Cuts - Flow path cuts
GOMORYPASSES MIP Cuts - Gomory cut passes limit
GUBCOVERCUTS MIP Cuts - GUB cover cuts
HEURISTICS MIP - Heuristics
IISMETHOD General - IIS method
IMPLIEDCUTS MIP Cuts - Implied bound cuts
INTFEASTOL MIP - Integrality
LPMETHOD General - LP method
MARKOWITZTOL Simplex - Markowitz
MIPFOCUS MIP - MIP focus
MIPSEPCUTS MIP Cuts - MIP separation cuts
MIRCUTS MIP Cuts - MIR cuts
NETWORKCUTS MIP Cuts - Network cuts
NODEFILESTART MIP - Node file start
NODELIMIT MIP - Node limit
NORMADJUST Simplex - Norm adjust
OBJSCALE Simplex - Objective scale
OPTIMALITYTOL General - Optimality
OUTPUTFLAG Logging - Output file
PERTURBVALUE Simplex - Perturbation
PREDEPROW Presolve - Presolve row reduction
PREDUAL Presolve - Presolve dual
PREPASSES Presolve - Presolve passes
PRESOLVE Presolve - Presolve
PUMPPASSES MIP - Feasibility pump passes
QUAD Simplex - Quad precision
RINS MIP - RINS heuristic frequency
ROOTMETHOD MIP - MIP root method
SCALEFLAG General - Scale
SIMPLEXPRICING Simplex - Pricing
SUBMIPCUTS MIP Cuts - Sub MIP cuts
SUBMIPNODES MIP - RINS sub MIP node limit
SYMMETRY MIP - MIP symmetry
THREADS Parallel - Thread limit
VARBRANCH MIP - Select variables
ZEROHALFCUTS MIP Cuts - Zero half cuts


AIMMS to GUROBI 3.0 Mapping

Description

The table shows in the left column the AIMMS GUROBI 3.0 options while the right column displays the associated GUROBI parameter.

Option name in AIMMS | Name in GUROBI
Barrier - Barrier convergence tolerance | BARCONVTOL
Barrier - Barrier correction steps | BARCORRECTORS
Barrier - Barrier crossover | CROSSOVER
Barrier - Barrier crossover basis | CROSSOVERBASIS
Barrier - Barrier iteration limit | BARITERLIMIT
Barrier - Barrier ordering | BARORDER
Barrier - Barrier progress solution |
General - Calculate Kappa |
General - Feasibility | FEASIBILITYTOL
General - IIS method | IISMETHOD
General - LP method | LPMETHOD
General - MPS |
General - Optimality | OPTIMALITYTOL
General - Postsolve continuous variables |
General - Read parameter file |
General - Restart |
General - Restart file number |
General - Scale | SCALEFLAG
General - Solution file |
Logging - Output file | OUTPUTFLAG
Logging - Output file display interval | DISPLAYINTERVAL
MIP - Feasibility pump passes | PUMPPASSES
MIP - Heuristics | HEURISTICS
MIP - Integrality | INTFEASTOL
MIP - MIP calculate basis and sensitivities |
MIP - MIP focus | MIPFOCUS
MIP - MIP root method | ROOTMETHOD
MIP - MIP start |
MIP - MIP symmetry | SYMMETRY
MIP - Node file start | NODEFILESTART
MIP - Node limit | NODELIMIT
MIP - Postsolve integer variables |
MIP - RINS heuristic frequency | RINS
MIP - RINS sub MIP node limit | SUBMIPNODES
MIP - Select variables | VARBRANCH
MIP Cuts - Clique cuts | CLIQUECUTS
MIP Cuts - Covers cuts | COVERCUTS
MIP Cuts - Cut aggregation passes limit | CUTAGGPASSES
MIP Cuts - Flow cover cuts | FLOWCOVERCUTS
MIP Cuts - Flow path cuts | FLOWPATHCUTS
MIP Cuts - Global cut control | CUTS
MIP Cuts - Gomory cut passes limit | GOMORYPASSES
MIP Cuts - GUB cover cuts | GUBCOVERCUTS
MIP Cuts - Implied bound cuts | IMPLIEDCUTS
MIP Cuts - MIP separation cuts | MIPSEPCUTS
MIP Cuts - MIR cuts | MIRCUTS
MIP Cuts - Network cuts | NETWORKCUTS
MIP Cuts - Sub MIP cuts | SUBMIPCUTS
MIP Cuts - Zero half cuts | ZEROHALFCUTS
Parallel - Thread limit | THREADS
Presolve - Presolve | PRESOLVE
Presolve - Presolve aggregation | AGGREGATE
Presolve - Presolve aggregation fill | AGGFILL
Presolve - Presolve dual | PREDUAL
Presolve - Presolve passes | PREPASSES
Presolve - Presolve row reduction | PREDEPROW
Simplex - Markowitz | MARKOWITZTOL
Simplex - Norm adjust | NORMADJUST
Simplex - Objective scale | OBJSCALE
Simplex - Perturbation | PERTURBVALUE
Simplex - Pricing | SIMPLEXPRICING
Simplex - Quad precision | QUAD


SOS Types

Special Ordered Sets (SOSs) are an additional way to specify integrality conditions in a model. They can be one of two types:

q SOS Type 1. A set of variables (all integer, all continuous, or integer and continuous) for which at most one variable may be non-zero.
q SOS Type 2. A set of integer of continuous variables for which at most two variables may be non-zero. If two variables are non-zero, they must be adjacent in the set.

Special branching strategies are used within GUROBI to take advantage of SOSs.

Note

• In case of SOS 1, if there is no ordered relationship among the variables (such that weights cannot be specified or would not be meaningful), other formulations should be used instead of a special ordered set.


Troubleshooting

Out of memory

If your model is very large it can happen that there is not enough memory available to solve the model with GUROBI. In that case you can try to use the so called proxy stub solver interface of GUROBI. Normally AIMMS and GUROBI run in the same address space. With the proxy stub interface GUROBI can run in a separate address space, increasing the memory available to GUROBI.

To use GUROBI 3.0 in a separate address space you need to do the following:

1. Open AIMMS and open the "Solver Configuration" dialog from the "Settings" menu.
2. Hit the add button and open the "Solver DLL" wizard.
3. Now select "libGurobi3_ps.dll". The solver name shown will be "GUROBI 3.0 (PS)".
4. Make this solver the default.
5. Set your project options for this new solver.

When you run your model you will see that it uses this new solver.

The proxy stub interface can also be used if GUROBI fails to do a postsolve due to insufficient memory available (while there was enough memory available to do the normal solve). In that case you might also consider to turn off the postsolve. To turn off the postsolve you have to set the options

1. Postsolve Continuous Variables equal to 'No rounding' or 'Round to nearest bound',
2. Postsolve Integer Variables equal to 'No rounding' or 'Round to integer' (MIP only), and
3. MIP Calculate Basis and Sensitivities equal to 'No' (MIP only).

Presolver declares model infeasible

In case the GUROBI Presolver declares a model as infeasible, the solution reported by GUROBI can usually not be used to analyse where your problem formulation proved infeasible. To get a solution that can be interpreted, you have to rerun your model with the option Presolve turned off.

Learn more about

• Postsolve continuous variables
• Postsolve integer variables
• MIP calculate basis and sensitivities
• Presolve


Calculate Kappa

General - Calculate Kappa

Type: Selection
Range: The settings listed below
Default: No

This option can be used to display the basis condition number ('kappa'). The information will be printed in the message window. Possible values are:

q No
q Yes

The basis condition number can be used to measure the sensitivity of a linear problem to the problem data.

The basis condition number will only be calculated for LP and RMIP models, and during the postsolve of a MIP model, i.e., if option Postsolve Integer Variables is set to 'Round integers and resolve LP'.

Learn more about

• Postsolve integer variables


Feasibility

General - Feasibility

Type: Floating point number
Range: [1e-9,0.01]
Default: 1e-6

The (primal) feasibility tolerance specifies the degree to which a problem's basic variables may violate their bounds. This tolerance influences the selection of an optimal basis and can be reset to a lower value when a problem is having difficulty maintaining feasibility during optimization. You may also wish to lower this tolerance after finding an optimal solution if there is any doubt that the solution is truly optimal. If the feasibility tolerance is set too low, GUROBI may falsely conclude that a problem is infeasible.

This option also controls the maximum constraint violation.

Note

• With a MIP problem, GUROBI can also falsely conclude that a problem is infeasible if the option Integrality is set too low.

Learn more about

• Integrality


IIS Method

General - IIS Method

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines which method to use when calculating an Irreducible Inconsistent Subsystem (IIS). An IIS is a subset of the constraints and variable bounds of the original model. If all constraints in the model except those in the IIS are removed, the model is still infeasible. However, further removing any one member of the IIS produces a feasible result.

Possible values are:

q Automatic
q Fast
q Small

Method 'Fast' is often faster than method 'Small' while method 'Small' can produce a smaller IIS.


LP Method

General - LP Method

Type: Selection
Range: The settings listed below
Default: Dual simplex

This option determines which algorithm should be used when solving continuous models, and when solving node relaxations within the MIP solver. Possible values are:

q Primal simplex
q Dual simplex
q Barrier

Note

• The option MIP Root Method determines which algorithm should be used when solving the MIP root relaxation.
• This option also determines the LP method used for solving the LP model (if any) during the postsolve.

Learn more about

• MIP root method
• Postsolve continuous variables
• Postsolve integer variables


MPS

General - MPS

Type: Selection
Range: The settings listed below
Default: Never

This option can be used to generate an model file of the loaded model. The model file can be in MPS or LP format. The generated files are named gurddddd.mps, where ddddd denotes a 5 digits sequence number. Possible values are:

q Never
q At the first solve (MPS format)
q At every solve (MPS format)
q At the first solve (LP format)
q At every solve (LP format)


Optimality

General - Optimality

Type: Floating point number
Range: [1e-9,0.01]
Default: 1e-6

This option controls the dual feasibility tolerance. Reduced costs must all be smaller than the value of this option in the improving direction in order for a model to be declared optimal.


Postsolve Continuous Variables

General - Postsolve Continuous Variables

Type: Selection
Range: The settings listed below
Default: No rounding

GUROBI allows that variables may violate their bounds as specified by the feasibility tolerance. This option offers the possibility to perform some postsolving on the found solution concerning rounding of values to the nearest bound. Possible values are:

q No rounding. The variable values found by GUROBI are passed directly to AIMMS.
q Round to nearest bound. The variable values found by GUROBI that violate the bounds are rounded to the nearest bound before passing them to AIMMS.
q Round to nearest bound, resolve LP. If the solution returned by GUROBI contains some variables that violate their bounds, then those variables are fixed on their nearest bound, and the LP model derived in this way is solved by GUROBI. As a result we obtain a solution in which all variables satisfy their bounds.

Also is checked whether the optimal value of this new LP is the same as the optimal value of the original problem as solved by GUROBI. If this is not the case, AIMMS generates a warning.

Please note that in a few special cases a feasible model can become infeasible as a result of fixing the variables (which indicates that the solution as given by GUROBI is not reliable). In such a case AIMMS generates a warning, and the value of this option is relaxed to 'No rounding'.

Note

• The solving time might increase drastically if the value of this option is set to 'Round to nearest bound, resolve LP'.
• The LP method used for solving the LP model (if any) during the postsolve is determined by the option LP Method.

Learn more about

• LP method
• Postsolve integer variables


Read Parameter File

General - Read Parameter File

Type: Selection
Range: The settings listed below
Default: No

This option can be used to read in a file with GUROBI option (parameter) settings. The file should be named 'gurobi.prm' and should be placed in the AIMMS project directory. The option settings in this file overrule the option settings in the AIMMS project. Possible values are:

q No
q Yes

A GUROBI parameter (PRM) file is used to specify parameter settings. The file consists of parameter-value pairs, each on its own line. Any line that begins with the hash sign (#) is a comment line and is ignored. The following is a simple example:

# Parameter settings

Cuts 2

Heuristics 0.5


Restart

General - Restart

Type: Selection
Range: The settings listed below
Default: No

In some cases one might want to interrupt the current solve and continue it later on. In order to restart the solver, essential information about the current solution should be saved in a file. Furthermore, the solver should be told to read this data and continue the solve. This option can be used to generate the necessary restart information and to restart the solver.

When this option is set to "Yes", the solver will restart a problem if the solution file gurddddd.sol exists. The number ddddd represents the current value of the option Restart File Number. After the solve, the file gurddddd.sol will be generated. Possible values are:

q No (do not restart)
q Yes (restart)

Learn more about

• Restart file number


Restart File Number

General - Restart File Number

Type: Integer
Range: {0 .. 99999}
Default: 0

This option represents the number part of the restart file name.

Learn more about

• Restart


Scale

General - Scale

Type: Selection
Range: The settings listed below
Default: Yes

This option enables or disables model scaling. Possible values are:

q No
q Yes


Solution File

General - Solution File

Type: Selection
Range: The settings listed below
Default: Never

This option can be used to activate the generation of GUROBI solution files containing the solution found. Note that this solution does not have to match with the one reported by AIMMS due to the fact that AIMMS takes care of scaling for instance. The data is written to a file called gurddddd.sol, where ddddd denotes a 5-digit sequence number. Possible values are:

q Never
q At the first solve
q At every solve


Barrier Convergence Tolerance

Barrier - Barrier Convergence Tolerance

Type: Floating point number
Range: [1e-10,1]
Default: 1e-8

This option controls barrier termination. The barrier solver terminates when the relative difference between the primal and dual objective values is less than the specified tolerance.


Barrier Correction Steps

Barrier - Barrier Correction Steps

Type: Integer
Range: {-1 .. 2000000000}
Default: -1

This option limits the number of central corrections performed in each barrier iteration. The default value chooses automatically, depending on problem characteristics.


Barrier Crossover

Barrier - Barrier Crossover

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines the crossover strategy used to transform the barrier solution into a basic solution. Use value 'Off' to disable crossover; the solver will return an interior solution. Other options control whether the crossover algorithm tries to push primal or dual variables to bounds first, and then which simplex algorithm is used once variable pushing is complete. Possible values are:

q Automatic
q Off
q Dual first + primal simplex
q Dual first + dual simplex
q Primal first + primal simplex
q Primal first + dual simplex

Options 'Dual first + primal simplex' and 'Dual first + dual simplex' push dual variables first, then primal variables. Option 'Dual first + primal simplex' finishes with primal, while option 'Dual first + dual simplex' finishes with dual.

Options 'Primal first + primal simplex' and 'Primal first + dual simplex' push primal variables first, then dual variables. Option 'Primal first + primal simplex' finishes with primal, while option 'Primal first + dual simplex' finishes with dual. The default value of 'Automatic' chooses automatically.


Barrier Crossover Basis

Barrier - Barrier Crossover Basis

Type: Selection
Range: The settings listed below
Default: Fast

This option determines the initial basis construction strategy for crossover. The default value 'Fast' chooses an initial basis quickly. A value of 'Robust' can take much longer, but often produces a much more numerically stable start basis. Possible values are:

q Fast
q Robust


Barrier Iteration Limit

Barrier - Barrier Iteration Limit

Type: Integer
Range: {0 .. 2000000000}
Default: 2000000000

This option limits the number of barrier iterations performed.


Barrier Ordering

Barrier - Barrier Ordering

Type: Selection
Range: The settings listed below
Default: Automatic

This option chooses the barrier sparse matrix fill-reducing algorithm. At the default value, GUROBI chooses automatically. Possible values are:

q Automatic
q Approximate minimum degree
q Nested dissection


Barrier Progress Solution

Barrier - Barrier Progress Solution

Type: Integer
Range: {0 .. 2000000000}
Default: 5

This option controls the progress reports during the solution process if the barrier solver is used by GUROBI. If the Progress Window is open, it will display information about the number of (barrier) iterations, the current status, the best value found, etc. Possible values are:

0: Do not report progress
n: Report progress after each n barrier iterations

Note

• This option overrules the setting of the general solvers option Progress Solution in case the barrier solver is used, and GUROBI is not in the Barrier crossover phase.

Learn more about

• Progress solution


Feasibility Pump Passes

MIP - Feasibility Pump Passes

Type: Integer
Range: {0 .. 2000000000}
Default: 0

This option sets the number of passes of the feasibility pump heuristic. Note that this heuristic is only applied at the end of the MIP root, and only when no other root heuristic found a feasible solution.


Heuristics

MIP - Heuristics

Type: Floating point number
Range: [0,1]
Default: 0.05

This option controls the amount of time spent in MIP heuristics. Larger values produce more and better feasible solutions, at a cost of slower progress in the best bound.


Integrality

MIP - Integrality

Type: Floating point number
Range: [1e-9,0.1]
Default: 1e-5

This option specifies the integer feasibility tolerance (MIP only). An integrality restriction on a variable is considered satisfied when the difference between the variable's value and the nearest integer value is smaller than the value of this option.

If this option is set too small, GUROBI may falsely conclude that the problem is infeasible.

Note

• Another reason why GUROBI may falsely conclude that a problem is infeasible, is if the option Feasibility is set too low.

Learn more about

• Feasibility


MIP Calculate Basis and Sensitivities

MIP - MIP Calculate Basis and Sensitivities

Type: Selection
Range: The settings listed below
Default: No

After solving a MIP problem with GUROBI, basis and sensitivity information (i.e., reduced costs for the columns and shadow prices for the rows) is not directly available. To get basis and sensitivity information, all integer values have to be fixed and the derived LP model must be solved. Possible values are:

q No
q Yes

Note

• In case the option Postsolve Integer Variables is set to 'Round integers and resolve LP', basis and sensitivity information is automatically calculated when the LP is resolved. In that case the value of this option is ignored.

Learn more about

• Postsolve integer variables


MIP Focus

MIP - MIP Focus

Type: Selection
Range: The settings listed below
Default: Balanced

The option controls the focus of the MIP solver. The default value tries to strike a balance between finding good feasible solutions and proving optimality. A value of 'Feasibility' shifts the focus towards finding feasible solutions. A value of 'Optimality' shifts the focus towards proving optimality. A value of 'Best bound' focuses almost entirely on moving the best objective bound. Possible values are:

q Balanced
q Feasibility
q Optimality
q Best bound


MIP Root Method

MIP - MIP Root Method

Type: Selection
Range: The settings listed below
Default: Dual simplex

This option determines which algorithm should be used to solve the MIP root relaxation. Possible values are:

q Primal simplex
q Dual simplex
q Barrier

Note

• The option LP Method determines which algorithm should be used when solving node relaxations within the MIP solver.

Learn more about

• LP method


MIP Start

MIP - MIP Start

Type: Selection
Range: The settings listed below
Default: No

This option determines whether GUROBI should load a start solution (if available) for solving a MIP model. Possible values are:

q No
q Yes


MIP Symmetry

MIP - MIP Symmetry

Type: Selection
Range: The settings listed below
Default: Automatic

The option controls the MIP symmetry detection. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive


Node File Start

MIP - Node File Start

Type: Floating point number
Range: [0,1e20]
Default: 1e20

This option controls the point at which MIP tree nodes are written to disk. Whenever node storage exceeds the specified value (in GBytes), nodes are written to disk.

The node file is written to a subdirectory grbnodesx, with x being a nonnegative integer, of the AIMMS project directory.


Node Limit

MIP - Node Limit

Type: Floating point number
Range: [0,1e20]
Default: 1e20

This option limits the maximum number of nodes explored before the algorithm terminates without reaching optimality. For MIP usage only.


Postsolve Integer Variables

MIP - Postsolve Integer Variables

Type: Selection
Range: The settings listed below
Default: No rounding

GUROBI does not round the found integer values of a MIP to the nearest integer value. Instead it returns values which are considered to be integer within the integrality tolerance. This option offers the possibility to perform some postsolving on the found integer solution concerning rounding of integer values. Possible values are:

q No rounding. The integer variable values found by GUROBI are passed directly to AIMMS.
q Round to integer. The integer variable values found by GUROBI are rounded before passing them to AIMMS.
q Round integers and resolve LP. If the solution returned by GUROBI contains some integer variables that are not really integer, then those variables are fixed on the nearest integer value, and the LP model derived in this way is solved by GUROBI. As a result we obtain a solution in which all integer variables have a true integer value.

Also is checked whether the optimal value of this new LP is the same as the optimal value of the original problem as solved by GUROBI. If this is not the case, AIMMS generates a warning.

Please note that in a few special cases a feasible model can become infeasible as a result of fixing the variables (which indicates that the solution as given by GUROBI is not reliable). In such a case AIMMS generates a warning, and the value of this option is relaxed to 'No rounding'.

Note

• In case the value of this option is set to 'No rounding' or 'Round to integer', still the postsolve step can be executed if the value of the option MIP Calculate Basis and Sensitivities is set to 'Yes'. To get basis and sensitivity information, all integer values have to be fixed and the derived LP model must be solved.
• The LP method used for solving the LP model (if any) during the postsolve is determined by the option LP Method.

Learn more about

• Integrality
• LP method
• MIP calculate basis and sensitivities
• Postsolve continuous variables


RINS Heuristic Frequency

MIP - RINS Heuristic Frequency

Type: Integer
Range: {-1 .. 2000000000}
Default: -1

This option set the frequency of the RINS heuristic. The default value of -1 chooses automatically. A value of 0 shuts off RINS. A positive value n applies RINS at every n-th node of the MIP search tree.


RINS Sub MIP Node Limit

MIP - RINS Sub MIP Node Limit

Type: Integer
Range: {0 .. 2000000000}
Default: 500

This option limits the number of nodes explored by the relaxation induced neighborhood search (RINS) heuristic. Exploring more nodes can produce better solutions, but it generally takes longer.


Select Variables

MIP - Select Variables

Type: Selection
Range: The settings listed below
Default: Automatic

The option controls the branch variable selection strategy. The default setting makes an automatic choice, depending on problem characteristics. Possible values are:

q Automatic
q Pseudo reduced cost branching
q Pseudo shadow price branching
q Maximum infeasibility branching
q Strong branching

Strong branching causes variable selection based on partially solving a number of subproblems which tentative branches to see which branch is the most promising. This strategy can be effective on large, difficult MIP problems.


Clique Cuts

MIP Cuts - Clique Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

The value of this option determines if there should be any attempt to generate clique cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate clique cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating clique cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Cover Cuts

MIP Cuts - Cover Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

The value of this option determines if there should be an attempt to generate cover cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate cover cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating cover cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Cut Aggregation Passes Limit

MIP Cuts - Cut Aggregation Passes Limit

Type: Integer
Range: {-1 .. 2000000000}
Default: -1

This option controls the maximum number of constraint aggregation passes performed during cut generation. At the default setting of -1, GUROBI decides.


Flow Cover Cuts

MIP Cuts - Flow Cover Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate flow cover cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate flow cover cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating flow cover cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Flow Path Cuts

MIP Cuts - Flow Path Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate flow path cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate flow path cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating flow path cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Global Cut Control

MIP Cuts - Global Cut Control

Type: Selection
Range: The settings listed below
Default: Automatic

This option provides a global cut control, affecting the generation of all cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive
q Very aggressive

Setting the value of this option to 'Aggressive' would apply all cut types aggressively, unless the cut specific option is set. For example, if the value of this option is set to 'Aggressive' and the value of option Clique Cuts is set to 'Off' then all cut types will be generated aggressively, except clique cuts which would not be generated at all).

Learn more about

• Clique cuts
• Cover cuts
• Flow cover cuts
• Flow path cuts
• GUB cover cuts
• Implied bound cuts
• MIP separation cuts
• MIR cuts
• Network cuts
• Sub MIP cuts
• Zero half cuts


Gomory Cut Passes Limit

MIP Cuts - Gomory Cut Passes Limit

Type: Integer
Range: {-1 .. 2000000000}
Default: -1

This option limits the passes for generating Gomory cuts. At the default setting of -1, GUROBI decides.


GUB Cover Cuts

MIP Cuts - GUB Cover Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate GUB cover cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate GUB cover cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating GUB cover cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Implied Bound Cuts

MIP Cuts - Implied Bound Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate implied bound cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate implied bound cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating implied bound cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


MIP Separation Cuts

MIP Cuts - MIR Separation Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate MIP separation cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate MIP separation cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating MIP separation cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


MIR Cuts

MIP Cuts - MIR Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate Mixed Integer Rounding (MIR) cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate MIR cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating MIR cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Network Cuts

MIP Cuts - Network Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate network cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate network cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating network cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Sub MIP Cuts

MIP Cuts - Sub MIP Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate sub-MIP cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate sub-MIP cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating sub-MIP cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Zero Half Cuts

MIP Cuts - Zero Half Cuts

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether or not to generate zero-half cuts for the problem. Setting the value different from 'Off' indicates that the attempt to generate zero-half cuts should be made. Using the default value indicates that GUROBI will determine the appropriate level in aggressiveness in generating zero-half cuts. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

This option overrides option Global Cut Control.

Learn more about

• Global cut control


Thread Limit

Parallel - Thread Limit

Type: Integer
Range: {1 .. 2000000000}
Default: 1

This option determines the default number of parallel processes (threads) that will be invoked by the GUROBI parallel optimizer for solving MIP models. The parallel optimizer is deterministic which means that multiple runs with the same model at the same option settings on the same platform will reproduce the same solution path and results.

Note

• The value of this option is limited by the number of available processors in the machine.


Presolve

Presolve - Presolve

Type: Selection
Range: The settings listed below
Default: Automatic

This option controls the presolve level. Possible values are:

q Automatic
q Off
q Conservative
q Aggressive

Learn more about

• Presolve aggregation


Presolve Aggregation

Presolve - Presolve Aggregation

Type: Selection
Range: The settings listed below
Default: Yes

This option enables or disables aggregation in presolve. Possible values are:

q No
q Yes

Learn more about

• Presolve


Presolve Aggregation Fill

Presolve - Presolve Aggregation Fill

Type: Integer
Range: {0 .. 2000000000}
Default: 10

This option controls the amount of fill allowed during presolve aggregation. Larger values generally lead to presolved models with fewer rows and columns, but with more constraint matrix non-zeros.


Presolve Dual

Presolve - Presolve Dual

Type: Selection
Range: The settings listed below
Default: Automatic

This option controls controls whether presolve forms the dual of a continuous model. Depending on the structure of the model, solving the dual can reduce overall solution time. The default setting uses a heuristic to decide. Setting 'Off' forbids presolve from forming the dual, while setting 'Force' forces it to take the dual. Setting 'Presolve primal and dual' employs a more expensive heuristic that forms both the presolved primal and dual models (on two threads), and heuristically chooses one of them. Possible values are:

q Automatic
q Off
q Force
q Presolve primal and dual


Presolve Passes

Presolve - Presolve Passes

Type: Integer
Range: {-1 .. 2000000000}
Default: -1

This option limits the number of passes performed by presolve. The default setting (-1) chooses the number of passes automatically.


Presolve Row Reduction

Presolve - Presolve Row Reduction

Type: Selection
Range: The settings listed below
Default: Continuous models

This option controls the presolve dependent row reduction, which eliminates linearly dependent constraints from the constraint matrix. The default setting applies the reduction to continuous models but not to MIP models. Setting 'Off' turns the reduction off for all models. Setting 'All models' turns it on for all models. Possible values are:

q Continuous models
q Off
q All models


Markowitz

Simplex - Markowitz

Type: Floating point number
Range: [1e-4,0.999]
Default: 0.0078125

This option controls the threshold pivoting tolerance. It is used to limit numerical errors in the simplex algorithm. A larger value may avoid numerical problems in rare situations, but it will also harm performance.


Norm Adjust

Simplex - Norm Adjust

Type: Integer
Range: {-1 .. 3}
Default: -1

This option chooses from among multiple pricing norm variants. The default value of -1 chooses automatically.

This is an advanced option and there is no description of the values 0 - 3.


Objective Scale

Simplex - Objective Scale

Type: Floating point number
Range: [-1,1e20]
Default: 0

The model objective is divided by the specified value of this option to avoid numerical errors that may result from very large objective coefficients. The default value of 0 decides on the scaling automatically. A value less than zero uses the maximum coefficient to the specified power as the scaling (so a value of -0.5 would scale by the square root of the largest objective coefficient).


Perturbation

Simplex - Perturbation

Type: Floating point number
Range: [0,0.01]
Default: 0.0002

This option specifies the magnitude of simplex perturbation (when required).


Pricing

Simplex - Pricing

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines the simplex variable pricing strategy. Possible values are:

q Automatic
q Partial pricing
q Steepest edge
q Devex
q Quick-start steepest edge


Quad Precision

Simplex - Quad Precision

Type: Selection
Range: The settings listed below
Default: Automatic

This option enables or disables quad precision computation in simplex. The default setting allows the algorithm to decide. Possible values are:

q Automatic
q Off
q On


Output File

Logging - Output File

Type: Selection
Range: The settings listed below
Default: No

This option can be used to activate the generation of a GUROBI output file. The status file is named "gurobi.log" and is placed in the log-directory of the current project. Possible values are:

q None
q Yes

Remark

The logging information is written if the general solvers option Solver Listing Messages is set to 'All'. To copy the logging information to the listing file the general solvers option Solver Listing should be set to a value different than 'Never'.

Learn more about

• Output file display interval
• Solver listing
• Solver listing messages


Output File Display Interval

Logging - Output File Display Interval

 Top Previous

Type: Integer
Range: {1 .. 2000000000}
Default: 5

The option controls the frequency at which log lines are printed (in seconds) to the GUROBI output file. This option has only an effect if the option Output File is set to 'Yes'.

Learn more about

• Output file