integer linear programming (ilp) - cvut.czhanzalek/ko/ilp_e.pdf · problem statement integer linear...

53
Integer Linear Programming (ILP) Zdenˇ ek Hanz´ alek, Pˇ remysl ˇ ucha [email protected] CTU in Prague March 31, 2020 Z. Hanz´ alek (CTU) Integer Linear Programming (ILP) March 31, 2020 1 / 42

Upload: others

Post on 09-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Integer Linear Programming (ILP)

Zdenek Hanzalek, Premysl [email protected]

CTU in Prague

March 31, 2020

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 1 / 42

Page 2: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Table of contents

1 IntroductionProblem StatementComparison of ILP and LPExamples

2 AlgorithmsEnumerative MethodsBranch and Bound MethodSpecial Cases of ILP

3 Problem Formulation Using ILP

4 Conclusion

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 2 / 42

Page 3: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Problem Statement

Integer Linear Programming (ILP)

The ILP problem is given by matrix A ∈ Rm×n and vectors b ∈ Rm andc ∈ Rn. The goal is to find a vector x ∈ Zn such that A · x ≤ b and cT · xis the maximum.

Usually, the problem is given as max{cT · x : A · x ≤ b, x ∈ Zn

}.

A large number of practical optimization problems can be modeledand solved using Integer Linear Programming - ILP.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 3 / 42

Page 4: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Comparison of ILP and LP

The LP problem solution space is convex, since x ∈ Rn

The ILP problem differs from the LP problem in allowinginteger-valued variables. If some variables can contain real numbers,the problem is called Mixed Integer Programming - MIP. Often MIP isalso called ILP, and we will use the term ILP when at least one

variable has integer domain.

If we solve the ILP problem by an LP algorithm and then just round

the solution, we could not only get the suboptimal solution, we canalso obtain a solution which is not feasible.

While the LP is solvable in polynomial time, ILP is NP-hard, i.e.there is no known algorithm which can solve it in polynomial time.

Since the ILP solution space is not a convex set, we cannot useconvex optimization techniques.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 4 / 42

Page 5: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Example ILP1a: 2-Partition Problem

2-Partition Problem

Instance: Number of banknotes n ∈ Z+ and their values p1, . . . , pn,where pi∈1..n ∈ Z+.

Decision: Is there a subset S ⊆ {1, . . . , n} such that∑i∈S pi =

∑i /∈S pi?

The decision problem, which can be written while using the equationabove as an ILP constraint (but we write it differently).

xi = 1 iff i ∈ S

This is one of the “easiest”NP-complete problems.

min 0subject to:∑

i∈1..n xi ∗ pi = 0.5 ∗∑

i∈1..n pi

parameters: n ∈ Z+, pi∈1..n ∈ Z+

