Lukas' Notes

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.