Breakthrough New Capability
With the release of Gurobi 9.0’s addition of a new bilinear solver, the Gurobi Optimizer now supports non-convex quadratic optimization. This groundbreaking new capability allows users to solve problems with non-convex quadratic constraints and objectives – enabling them to find globally optimal solutions to classic bilinear pooling and blending problems and continuous manufacturing problems.
Business Applications
Companies utilizing mathematical optimization are able to apply non-convex quadratic optimization to a number of industries and problems including:
- Pooling problem (blending problem is LP, pooling introduces intermediate pools, which lead to bilinear constraints)
- Petrochemical industry (oil refinery: constraints on ratio of components in tanks)
- Wastewater treatment
- Emissions regulation
- Agricultural / food industry (blending based on pre-mix products)
- Mining
- Energy
- Production planning (constraints on ratio between internal and external workforce)
- Logistics (restrictions from free trade agreements)
- Water distribution (Darcy-Weisbach equation for volumetric flow)
- Engineering design
- Finance
General MINLP:
-
For general MINLP, another important building block is the support to get automatic
piece-wise linearization of certain standard non-linear univariate functions like y =
exp(x), y = sin(x), or y = log(x).
-
Gurobi 9.0 allows to use certain standard non-linear univariate functions like y =
exp(x) or y = sin(x) in a model. These are automatically approximated using piece-wise
linear functions.
-
Many classes of general MINLPs can be solved by using these non-linear univariate
functions and approximating multi-variate functions as polynomials. But note that with
higher degrees of polynomials, the numerics of the problem become more challenging.
Standard Pooling Problem:
Pooling problems are common in the petrochemical refining, wastewater treatment, and mining industries. This problem can be regarded as a generalization of the minimum-cost flow problem and the blending problem. We construct a non-convex mixed-integer quadratically-constrained programming (MIQCP) model of this problem, implement this model in the Gurobi Python API, and compute an optimal solution.