variables: xi∈1..n ∈ {0,1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 5 / 42

Page 6: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Example ILP1b: Fractional Variant of the 2-Part. Prob.

We allow division of banknotes such that xi∈1..n ∈ 〈0, 1〉. The solutionspace is a convex set - the problem can be formulated by LP:

min 0subject to:∑

i∈1..n xi ∗ pi = 0.5 ∗∑

i∈1..n pixi ≤ 1 i ∈ 1..n

parameters: n ∈ Z+0 , pi∈1..n ∈ Z+

0

variables: xi∈1..n ∈ R+0

For example: p = [100, 50, 50, 50, 20, 20, 10, 10] the fractional variantallows for x = [0, 0, 0.9, 1, 1, 1, 1, 1] and thus divides the banknotesinto equal halves 100 + 50 + 5 = 45 + 50 + 20 + 20 + 10 + 10, butthis instance does not have a non-fractional solution.For some non-fractional instances we can easily find that they cannotbe partitioned (e.g. when the sum of all values divided by the greatestcommon divisor is not an even number), however we do not know anyalg that can do it in polynomial time for any non-fractional instance.Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 6 / 42

Page 7: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Example ILP1c: 2-Partition Prob. - Optimization Version

The decision problem can be solved by an optimization algorithmwhile using a threshold value (here 0.5 ∗

∑i∈1..n pi ) and comparing

the optimal solution with the threshold.Moreover, when the decision problem has no solution, theoptimization algorithm returns a value that is closest to the threshold.

min Cmax

subject to: ∑i∈1..n xi ∗ pi ≤ Cmax∑

i∈1..n(1− xi) ∗ pi ≤ Cmax

parameters: n ∈ Z+0 , pi∈1..n ∈ Z+

0

variables: xi∈1..n ∈ {0, 1}, Cmax ∈ R+0

Application: the scheduling of nonpreemptive tasks {T1,T2, ...,Tn} withprocessing times [p1, p2, ..., pn] on two parallel identical processors andminimization of the completion time of the last task (i.e. maximumcompletion time Cmax) - P2 ||Cmax . The fractional variant of 2-partitionproblem corresponds to the preemptive scheduling problem.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 7 / 42

Page 8: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Example ILP2a: Shortest Paths

Shortest Path in directed graph

Instance: digraph G with n nodes, distance matrix c : V × V → R+0

and two nodes s, t ∈ V .

Goal: find the shortest path from s to t or decide that t isunreachable from s.

LP formulation using a physical analogy:

node = ball

edge = string (we consider asymmetric distance matrix c)

node s is fixed, other nodes arepulled by gravity

tightened string = shortest path

max ltsubject to:

ls = 0lj ≤ li + ci ,j i ∈ 1..n, j ∈ 1..n

parameters: n ∈ Z+0 , ci∈1..n,j∈1..n ∈ R+

0

variables: li∈1..n ∈ R+0

Is it a polynomial problem?

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 8 / 42

Page 9: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Example ILP3: Traveling Salesman Problem

Asymmetric Traveling Salesman Problem

Instance: complete digraph Kn, distance matrix c : V × V → Q+.

Goal: find the shortest Hamiltonian cycle. Cycle is a subgraph(v1, ..., vk , e1, ..., ek ) such that the sequence v1, e1, v2, ..., vk , ek , v1 is aclosed directed walk (tah) and vi 6= vj for 1 ≤ i < j ≤ k .

xi ,j = 1 iff node i is in the cycle just before node j

The enter and leave constraints do not capture the TSP completely, sinceany disjoint cycle (i.e. consisting of several sub-tours) will satisfy them.We use si , the “time” of entering node i , to eliminate the sub-tours.

min∑

i∈1..n

∑j∈1..n ci ,j ∗ xi ,j

subject to: xi ,i = 0 i ∈ 1..n avoid self-loop∑i∈1..n xi ,j = 1 j ∈ 1..n enter once∑j∈1..n xi ,j = 1 i ∈ 1..n leave once

si + ci ,j − (1− xi ,j) ∗M ≤ sj i ∈ 1..n, j ∈ 2..n cycle indivisibility

parameters: M ∈ Z+0 , n ∈ Z+

0 , ci∈1..n,j∈1..n ∈ Q+

variables: xi∈1..n,j∈1..n ∈ {0, 1}, si∈1..n ∈ R+0

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 9 / 42

Page 10: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Algorithms

The most successful methods to solve the ILP problem are:

Enumerative Methods

Branch and Bounds

Cutting Planes Methods

Ralph Gomory and Vasek Chvatal are prominent personalities in the fieldof ILP. Some of the solution methods are called: Gomory’s Cuts orChvatal-Gomory’s cuts.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 10 / 42

Page 11: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Enumerative Methods

Based on the idea of inspecting all possible solutions.

Due to the integer nature of the variables, the number of solutions iscountable, but their number is huge. So this method is usually suitedonly for smaller instances with a small number of variables.

The LP problem is solved for every combination of discrete variables.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 11 / 42

Page 12: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Enumerative Methods

max −2x1 + x2

s.t. 9x1 − 3x2 ≥ 11

x1 + 2x2 ≤ 10

2x1 − x2 ≤ 7

x1, x2 ≥ 0, x1, x2 ∈ Z+0

The figure below shows 10 feasible solutions. The optimal solution isx1 = 2, x2 = 2 with an objective function value of −2.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 12 / 42

Page 13: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Branch and Bound Method

The method is based on splitting the solution space into disjoint sets.

It starts by relaxing on the integrality of the variables and solves the

LP problem.

If all variables xi are integers, the computation ends. Otherwiseone variable xi /∈ Z is chosen and its value is assigned to k .

Then the solution space is divided into two sets - in the first one weconsider xi ≤ ⌊k⌋ and in the second one xi ≥ ⌊k⌋+ 1.

The algorithm recursively repeats computation for the both newsets till feasible integer solution is found.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 13 / 42

Page 14: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Branch and Bound Method

By branching the algorithm creates a solution space which can bedepicted as a tree.

A node represents the partial solution.

A leaf determines some (integer) solution or “bounded” branch(infeasible solution or the solution which does not give a better valuethan the best solution found up to now)

As soon as the algorithm finds an integer solution, its objectivefunction value can be used for bounding

The node is discarded whenever z , its (integer or real) objectivefunction value, is worse than z∗, the value of the best known solution

The ILP algorithm often uses an LP simplex method because afteradding a new constraint it is not needed to start the algorithm again, butit allows one to continue the previous LP computation while solving thedual simplex method.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 14 / 42

Page 15: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Branch and Bound Algorithm - ILP maximization problem

function z,x = ILP(A,b,c,z ,x )b b

z,x := - , [ ]

return

Is

the solution to LP

infeasible?

z ,x := solution to LP problemLP LP

yes

no

8

select some non-integer xi

k := xi

solve recursively two problems:

the first one extended with x =< ki

z’,x’ ILP(A’,b’,c,:= z ,x )b b

if z’ > z then z ,x :=b b b

z’,x’

the second one extended with x => +1i k

’ ’ := ’ ’z’ ,x’ ILP(A’ ,b’ ,c,z ,x )b b

’’ > z then z ,x :=if zb b b

z’ ,x’’ ’

z <= zLP b

no

Are

all variables

integer?

z,x := z ,xb b

return

yes

yesz,x := z ,xLP LP

return

no z,x := z ,xb b

return

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 15 / 42

Page 16: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Branch and Bound - Example

1 2 30

1

2

3

x1

x2

x = 1.25

x = 2.5

z = 3.75

1

2

1 2 30

1

2

3

x1

x2

x < 1

x = 1

x = 2,25

z = 3,5

1

1

2

x < 1 x > 21 1

1 2 30

1

2

3

x1

x2

x > 2

x = 2

x = 1

z = 0

1

1

2

x < 2 x > 32 2

1 2 30

1

2

3

x1

x2

x < 1

x < 2

x = 0,75

x = 2

z = 3,25

1

2

1

2

Infeasiblesolution

x < 0 x > 11

1

1 2 30

1

2

3

x1

x2

x < 0

x < 2

x = 0

x = 1.25

z = 2,5

1

2

1

2

1 2 30

1

2

3

x1

x2

x = 1

x < 2

x = 1

x = 2

z = z = 3

1

2

1

2

x < 1 x > 22

2

Infeasiblesolution

1 2 30

1

2

3

x1

x2

x = 0

x <

x = 0

x = 1

z = z = 2

1

max - x + 2x

2x + x < 5

- 4x + 4x < 5

x , x > 0

x , x Z1 2

1 2

1 2

1 2

1 2

1

2

1

2

z < z .

z > z , algorit m.

It is not needed to continuesinceSince the search space has no othersolution with hterminates

*

*

*

Searc

h directi

on

The second feasiblesolution with a better value

The first feasible solution

The third feasiblesolution

*

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 16 / 42

Page 17: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

ILP Solution Space

max z = 3x1 + 4x2

s.t. 5x1 + 8x2 ≤ 40

x1 − 5x2 ≤ 0

x1, x2 ∈ Z+0

What is optimalsolution?

Can we use LP to solvethe ILP problem?

0 1 2 3 4

0

1

2

3

4

5

5 6 7 8

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 17 / 42

Page 18: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Rounding is not always good choice

max z = 3x1 + 4x2

a) LP solution z = 23.03for x1 = 6.06, x2 = 1.21

