Solving optimization problems may require formulating them as mathematical models. Integer linear programming does this using only linear polynomials whose variables must take integer values.