Gurobi Optimizer Reference Manual#
This is the manual for version 12.0 of the Gurobi Optimizer. It covers Gurobi’s modeling structures, features, and API concepts, and provides a detailed reference for use when developing applications using Gurobi. The manual is written with practitioners in mind. While it provides an overview of the solver, it is not intended as a first course in optimization. It assumes familiarity with the core concepts and terminology of mathematical optimization, as well as with the programming language you intend to develop in.
Concepts
Gurobi follows a model-and-solve paradigm. As a user of Gurobi, you must translate your optimization problem into mathematical programming form. The Gurobi APIs enable you to formulate an instance of your problem in the solver, invoke its algorithms to solve it, and query solution information. The initial sections of this manual cover the core concepts you should be familiar with.
Modeling Components covers the building blocks used to formulate optimization models in Gurobi.
API Usage covers the basic use of Gurobi’s API for formulating and solving models. It also introduces the core concepts of Environments, Parameters, and Attributes.
Logging provides an overview of the log output produced by Gurobi when solving a model. Reading the log can help in understanding solver performance issues and resolving various warnings.
Guidelines for Numerical Issues explains some of the causes of numerical instability which can occur when solving optimization models, and how to remedy them when necessary. Read this guide if you encounter numerical trouble or warnings when solving your models using Gurobi.
Features
The next sections cover specific features of Gurobi Optimizer.
Batch Optimization: submits models to be solved as asynchronous jobs on remote machines.
Concurrent Optimizer: a simple approach for exploiting multiple processors.
Gurobi Instant Cloud: solve models synchronously on managed compute instances in the cloud.
Infeasibility Analysis: Gurobi’s tools for determinining the cause of model infeasibility.
Multiple Objectives: specify multiple weighted or hierarchical objectives to be considered in a model.
Multiple Scenarios: evaluate sensitivity of solutions to a model over parameterized data.
Nonlinear Constraints: some details of algorithmic support for nonlinear constraints via expression trees.
Parameter Tuning Tool: automatically determine parameter choices to improve solver performance on a model or group of similar models.
Recording API Calls: a tool for debugging your usage of Gurobi Optimizer.
Solution Pool: control how Gurobi searches for and stores solutions other than the best available one.
Reference
The reference sections provide detailed information required for application development in each of our supported APIs.
Specifications of all classes, methods, functions, etc for each of the APIs: C, C++, Java, .NET, Python, MATLAB, and R.
A reference for the available options in Gurobi’s Command-Line Tool,
gurobi_cl
.Descriptions of all Attributes, Parameters, and Numeric Codes, which are common to all language APIs.
A specification of all File Formats read and written by the Optimizer.
The Release Notes, which should be consulted when upgrading from a previous version of Gurobi.
Additional Resources
You can consult the Getting Started Knowledge Base article for a high-level overview of the Gurobi Optimizer, or the Gurobi Example Tour for a quick tour of the examples provided with the Gurobi distribution, or the Gurobi Remote Services Reference Manual for an overview of Gurobi Compute Server, Distributed Algorithms, and Gurobi Remote Services.
Getting Help
If you have a question that is not answered in this document, please visit the Gurobi support site at https://support.gurobi.com. There, you can read knowledge base articles and join the community discussion forum. Also, if you have a current maintenance contract, you can use the Gurobi support site to submit a request to the Gurobi support team.
Trademarks
“Python®” is a registered trademark of the Python Software Foundation. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.