Integer programming algorithms minimize or maximize a linear function subject to equality, inequality, and integer constraints. Integer constraints restrict some or all of the variables in the optimization problem to take on only integer values. This enables accurate modeling of problems involving discrete quantities (such as shares of a stock) or yes-or-no decisions. When there are integer constraints on only some of the variables, the problem is called a mixed-integer linear program. Example integer programming problems include portfolio optimization in finance, optimal dispatch of generating units (unit commitment) in energy production, and scheduling and routing in operations research.

Integer programming requires finding a vector `x` that minimizes the function:

Subject to the constraints:

(inequality constraint) | |

(equality constraint) | |

(bound constraint) | |

x are integers_{i} |
(integer constraint) |

Solving such problems typically requires using a combination of techniques to narrow the solution space, find integer-feasible solutions, and discard portions of the solution space that do not contain better integer-feasible solutions. Common techniques include:

**Cutting planes**: Add additional constraints to the problem that reduce the search space.**Heuristics**: Search for integer-feasible solutions.**Branch and bound**: Systematically search for the optimal solution. The algorithm solves linear programming relaxations with restricted ranges of possible values of the integer variables.

For more information on integer programming, see Optimization Toolbox™.

- Getting Started with Integer Programming in MATLAB (Example)
- Traveling Salesman Problem (Example)
- Supply Chain Optimization (Example)
- Solve Sudoku Puzzles (Example)
- Mixed Integer Quadratic Programming Portfolio Optimization (Example)
- Mathematical Modeling with Optimization, Part 1 8:51 (Video)
- Mathematical Modeling with Optimization, Part 2 10:46 (Video)
- Optimal Dispatch of Power Generators (Example)

- Linear Programming and Mixed Integer Linear Programming (Functions)
- Mixed-Integer Linear Programming Algorithms (Concepts)
- Tuning Integer Linear Programming (Documentation)

*See also*: *Optimization Toolbox*, *Global Optimization Toolbox*, *linear programming*, *quadratic programming*, *nonlinear programming*, *portfolio optimization*, *investment management*, *energy trading*