## 1. Overview

In this tutorial, we’ll discuss Integer Linear Programming (ILP) in detail. We’ll also present the variations of ILP with examples.

## 2. Introduction to Integer Linear Programming (ILP)

Integer linear programming is a method of optimizing a linear cost function, and it should satisfy a variety of restrictions on linear equality and linear inequality. It’s an extension of linear programming, with an additional constraint, stating that all variables should be integers. Let’s define an ILP problem mathematically:

Here represents the decision variables, are the costs, denotes coefficients, and denotes the requirements.

This same can also be expressed in matrix form:

Here denotes the costs vector, represent the coefficient matrix, and is the requirements vector and .

## 3. Example of ILP with Maximization

Let’s consider the case where Rob has two jobs, but he can’t work more than hours a week. Rob earns $at job and$ at job . Rob wants to maximize his earnings.

Let be the number of hours worked on the job and the number of hours worked on the job . The number of hours must be positive and rounded. So the objective function would be the total earnings, and the maximum number of hours he can work is a constraint, along with the value of the hours.

Let’s formulate this as an ILP problem:

## 4. Example of ILP with Minimization

Alex is on a low cholesterol diet. He needs to choose the number of days he eats tofu and pasta so that he minimizes his cholesterol intakes while having at least gr of proteins. Let’s consider pasta contains gr proteins and gr cholesterol. Tofu contains gr proteins and gr cholesterol. We can formulate this as an ILP problem:

Here denotes the number of days Alex eats pasta, and represents the number of days Alex eats tofu.

## 5. Maximin ILP

If the problem to be solved requires to maximize the minimum value of a number of decision variables, we can use maximin ILP. To represent the maximin objective mathematically we need to define variables and constants:

• Decision variables for
• Constants for and
• Constants for

The maximin objective function can be defined as:

This model can be converted to a simple maximization ILP by adding auxiliary decision variable so that:

and so:

For example, if we want to maximize the minimum of integers and the sum of those numbers must be , we can formulate this problem as a maximin ILP problem:

This maximin problem can be alternatively expressed by introducing an auxiliary variable :

## 6. Minimax ILP

If the problem to be solved requires to minimize the maximum value of a number of decision variables, we can use minimax ILP. The minimax objective function can be defined as:

Which is subject to some constraints. This model can be converted to a simple maximization by adding an auxiliary decision variable so that:

and so:

If we want to minimize the maximum of integers and the sum of those numbers must be , we can formulate this problem as a minimax ILP problem:

This maximin problem can be alternatively expressed by introducing an auxiliary variable :

## 7. Conclusion

In this tutorial, we defined integer linear programming (ILP). We explained variations of ILP, including maximization, minimization, minimax, and maximin with practical examples.