Definition
Integer Linear Programming
Integer linear programming is the optimisation problem with fixed input , , :
Choose a feasible vector satisfying the linear inequalities; scores each unit of . This is linear programming restricted to integer-valued variables.
Columns correspond to variables; rows correspond to constraints.
Decision Version
The decision version additionally receives a target and asks
Modelling Conventions
Both constraints and objective must be linear; terms such as belong to the broader integer programming setting. Replace equalities by two opposing inequalities, and convert minimisation to maximisation by negating the objective.
Intuition
Constraints say allowed; the objective says best
During one ILP instance, , , and stay fixed while the solver chooses :
The two expressions answer different questions:
In the example below, and can represent quantities of two products. The constraints describe which production plans fit the available resources. Many plans may be feasible, so assigns profits of and per unit and tells the solver which feasible plan is best. Without , the model could only ask whether some feasible plan exists. If only feasibility matters, one may set .
Example
A two-variable ILP
Consider
The optimal solution is with objective value . Hence the decision version answers yes for target and no for target .
Why the objective coefficients matter
Keep the same constraints. Both and are feasible, but changing reverses which one is better:
Thus, selects , whereas selects . The feasible set has not changed; only the meaning of “best” has changed.