A list of the Gurobi examples
We recommend that you begin by reading the overview of the examples
(which begins in the next section).
However, if you'd like to dive directly into a specific example, the
following is a list of all of the examples included in the Gurobi
distribution, organized by basic function. The source for the
examples can be found by following the provided links, or in the
examples
directory of the Gurobi distribution.
Read a model from a file
- lp - A very simple example that reads a continuous model
from a file, optimizes it, and writes the solution to a file. If the
model is infeasible, it writes an Irreducible Inconsistent Subsystem
(IIS) instead.
C,
C++,
C#,
Java,
Python,
R,
VB.
- mip2 - Reads a MIP model from a file, optimizes it, and
then solves the fixed version of the MIP model.
C,
C++,
C#,
Java,
Python,
VB.
Build a simple model
- mip1 - Builds a trivial MIP model, solves it, and prints
the solution.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- qp - Builds a trivial QP model, solves it, converts it to
an MIQP model, and solves it again.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- qcp - Builds and solves a trivial QCP model.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- bilinear - Builds and solves a trivial bilinear model.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- sos - Builds and solves a trivial SOS model.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- dense - Solves a model stored using dense matrices.
We don't recommend using dense matrices, but
this example may be helpful if your data is already in this format.
C,
C++,
C#,
Java,
Python,
VB.
- genconstr - Demonstrates the use of simple general
constraints.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- matrix1 - Python-only example that
illustrates the matrix-oriented Python interface.
matrix1.py.
- multiobj - Demonstrates the use of multi-objective
optimization.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- piecewise - Demonstrates the use of piecewise-linear
objective functions.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- gc_pwl - Demonstrates the use of piecewise-linear
constraint.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- gc_pwl_func - Demonstrates the use of function constraints.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- poolsearch - Demonstrates the use of solution pools.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
A few simple applications
- diet - Builds and solves the classic diet problem.
Demonstrates model construction and simple model modification -
after the initial model is solved, a constraint is added to limit the
number of dairy servings.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- diet2, diet3, diet4, dietmodel - Python-only variants of the
diet example that illustrate model-data separation.
diet2.py,
diet3.py,
diet4.py,
dietmodel.py.
- facility - Simple facility location model: given a set
of plants and a set of warehouses, with transportation costs between
them, this example finds the least expensive set of plants to open
in order to satisfy product demand. This example demonstrates the
use of MIP starts — the example computes an initial, heuristic
solution and passes that solution to the MIP solver.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- matrix2 - Python-only example that solves the n-queens
problem using the matrix-oriented Python interface.
matrix2.py.
- netflow - A Python-only example that solves a multi-commodity
network flow model. It demonstrates the use of several Python modeling
constructs, including dictionaries, tuples, tupledict, and tuplelist objects.
netflow.py.
- portfolio - A Python-only example that solves a financial
portfolio optimization model, where the historical return data is stored
using the pandas package and the result is plotted using the matplotlib
package. It demonstrates the use of pandas, NumPy, and Matplotlib in
conjunction with Gurobi.
portfolio.py.
- sudoku - Reads a Sudoku puzzle data set from a file, builds
a MIP model to solve that model, solves it, and prints the solution.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- workforce1 - Formulates and solves a workforce scheduling
model. If the model is infeasible, the example computes and prints
an Irreducible Inconsistent Subsystem (IIS).
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- workforce2 - An enhancement of
workforce1
. This
example solves the same workforce scheduling model, but if the model
is infeasible, it computes an IIS, removes one of the associated
constraints from the model, and re-solves. This process is repeated
until the model becomes feasible. Demonstrates constraint removal.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- workforce3 - A different enhancement of
workforce1
. This example solves the same workforce
scheduling model, but if the model is infeasible, it adds artificial
variables to each constraint and minimizes the sum of the artificial
variables. This corresponds to finding the minimum total change in
the right-hand side vector required in order to make the model
feasible. Demonstrates variable addition.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- workforce4 - An enhancement of
workforce3
. This example
solves the same workforce scheduling model, but it starts with
artificial variables in each constraint. It first minimizes the sum
of the artificial variables. Then, it introduces a new quadratic
objective to balance the workload among the workers. Demonstrates
optimization with multiple objective functions.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- workforce5 - An alternative enhancement of
workforce3
.
This example solves the same workforce scheduling model, but it starts with
artificial variables in each constraint. It formulates a multi-objective
model where the primary objective is to minimize the sum of the
artificial variables (uncovered shifts), and the secondary objective
is to minimize the maximum difference in the number of shifts
worked between any pair of workers. Demonstrates multi-objective
optimization.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
Illustrating specific features
- feasopt - Reads a MIP model from a file, adds artificial slack
variables to relax each constraint, and then minimizes the sum of
the artificial variables. It then computes the same relaxation using
the feasibility relaxation feature. The example demonstrates
simple model modification by adding slack variables. It also
demonstrates the feasibility relaxation feature.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- lpmethod - Demonstrates the use of different LP algorithms.
Reads a continuous model from a file and solves it using multiple
algorithms, reporting which is the quickest for that model.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- lpmod - Demonstrates the use of advanced starts in LP.
Reads a continuous model from a file, solves it, and
then modifies one variable bound. The resulting model is then
solved in two different ways: starting from the solution of the
original model, or restarting from scratch.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- params - Demonstrates the use of Gurobi parameters.
Reads a MIP model from a file, and then spends 5
seconds solving the model with each of four different values of the
MIPFocus
parameter. It compares the optimality gaps for
the four different runs, and continues with the MIPFocus
value that produced the smallest gap.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- sensitivity - MIP sensitivity analysis. Reads a MIP
model, solves it, and then computes the objective impact of fixing
each binary variable in the model to 0 or 1. Demonstrates the multi-scenario
feature.
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- tune - Uses the parameter tuning tool to search for
improved parameter settings for a model.
C,
C++,
C#,
Java,
Python,
VB.
- fixanddive - Implements a simple MIP heuristic. It
reads a MIP model from a file, relaxes the integrality conditions,
and then solves the relaxation. It then chooses a set of integer
variables that take integer or nearly integer values in the
relaxation, fixes them to the nearest integer, and solves the
relaxation again. This process is repeated until the relaxation is
either integer feasible or linearly infeasible. The example
demonstrates different types of model modification (relaxing
integrality conditions, changing variable bounds, etc.).
C,
C++,
C#,
Java,
MATLAB,
Python,
R,
VB.
- multiscenario - Simple facility location model: given a
set of plants and a set of warehouses, with transportation costs
between them, this example finds the least expensive set of plants
to open in order to satisfy product demand. Since the plant fixed
costs and the warehouse demands are uncertain, multiple scenarios
are created to capture different possible values. A multi-scenario
model is constructed and solved, and the solutions for the different
scenarios are retrieved and displayed.
C,
C++,
C#,
Java,
Python,
VB.
- batchmode - Demonstrates the use of batch optimization.
C,
C++,
C#,
Java,
Python,
VB.
- workforce_batchmode - Python-only example which formulates
a workforce scheduling model. The model is solved using batch
optimization. The VTag attribute
is used to identify the set of variables whose solution information
is needed to construct the schedule.
workforce_batchmode.py.
- mip1_remote - Python-only example that shows the use of context
managers to create and dispose of environment and model objects.
mip1_remote.py.
More advanced features
- tsp - Solves a traveling salesman problem using lazy
constraints.
C,
C++,
C#,
Java,
Python,
VB.
- callback - Demonstrates the use of Gurobi callbacks.
C,
C++,
C#,
Java,
Python,
VB.