# Integer Linear Programming

## Summary

Integer Linear Programming (ILP) is a method for optimizing a linear objective function such as:

maximize ${\displaystyle \sum _{i=1}^{m}{c_{i}x_{i}}}$

where ${\displaystyle c_{i}\,\!}$'s are known and ${\displaystyle x_{i}\,\!}$'s are unknown, subject to linear equality or inequality constraints such as:

${\displaystyle \sum _{i=1}^{m}{a_{i}x_{i}}\leq b_{i}}$

where ${\displaystyle a_{i}\,\!}$'s and ${\displaystyle b_{i}\,\!}$'s are known, and where ${\displaystyle x_{i}\,\!}$'s can only take integer values

In other words, it is a method to find the optimal solution (i.e. the best assignment of unknown variables such as ${\displaystyle x_{i}\,\!}$) that maximizes the objective function while meeting a list of requirements expressed as linear equality or inequality relationships.

The strength of ILP is in its joint inference. Instead of making local, isolated assignment of each ${\displaystyle x_{i}\,\!}$, it makes joint assignments of all ${\displaystyle x_{i}\,\!}$'s at the same time; respecting the global constraints while optimizing the objective function given.

ILP is known to be NP-hard. However, there are many off-the-shelf solvers, both commercial and non commercial, that are available. One such solver is SCIP, which is currently the fastest non commercial mixed integer programming solver.

## Procedure

Input:

• The linear objective function
• The linear constraints

Output:

• The assignment of unknown variables that optimizes the objective function and is consistent with the constraints

## Related Methods

ILP method to do joint inference is related to other methods such as Markov Logic Networks, a combination of first-order logic and Markov networks, which also incorporates global learning and inference to improve local classifiers' decisions. Global constraints are enforced through the addition of weighted first order logic formulae. The difference with ILP is that Markov Logic Network allows for non-deterministic (soft) constraints. Constraints are assigned different weights during learning phase, thus allowing for constraints that tend to hold but do not always have to. ILP on the other hand enforces hard constraints. It is possible to incorporate weighted constraints into ILPs, however it is not obvious how the weights should be learnt.

Another related method to do joint inference is a version of Path Ranking Algorithm that conducts soft inference based on a combination of constrained, weighted, random walks through a network of local decisions and their relations.

• Nemhauser, G.L. and Wolsey, L.A. Integer and combinatorial optimization, Volume 18, Wiley New York, 1988. - [1]
• Wikipedia article on Integer Programming - [2]