b) Rounding leads toinfeasible solutionx1 = 6, x2 = 1

c) Nearest feasibleinteger is not optimalz = 19 for x1 = 5, x2 = 1

d) Optimal solution isz = 21 for x1 = 3, x2 = 3

0 1 2 3 4

0

1

2

3

4

5

5 6 7 8

3x+4x

1

2

b)

a)

d)

c)

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 18 / 42

Page 19: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Why integer programming?

Advantages of using integer variables

more realistic (it does not make sense to produce 4.3 cars)

flexible - e.g. binary variable can be used to model the decision(logical expression)

we can formulate NP-hard problems

Drawbacks

harder to create a model

usually suited to solve the problems with less than 1000 integervariables

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 19 / 42

Page 20: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Special Cases of ILP - Example ILP2b: Shortest Paths

Shortest path in a graph

Instance: digraph G given by incidence matrixW : V × E → {−1, 0,+1} (such that wij = +1 when edge ej leavesvertex i and wkj = −1 when edge ej enters vertex k), distance vectorc ∈ R+

0 and two nodes s, t ∈ V .

Goal: find the shortest path from s to t or decide that t isunreachable from s.

LP formulation:

xj = 1 iff edge j ischosen

For every node except sand t we enter the nodeas many times as weleave it

min∑

