Concepts
Features
Reference
This is the manual for version 13.0 of the Gurobi Optimizer. It coversGurobi’s modeling structures, features, and API concepts, and provides a detailedreference for use when developing applications using Gurobi. The manual iswritten with practitioners in mind. While it provides an overview of the solver,it is not intended as a first course in optimization. It assumes familiaritywith the core concepts and terminology of mathematical optimization, as well aswith the programming language you intend to develop in.
Concepts
Gurobi follows a model-and-solve paradigm. As a user of Gurobi, you musttranslate your optimization problem into mathematical programming form. TheGurobi APIs enable you to formulate an instance of your problem in the solver,invoke its algorithms to solve it, and query solution information. The initialsections of this manual cover the core concepts you should be familiar with.
Modeling Components covers the building blocks used to formulateoptimization models in Gurobi:
SectionVariables discusses supported variable types:continuous,general integer,binary,semi-continuous, semi-integer.
SectionConstraints discusses supported constraint types:linear,SOS,(non-)convex quadratic (including second-order cone),max, min, abs, and, or, norm, indicator, piecewise-linear,polynomial, exponential, logarithm, logistic, (signed) power, sine,cosine, (hyperbolic) tangent, etc.
SectionObjectives discusses supported objectivetypes:linear,piecewise-linear,(non-)convex quadratic,multi-objective.
API Usage covers the basic use of Gurobi’s API for formulating andsolving models. It also introduces the core concepts ofEnvironments,Parameters, andAttributes.
Logging provides an overview of the log output produced by Gurobiwhen solving a model. Reading the log can help in understanding solverperformance issues and resolving various warnings.
Guidelines for Numerical Issues explains some of the causes of numerical instabilitywhich can occur when solving optimization models, and how to remedy them whennecessary. Read this guide if you encounter numerical trouble or warnings whensolving your models using Gurobi.
Features
The next sections cover specific features of Gurobi Optimizer.
Batch Optimization: submit models to be solved as asynchronous jobson remote machines.
Callbacks: interact with the solver while it is running.
Concurrent Optimization: a simple approach for exploiting multiple processors.
Distributed Optimization: solve models on multiple machines.
Gurobi Instant Cloud: solve models synchronously on managed compute instances inthe cloud.
Infeasibility Analysis: Gurobi’s tools for determinining the cause of modelinfeasibility.
Multiple Objectives: specify multiple weighted or hierarchicalobjectives to be considered in a model.
Multiple Scenarios: evaluate sensitivity of solutions to a model overparameterized data.
Nonlinear Constraints: some details of algorithmic support fornonlinear constraints via expression trees.
Parameter Tuning Tool: automatically determine parameter choices to improve solverperformance 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 solutionsother than the best available one.
Reference
The reference sections provide detailed information required for applicationdevelopment in each of our supported APIs.
Specifications of all classes, methods, functions, etc for each ofthe APIs:C,C++,Java,.NET,Python,MATLAB, andR.
A reference for the available options in Gurobi’sCommand-Line Tool,gurobi_cl.
Descriptions of allAttributes,Parameters, andNumeric Codes, which are common to all language APIs.
A specification of allFile Formats read and written by theOptimizer.
TheRelease Notes, which should be consulted whenupgrading from a previous version of Gurobi.
Additional Resources
You can consult theGetting Started Knowledge Base article for a high-leveloverview of the Gurobi Optimizer, or theGurobi Example Tour for a quick tour of theexamples provided with the Gurobi distribution, or theGurobi Remote Services Reference Manual for anoverview of Gurobi Compute Server, Distributed Algorithms, and Gurobi RemoteServices.
Getting Help
If you have a question that is not answered in this document, please visit theGurobi support site athttps://support.gurobi.com. There, you can readknowledge base articles and join the community discussion forum. Also, if youhave a current maintenance contract, you can use the Gurobi support site tosubmit 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.
Help and Feedback