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#

Example

Description

Available Languages

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, Visual Basic

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, Visual Basic

Build a simple model#

Example

Description

Available Languages

mip1

Builds a trivial MIP model, solves it, and prints the solution.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

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, Visual Basic

qcp

Builds and solves a trivial QCP model.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

bilinear

Builds and solves a trivial bilinear model.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

sos

Builds and solves a trivial SOS model.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

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, Visual Basic

genconstr

Demonstrates the use of simple general constraints.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

genconstrnl

Demonstrates the use of general nonlinear constraints.

C, C++, C#, Java, Python, Visual Basic

matrix1

A Python-only example that formulates and solves a simple MIP model using the matrix API.

Python

multiobj

Demonstrates the use of multi-objective optimization.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

piecewise

Demonstrates the use of piecewise-linear objective functions.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

gc_pwl

Demonstrates the use of piecewise-linear constraint.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

gc_pwl_func

Demonstrates the use of function constraints.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

gc_funcnonlinear

Builds and solves a simple nonlinear model.

C, C++, C#, Java, MATLAB, Python, R, VB

poolsearch

Demonstrates the use of solution pools.

C, C++, C#, Java, MATLAB, Python, R, Visual Basic

A few simple applications#

Example

Description

Available Languages

ACOPF

A Python-only example that solves a simple ACOPF problem on four buses. It demonstrates the use of several Python modeling constructs, including vectorized constraints and nonlinear expressions.

Python

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, Visual Basic

diet2, diet3, diet4, dietmodel

Python-only variants of the diet example that illustrate model-data separation.

Python

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, Visual Basic

matrix2

Python-only example that solves the n-queens problem using the matrix-oriented Python interface.

Python

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.

Python

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.

Python

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, Visual Basic

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, Visual Basic

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, Visual Basic

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, Visual Basic

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, Visual Basic

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, Visual Basic

Illustrating specific features#

Example

Description

Available Languages

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, Visual Basic

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, Visual Basic

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, Visual Basic

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, Visual Basic

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, Visual Basic

tune

Uses the parameter tuning tool to search for improved parameter settings for a model.

C, C++, C#, Java, Python, Visual Basic

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, Visual Basic

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, Visual Basic

batchmode

Demonstrates the use of batch optimization.

C, C++, C#, Java, Python, Visual Basic

workforce_batchmode

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.

Python

mip1_remote

Example that shows the use of context managers to create and dispose of environment and model objects.

Python

More advanced features#

Example

Description

Available Languages

tsp

Solves a traveling salesman problem using lazy constraints.

C, C++, C#, Java, Python, Visual Basic

callback

Demonstrates the use of Gurobi callbacks.

C, C++, C#, Java, Python, Visual Basic