j∈1..m cj ∗ xjsubject to:∑

j∈1..m ws,j ∗ xj = 1 source s∑j∈1..m wi ,j ∗ xj = 0 i ∈ V \ {s, t}∑j∈1..m wt,j ∗ xj = −1 sink t

pars: wi∈1..n,j∈1..m ∈ {−1, 0, 1}, cj∈1..m ∈ R+0

vars: xj∈1..m ∈ R+0

The returned values of xj are integers (binary) even though it is LP. Why?Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 20 / 42

Page 21: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Totally Unimodular Matrix leads to Integral Polyhedron

Polynomial time algorithm for general ILP is not known, however there arespecial cases which can be solved in polynomial time.

Definition - Totally unimodular matrix

Matrix A = [aij ] of size m/n is totally unimodular if the determinant ofevery square submatrix of matrix A is equal 0, +1 or -1.

Necessary condition: if A is totally unimodular then aij ∈ {0, 1,−1} ∀i , j .

Lemma - Integral Polyhedron

Let A be a totally unimodular m/n matrix and let b ∈ Zm. Then eachvertex of the polyhedron P := {x ; Ax ≤ b} is an integer vector.

Proof: [Schrijver] Theorem 8.1.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 21 / 42

Page 22: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Integer Solution by Polynomial Algorithm

Lemma - Integer solution by simplex algorithm

If the ILP problem is given by a totally unimodular matrix A and integervector b then every feasible solution by a simplex algorithm is an integervector.

Proof: From the Lemma on previous slide - the simplex algorithm inspectsvertices that are integer vectors.Unfortunately, the simplex algorithm does not have polynomial complexity.

Fortunately, there are polynomial algorithms able to solve the LP problemsand to find the vertex in the facet with optimal solutions. But this subjectis studied in Linear Programming and Polyhedral Computation.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 22 / 42

Page 23: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Sufficient Condition for Totally Unimodular Matrix

Lemma - Sufficient Condition

Let A be matrix of size m/n such that

1 aij ∈ {0, 1,−1}, i = 1, ...,m, j = 1, ..., n

2 each column in A contains one non-zero element or exactly twonon-zero elements +1 and −1

Then matrix A is totally unimodular.

Proof: [Ahuja] Theorem 11.12. [KorteVygen] Theorem 5.26.Example: ILP constraints of the Shortest Paths problem are: W ∗ x = b

e2e1

e3 e4

e5 v4

v3

v1

v2

W =

e1 e2 e3 e4 e5v1 1 0 1 0 1v2 −1 1 0 0 0v3 0 0 −1 1 0v4 0 −1 0 −1 −1

x =

x1x2x3x4x5

b =

100

−1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 23 / 42

Page 24: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Problem Formulation Using ILP - Real Estate Investment

We consider 6 buildings for investment.The price and rental income for each of them are listed in the table.

building 1 2 3 4 5 6

price[mil. Kc] 5 7 4 3 4 6income[thousands Kc] 16 22 12 8 11 19

Goal:

maximize income

Constraints:

investment budget is 14 mil Kc

each building can be bought only once

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 24 / 42

Page 25: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Problem Formulation Using ILP - Real Estate Investment

We consider 6 buildings for investment.The price and rental income for each of them are listed in the table.

building 1 2 3 4 5 6

price[mil. Kc] 5 7 4 3 4 6income[thousands Kc] 16 22 12 8 11 19

Goal:

maximize income

Constraints:

investment budget is 14 mil Kc

each building can be bought only once

Formulation

xi = 1 if we buy building i

