Mixed Integer Linear Program Solver

This Cloud-based API solves mixed integer linear programs, which are systems of equations that optimize continuous and integer variables given a set of constraints. Google uses this solver every day for large-scale and business-critical optimization challenges. Applications include assignment, scheduling, packing, and flow problems.

Apply for access Private documentation

Intended use

Problem types

  • Linear optimization (or linear programming) is the name given to computing the best solution to a problem modeled as a set of linear relationships. These problems arise in many scientific and engineering disciplines.
  • Customers should be facing real-life optimization problems, and be able to conceptualize those problems as a linear or mixed integer program (even with non-linear constraints and objectives)

For example, this is a very simple mixed integer linear program:

$$-x + y \leq 1\\ 3x + 2y \leq 12\\ 2x + 3y \leq 12\\ x, y \geq 0$$
  • Customers can solve up to 10 linear or mixed integer programs in parallel in the Cloud
  • Each model should have a maximum runtime of one hour

Inputs and outputs:

  • Users provide: A list of variables and constraints. These are provided in the form of an OptimizationModel proto or a SolveParameters proto.
  • Users receive: The values for each variable when optimized. This is returned in the form of an OptimizationSolution proto.

Industries and functions: This tool is made intentionally generic and flexible to enable applications across a wide range of industries and problems. Many problems can be characterized as linear or mixed integer linear programs.

Technical challenges: Given the API-based nature of this experiment, customers should be comfortable integrating API inputs and outputs into their broader workflows.

What data do I need?

Data types: Users define a mixed integer linear problem, which can include both integer and continuous variables; and the constraints under which they must be optimized.

Data specifications: Customers will need to provide a linear or mixed integer program, with variables, constraints, and objective, in the OptimizationModel format. This is a simple and straightforward representation of the problem to be solved.

What skills do I need?

As with all AI Workshop experiments, successful users are likely to be savvy with core AI concepts and skills in order to both deploy the experiment technology and interact with our AI researchers and engineers.

In particular, users of this experiment should:

  • Be able to model their problems as linear or mixed integer programs with constraints
  • Be comfortable using APIs