## 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.