max z = 16x1+22x2+12x3+ 8x4+11x5+19x6s.t. 5x1 + 7x2 + 4x3+ 3x4 + 4x5 + 6x6≤ 14xi∈1···6 ∈ {0, 1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 24 / 42

Page 26: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x1 ⇒ x2

Another constraint:

if building 1 is selected, then building 2 is selected too

x1 x2 x1 ⇒ x20 0 10 1 11 0 01 1 1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 25 / 42

Page 27: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x1 ⇒ x2

Another constraint:

if building 1 is selected, then building 2 is selected too

x1 x2 x1 ⇒ x20 0 10 1 11 0 01 1 1

x1

x2

00

1

1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 25 / 42

Page 28: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x1 ⇒ x2

Another constraint:

if building 1 is selected, then building 2 is selected too

x1 x2 x1 ⇒ x20 0 10 1 11 0 01 1 1

x1

x2

00

1

1

max z = 16x1+22x2+12x3+ 8x4+11x5+19x6s.t. 5x1 + 7x2 + 4x3+ 3x4 + 4x5 + 6x6≤ 14

x2≥ x1xi∈1···6 ∈ {0, 1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 25 / 42

Page 29: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x3 ⇒ x4

Another constraint:

If building 3 is selected, then building 4 is not selected.

x3 x4 x3 ⇒ x40 0 10 1 11 0 11 1 0

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 26 / 42

Page 30: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x3 ⇒ x4

Another constraint:

If building 3 is selected, then building 4 is not selected.

x3 x4 x3 ⇒ x40 0 10 1 11 0 11 1 0

x3

x4

00

1

1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 26 / 42

Page 31: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x3 ⇒ x4

Another constraint:

If building 3 is selected, then building 4 is not selected.

x3 x4 x3 ⇒ x40 0 10 1 11 0 11 1 0

x3

x4

00

1

1

max z = 16x1+22x2+12x3+ 8x4+11x5+19x6s.t. 5x1 + 7x2 + 4x3+ 3x4 + 4x5 + 6x6≤ 14

x3 + x4 ≤ 1xi∈1···6 ∈ {0, 1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 26 / 42

Page 32: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x5 XOR x6

Another constraint:

either building 5 is chosen or building 6 is chosen, but not both

x5 x6 x5 XOR x60 0 00 1 11 0 11 1 0

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 27 / 42

Page 33: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x5 XOR x6

Another constraint:

either building 5 is chosen or building 6 is chosen, but not both

x5 x6 x5 XOR x60 0 00 1 11 0 11 1 0

x5

x6

00

1

1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 27 / 42

Page 34: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula x5 XOR x6

Another constraint:

either building 5 is chosen or building 6 is chosen, but not both

x5 x6 x5 XOR x60 0 00 1 11 0 11 1 0

x5

x6

00

1

1

max z = 16x1+22x2+12x3+ 8x4+11x5+19x6s.t. 5x1 + 7x2 + 4x3+ 3x4 + 4x5 + 6x6≤ 14

x5 + x6 = 1xi∈1···6 ∈ {0, 1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 27 / 42

Page 35: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Logical Formula - Homework

Formulate:

building 1 must be chosen but building 2 can not

at least 3 estates must be chosen

exactly 3 estates must be chosen

if estates 1 and 2 have been chosen, then estate 3 must be chosentoo (x1 AND x2) ⇒ x3

exactly 2 estates can not be chosen

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 28 / 42

Page 36: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Problem Formulation Using ILP - Cloth Production

Labor demand, material demand and income per piece are:

product T-shirt shirt trousers capacity

labor 3 2 6 150material 4 3 4 160income 6 4 7Goal:

maximize the profit (i.e. total income minus total expenses)

Constraints:

labor capacity is 150 person-hoursmaterial capacity is 160 meters

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 29 / 42

Page 37: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Problem Formulation Using ILP - Cloth Production

Labor demand, material demand and income per piece are:

product T-shirt shirt trousers capacity

labor 3 2 6 150material 4 3 4 160income 6 4 7Goal:

maximize the profit (i.e. total income minus total expenses)

Constraints:

labor capacity is 150 person-hoursmaterial capacity is 160 meters

Formulation

xi is the amount of product i

max z = 6x1+4x2+7x3s.t. 3x1+2x2+6x3≤ 150

4x1+3x2+4x3≤ 160xi∈1···3 ∈ Z+

0

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 29 / 42

Page 38: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Relationship between Binary and Integer Variable

Another constraint:

the fixed cost has to be covered to rent the machine

product T-shirt shirt trousers

machine cost 200 150 100

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 30 / 42

Page 39: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Relationship between Binary and Integer Variable

Another constraint:

the fixed cost has to be covered to rent the machine

product T-shirt shirt trousers

machine cost 200 150 100

Formulation

add binary variable yi such that yi = 1 when the machine producingproduct i is the rent

the objective function will be changed tomax z = 6x1 + 4x2 + 7x3 − 200y1 − 150y2 − 100y3

join binary yi with integer xi

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 30 / 42

Page 40: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Relationship between Binary and Integer Variable

Machine i is rented when product i is produced. We join binary yi withinteger xi such that:

yi = 0 iff xi = 0

yi = 1 iff xi ≥ 1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 31 / 42

Page 41: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Adding Relationship between Binary and Integer Variable

Machine i is rented when product i is produced. We join binary yi withinteger xi such that:

yi = 0 iff xi = 0

yi = 1 iff xi ≥ 1

For range xi ∈ 〈0, 100〉 these relations can be written as inequalities

xi ≤ 100 ∗ yi

xi ≥ yi ...we can omit this inequality due to the objective function(xi = 0, yi = 1 will not be chosen because we want xi to be maximaland yi minimal)

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 31 / 42

Page 42: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Considering Several Values

Another constraint:

Total amount of work can be at most 40 or 80 or 120 hoursdepending on the number of Full Time Employees (FTEs)

Criterion adaptation:

labor cost is proportional to the number of FTEs (one FTE costs 10)

We only want some values of person-hours to be available:

3x1 + 2x2 + 6x3 ≤ either 40 or 80 or 120

Can be formulated using a set of additional variables vi∈1...3 ∈ {0, 1} as:

3x1 + 2x2 + 6x3 ≤ 40v1 + 80v2 + 120v3∑3i=1 vi = 1

The objective function will be changed to:

max z = 6x1 + 4x2 + 7x3 − 10v1 − 20v2 − 30v3

Note: due to the proportional labor cost, an alternative formulation coulduse v ∈ {1, 2, 3} as the number of FTEs

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 32 / 42

Page 43: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid

While modeling problems using ILP, we often need to express that thefirst, the second or both constraints hold. For example, xi∈1...4 ∈ 〈0, 5〉,xi∈1...4 ∈ R

holds 2x1 + 2x2 ≤ 8or 2x3 − 2x4 ≤ 2

or both

This can be modeled by a big M, i.e. big positive number (here 15), andvariable y ∈ {0, 1} so it can “switch off” one of the inequalities.

2x1 + 2x2 ≤ 8 +M · y2x3 − 2x4 ≤ 2 +M · (1− y)

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 33 / 42

Page 44: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid

for y = 0 inequalities:

2x1 + 2x2 ≤ 8 +M · y2x3 − 2x4 ≤ 2 +M · (1− y)

reduce to:

2x1 + 2x2 ≤ 8 0 1 2 3 4 5

0

1

2

3

4

5

x₁

x₂

2 3 4 5

0

1

2

3

4

5

x₃

x₄

0 1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 34 / 42

Page 45: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid

for y = 0 inequalities:

2x1 + 2x2 ≤ 8 +M · y2x3 − 2x4 ≤ 2 +M · (1− y)

reduce to:

2x1 + 2x2 ≤ 8

for y = 1 inequalities:

2x1 + 2x2 ≤ 8 +M · y2x3 − 2x4 ≤ 2 +M · (1− y)

reduce to:

2x3 − 2x4 ≤ 2

0 1 2 3 4 5

0

1

2

3

4

5

x₁

x₂

2 3 4 5

0

1

2

3

4

5

x₃

x₄

0 1

0 1 2 3 4 5

0

1

2

3

4

5

x₁

x₂

2 3 4 5

0

1

2

3

4

5

x₃

x₄

0 1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 34 / 42

Page 46: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid -

Homework

In 2D draw the solution space of the system of inequalities:

2x1 + x2 ≤ 5 +M · y2x1 − x2 ≤ 2 +M · (1− y)

y ∈ {0, 1}

In 2D draw the solution space of the system of inequalities. Note thatthe equations correspond to parallel lines. Is it possible to find x1, x2such that both equations are valid simultaneously?

2x1 + x2 ≤ 5 +M · yM · (1− y) + 2x1 + x2 ≥ 10

y ∈ {0, 1}

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 35 / 42

Page 47: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid

Example: Non-preemptive Scheduling

1∣∣∣rj , dj

∣∣∣Cmax ... NP-hard problem

Instance: A set of non-preemptive tasks T = {T1, . . . ,Ti , . . .Tn}with release date r and deadline d should be executed on oneprocessor. The processing times are given by vector p.

Goal: Find a feasible schedule represented by start times s thatminimizes completion time Cmax = maxi∈〈1,n〉 si + pi or decide that itdoes not exist.

Example:

Ti - chair to be produced by a joiner

ri - time, when the material is available

di - time when the chair must be completed

si - time when the chair production starts

si + pi - time when the chair production endsZ. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 36 / 42

Page 48: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least One of Two Constraints Must be Valid

Example: Non-preemptive Scheduling

Since at the given moment, at most, one task is running on a givenresource, therefore, for all task pairs Ti ,Tj it must hold:

1 Ti precedes Tj (sj ≥ si + pi)

2 or Tj precedes Ti (si ≥ sj + pj)

Note that (for pi > 0) both inequalities can’t hold simultaneously.We need to formulate that at least one inequality holds. We will usevariable xij ∈ {0, 1} such that xij = 1 if Ti preceds Tj .For every pair Ti ,Tj we introduce inequalities:

sj +M · (1− xij) ≥ si + pi “switched off” when xij = 0si +M · xij ≥ sj + pj “switched off” when xij = 1

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 37 / 42

Page 49: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

Scheduling - Illustration of Non-convex Space

si ≥ ri i ∈ 1..n release date

di ≥ si + pi i ∈ 1..n deadlinesj +M · (1− xij) ≥ si + pi i ∈ 1..n, j < i Ti precedes Tj GREEN

si +M · xij ≥ sj + pj i ∈ 1..n, j < i Tj precedes Ti VIOLET

For example: pi = 2, pj = 3, ri = rj = 0, di = 10, dj = 11,M = 11

0

2

4

6

8

02

46

8

0

0.2

0.4

0.6

0.8

1

si

sj

xij

0

1

2

3

4

5

6

7

8

0

2

4

6

8

sj

si

si−

sj+

11∗1≤

11−

2

3≤

si−

sj

Non-convex 2D space is a projection of two cuts of a 3D polytope(determined by the set of inequalities) in planes xij = 0 and xij = 1.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 38 / 42

Page 50: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

At least K of N Constraints Must Hold

We have N constraints and we need at least K of them to hold.Constraints are of type:

f (x1, x2, . . . , xn) ≤ b1f (x1, x2, . . . , xn) ≤ b2

...f (x1, x2, . . . , xn) ≤ bN

Can be solved by introducing N variables yi∈1...N ∈ {0, 1} such that

f (x1, x2, . . . , xn) ≤ b1 +M · y1f (x1, x2, . . . , xn) ≤ b2 +M · y2

...f (x1, x2, . . . , xn) ≤ bN +M · yN∑N

i=1 yi = N − K

If K = 1 and N = 2 we can use just one variable yi and represent itsnegation as a (1− yi ), see above slides for details.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 39 / 42

Page 51: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

ILP Solvers

CPLEX - proprietary IBMhttp://www-03.ibm.com/software/products/en/ibmilogcpleoptist

MOSEK - proprietary http://www.mosek.com/

GLPK - free http://www.gnu.org/software/glpk/

LP SOLVE - free http://groups.yahoo.com/group/lp_solve/

GUROBI - proprietary http://www.gurobi.com/

YALMIP - Matlab toolbox for modelling ILP problemsCVX - modeling framework

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 40 / 42

Page 52: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

ILP - Conclusion

NP-hard problem.

Used to formulate majority of combinatorial problems.

Often solved by branch and bound method.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 41 / 42

Page 53: Integer Linear Programming (ILP) - cvut.czhanzalek/KO/ILP_e.pdf · Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A∈ Rm×n and vectors b∈

References

Ravindra K. Ahuja, Thomas L. Magnanti, and James B. Orlin.Network Flows: Theory, Algorithms, and Applications.Prentice Hall, 1993.

B. H. Korte and Jens Vygen.Combinatorial Optimization: Theory and Algorithms.Springer, fourth edition, 2008.

James B. Orlin.15.053 Optimization Methods in Management Science.MIT OpenCourseWare, 2007.

Alexander Schrijver.A Course in Combinatorial Optimization.2006.

Z. Hanzalek (CTU) Integer Linear Programming (ILP) March 31, 2020 42 / 42