Mixed Integer Linear Programming Combinatorial Problem Solving (CPS) - - PowerPoint PPT Presentation

mixed integer linear programming
SMART_READER_LITE
LIVE PREVIEW

Mixed Integer Linear Programming Combinatorial Problem Solving (CPS) - - PowerPoint PPT Presentation

Mixed Integer Linear Programming Combinatorial Problem Solving (CPS) Javier Larrosa Albert Oliveras Enric Rodr guez-Carbonell May 8, 2020 Mixed Integer Linear Programs A mixed integer linear program (MILP, MIP) is of the form min c


slide-1
SLIDE 1

Mixed Integer Linear Programming

Combinatorial Problem Solving (CPS)

Javier Larrosa Albert Oliveras Enric Rodr´ ıguez-Carbonell

May 8, 2020

slide-2
SLIDE 2

Mixed Integer Linear Programs

2 / 62

A mixed integer linear program (MILP, MIP) is of the form min cT x Ax = b x ≥ 0 xi ∈ Z ∀i ∈ I

If all variables need to be integer, it is called a (pure) integer linear program (ILP, IP)

If all variables need to be 0 or 1 (binary, boolean), it is called a 0 − 1 linear program

slide-3
SLIDE 3

Complexity: LP vs. IP

3 / 62

Including integer variables increases enourmously the modeling power, at the expense of more complexity

LP’s can be solved in polynomial time with interior-point methods (ellipsoid method, Karmarkar’s algorithm)

Integer Programming is an NP-complete problem. So:

There is no known polynomial-time algorithm

There are little chances that one will ever be found

Even small problems may be hard to solve

What follows is one of the many approaches (and one of the most successful) for attacking IP’s

slide-4
SLIDE 4

LP Relaxation of a MIP

4 / 62

Given a MIP (IP) min cT x Ax = b x ≥ 0 xi ∈ Z ∀i ∈ I its linear relaxation is the LP obtained by dropping integrality constraints: (LP) min cT x Ax = b x ≥ 0

Can we solve IP by solving LP? By rounding?

slide-5
SLIDE 5

Branch & Bound

5 / 62

The optimal solution of max x + y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z is (x, y) = (1, 2), with objective 3

The optimal solution of its LP relaxation is (x, y) = (4, 4.5), with objective 9.5

No direct way of getting from (4, 4.5) to (1, 2) by rounding!

Something more elaborate is needed: branch & bound

slide-6
SLIDE 6

Branch & Bound

6 / 62

y x y ≥ 0 max x + y (0, 1) (1, 2) x ≥ 0 (4, 4.5) −8x + 10y ≤ 13 −2x + 2y ≥ 1

slide-7
SLIDE 7

Branch & Bound

7 / 62

Assume variables are bounded, i.e., have lower and upper bounds

Let P0 be the initial problem, LP(P0) be the LP relaxation of P0

If in optimal solution of LP(P0) all integer variables take integer values then it is also an optimal solution to P0

Else

Let xj be integer variable whose value βj at optimal solution of LP(P0) is such that βj ∈ Z. Define P1 := P0 ∧ xj ≤ ⌊βj⌋ P2 := P0 ∧ xj ≥ ⌈βj⌉

feasibleSols(P0) = feasibleSols(P1) ∪ feasibleSols(P2)

Idea: solve P1, solve P2 and then take the best

slide-8
SLIDE 8

Branch & Bound

8 / 62

Let xj be integer variable whose value βj at optimal solution of LP(P0) is such that βj ∈ Z. Each of the problems P1 := P0 ∧ xj ≤ ⌊βj⌋ P2 := P0 ∧ xj ≥ ⌈βj⌉ can be solved recursively

We can build a binary tree of subproblems whose leaves correspond to pending problems still to be solved

This procedure terminates as integer vars have finite bounds and, at each split, the domain of xj becomes strictly smaller

If LP(Pi) has optimal solution where integer variables take integer values then solution is stored

If LP(Pi) is infeasible then Pi can be discarded (pruned, fathomed)

slide-9
SLIDE 9

Example

9 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

slide-10
SLIDE 10

Example

9 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

slide-11
SLIDE 11

Example

10 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 End ==================================================================== CPLEX> optimize Primal simplex - Optimal: Objective = - 8.5000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (0.37 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 4.000000 CPLEX> display solution variables y Variable Name Solution Value y 4.500000

slide-12
SLIDE 12

Example

11 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5

slide-13
SLIDE 13

Example

11 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5

slide-14
SLIDE 14

Example

12 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds y >= 5 End ==================================================================== CPLEX> optimize Bound infeasibility column ’x’. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.67 ticks/sec)

slide-15
SLIDE 15

Example

13 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5

slide-16
SLIDE 16

Example

13 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5

slide-17
SLIDE 17

Example

14 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds y <= 4 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 7.5000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.68 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 3.500000 CPLEX> display solution variables y Variable Name Solution Value y 4.000000

slide-18
SLIDE 18

Example

15 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3

slide-19
SLIDE 19

Example

15 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3

slide-20
SLIDE 20

Example

16 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x >= 4 y <= 4 End ==================================================================== CPLEX> optimize Row ’c1’ infeasible, all entries at implied bounds. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.11 ticks/sec)

slide-21
SLIDE 21

Example

17 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3

slide-22
SLIDE 22

Example

17 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3

slide-23
SLIDE 23

Example

18 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 3 y <= 4 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 6.7000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.71 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 3.000000 CPLEX> display solution variables y Variable Name Solution Value y 3.700000

slide-24
SLIDE 24

Example

19 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4

slide-25
SLIDE 25

Example

19 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4

slide-26
SLIDE 26

Example

20 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 3 y = 4 End ==================================================================== CPLEX> optimize Bound infeasibility column ’x’. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.12 ticks/sec)

slide-27
SLIDE 27

Example

21 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4

slide-28
SLIDE 28

Example

21 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4

slide-29
SLIDE 29

Example

22 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 3 y <= 3 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 5.5000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.71 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 2.500000 CPLEX> display solution variables y Variable Name Solution Value y 3.000000

slide-30
SLIDE 30

Example

23 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2

slide-31
SLIDE 31

Example

23 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2

slide-32
SLIDE 32

Example

24 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x = 3 y <= 3 End ==================================================================== CPLEX> optimize Bound infeasibility column ’y’. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.11 ticks/sec)

slide-33
SLIDE 33

Example

25 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2

slide-34
SLIDE 34

Example

25 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2

slide-35
SLIDE 35

Example

26 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 2 y <= 3 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 4.9000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.71 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 2.000000 CPLEX> display solution variables y Variable Name Solution Value y 2.900000

slide-36
SLIDE 36

Example

27 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3

slide-37
SLIDE 37

Example

27 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3

slide-38
SLIDE 38

Example

28 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 2 y = 3 End ==================================================================== CPLEX> optimize Bound infeasibility column ’x’. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.12 ticks/sec)

slide-39
SLIDE 39

Example

29 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3

slide-40
SLIDE 40

Example

29 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3

slide-41
SLIDE 41

Example

30 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 2 y <= 2 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 3.5000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.71 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 1.500000 CPLEX> display solution variables y Variable Name Solution Value y 2.000000

slide-42
SLIDE 42

Example

31 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3 x ≥ 2 x ≤ 1

slide-43
SLIDE 43

Example

31 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3 x ≥ 2 x ≤ 1

slide-44
SLIDE 44

Example

32 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x = 2 y <= 2 End ==================================================================== CPLEX> optimize Bound infeasibility column ’y’. Presolve time = 0.00 sec. (0.00 ticks) Presolve - Infeasible. Solution time = 0.00 sec. Deterministic time = 0.00 ticks (1.11 ticks/sec)

slide-45
SLIDE 45

Example

33 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3 x ≥ 2 x ≤ 1

slide-46
SLIDE 46

Example

33 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3 x ≥ 2 x ≤ 1

slide-47
SLIDE 47

Example

34 / 62

Min obj: - x - y Subject To c1: -2 x + 2 y >= 1 c2: -8 x + 10 y <= 13 Bounds x <= 1 y <= 2 End ==================================================================== CPLEX> optimize Dual simplex - Optimal: Objective = - 3.0000000000e+00 Solution time = 0.00 sec. Iterations = 0 (0) Deterministic time = 0.00 ticks (2.40 ticks/sec) CPLEX> display solution variables x Variable Name Solution Value x 1.000000 CPLEX> display solution variables y Variable Name Solution Value y 2.000000

slide-48
SLIDE 48

Example

35 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z

y ≤ 4 y ≥ 5 x ≥ 4 x ≤ 3 y ≤ 3 y ≥ 4 x ≥ 3 x ≤ 2 y ≤ 2 y ≥ 3 x ≥ 2 x ≤ 1

slide-49
SLIDE 49

Pruning in Branch & Bound

36 / 62

We have already seen that if relaxation is infeasible, the problem can be pruned

Now assume an (integral) solution has been previously found

If solution has cost Z then any pending problem Pj whose relaxation has

  • ptimal value ≥ Z can be ignored, since

cost(Pj) ≥ cost(LP(Pj)) ≥ Z The optimum will not be in any descendant of Pj!

This cost-based pruning of the search tree has a huge impact

  • n the efficiency of Branch & Bound
slide-50
SLIDE 50

Branch & Bound: Algorithm

37 / 62

S := {P0} /* set of pending problems */ Z := +∞ /* best cost found so far */ while S = ∅ do remove P from S solve LP(P) if LP(P) is feasible then /* if unfeasible P can be pruned */ let β be optimal basic solution of LP(P) if β satisfies integrality constraints then if cost(β) < Z then store β; update Z else if cost(LP(P)) ≥ Z then continue /* P can be pruned */ let xj be integer variable such that βj ∈ Z S := S ∪ { P ∧ xj ≤ ⌊βj⌋, P ∧ xj ≥ ⌈βj⌉ } return Z

slide-51
SLIDE 51

Heuristics in Branch & Bound

38 / 62

Possible choices in Branch & Bound

Choice of the pending problem

Depth-first search

Breadth-first search

Best-first search: assuming a relaxation is solved when it is added to the set of pending problems, select the one with best cost value

slide-52
SLIDE 52

Heuristics in Branch & Bound

38 / 62

Possible choices in Branch & Bound

Choice of the pending problem

Depth-first search

Breadth-first search

Best-first search: assuming a relaxation is solved when it is added to the set of pending problems, select the one with best cost value

Choice of the branching variable: one that is

closest to halfway two integer values

most important in the model (e.g., 0-1 variable)

biggest in a variable ordering

the one with the largest/smallest cost coefficient

slide-53
SLIDE 53

Heuristics in Branch & Bound

38 / 62

Possible choices in Branch & Bound

Choice of the pending problem

Depth-first search

Breadth-first search

Best-first search: assuming a relaxation is solved when it is added to the set of pending problems, select the one with best cost value

Choice of the branching variable: one that is

closest to halfway two integer values

most important in the model (e.g., 0-1 variable)

biggest in a variable ordering

the one with the largest/smallest cost coefficient

No known strategy is best for all problems!

slide-54
SLIDE 54

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

slide-55
SLIDE 55

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

slide-56
SLIDE 56

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

In the subproblem with x ≥ 1 we get a solution with y = 1

3.

slide-57
SLIDE 57

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

In the subproblem with x ≥ 1 we get a solution with y = 1

3.

In the subproblem with x ≥ 1, y ≥ 1 we get a solution with x = 5

3.

slide-58
SLIDE 58

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

In the subproblem with x ≥ 1 we get a solution with y = 1

3.

In the subproblem with x ≥ 1, y ≥ 1 we get a solution with x = 5

3.

In the subproblem with x ≥ 2, y ≥ 1 we get a solution with y = 4

3.

slide-59
SLIDE 59

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

In the subproblem with x ≥ 1 we get a solution with y = 1

3.

In the subproblem with x ≥ 1, y ≥ 1 we get a solution with x = 5

3.

In the subproblem with x ≥ 2, y ≥ 1 we get a solution with y = 4

3.

In the subproblem with x ≥ 2, y ≥ 2 we get a solution with x = 8

3.

slide-60
SLIDE 60

Remarks on Branch & Bound

39 / 62

If integer variables are not bounded, Branch & Bound may not terminate: min 0 1 ≤ 3x − 3y ≤ 2 x, y ∈ Z is infeasible but Branch & Bound loops forever looking for solutions!

E.g., we first find a solution with x = 2

3.

In the subproblem with x ≥ 1 we get a solution with y = 1

3.

In the subproblem with x ≥ 1, y ≥ 1 we get a solution with x = 5

3.

In the subproblem with x ≥ 2, y ≥ 1 we get a solution with y = 4

3.

In the subproblem with x ≥ 2, y ≥ 2 we get a solution with x = 8

3.

...

slide-61
SLIDE 61

Remarks on Branch & Bound

40 / 62

After solving the relaxation of P, we have to solve the relaxations of P ∧ xj ≤ ⌊βj⌋ and P ∧ xj ≥ ⌈βj⌉

These problems are similar. Do we have to start from scratch? Can be reuse somehow the computation for P?

Idea: start from the optimal solution of the parent problem

slide-62
SLIDE 62

Remarks on Branch & Bound

41 / 62

Let us assume that P is of the form min cTx Ax = b x ≥ 0, xi ∈ Z ∀i ∈ I

Let B be an optimal basis of the relaxation

Let xj be integer variable which at optimal solution is assigned βj ∈ Z

Note that xj must be basic

Let us consider the problem P1 = P ∧ xj ≤ ⌊βj⌋

We add a fresh slack variable s and a new equation: P ∧ xj + s = ⌊βj⌋

Since s is fresh we have (xB, s) defines a basis for the relaxation of P1

slide-63
SLIDE 63

Remarks on Branch & Bound

42 / 62

min −x − y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z ⇒ min −x − y −2x + 2y − s1 = 1 −8x + 10y + s2 = 13 x, y ≥ 0 x, y ∈ Z

Optimal basis of the linear relaxation is B = (x, y) with tableau      min −17

2 + 9 2s1 + s2

x = 4 − 5

2s1 − 1 2s2

y = 9

2 − 2s1 − 1 2s2

For the subproblem with y ≤ 4 we add equation y + s = 4 B = (x, y, s) is a basis for this subproblem with tableau          min −17

2 + 9 2s1 + s2

x = 4 − 5

2s1 − 1 2s2

y = 9

2 − 2s1 − 1 2s2

s = 4 − y = −1

2 + 2s1 + 1 2s2

slide-64
SLIDE 64

Remarks on Branch & Bound

43 / 62

(xB, s) defines a basis for the relaxation of P1

This basis is not feasible: the value in the basic solution assigned to s is ⌊βj⌋ − βj < 0. We would need a Phase I to apply the primal simplex method!

But since s is a slack the reduced costs have not changed: (xB, s) satisfies the optimality conditions!

Dual simplex method can be used: basis (xB, s) is already dual feasible, no need of (dual) Phase I

In practice often the dual simplex only needs very few iterations to obtain the optimal solution to the new problem

slide-65
SLIDE 65

Cutting Planes

44 / 62

Let us consider a MIP of the form min cT x x ∈ S where S =    x ∈ Rn

  • Ax = b

x ≥ 0 xi ∈ Z ∀i ∈ I    and its linear relaxation min cT x x ∈ P where P =    x ∈ Rn

  • Ax = b

x ≥ 0

Let β be such that β ∈ P but β ∈ S. A cut for β is a linear inequality ˆ aT x ≤ ˆ b such that

ˆ aT σ ≤ ˆ b for any σ ∈ S (feasible solutions of the MIP respect the cut)

and ˆ aT β > ˆ b (β does not respect the cut)

slide-66
SLIDE 66

Cutting Planes

45 / 62

max x + y (1, 2) y x y ≥ 0 (4, 4.5) x ≥ 0 (0, 1) −2x + 2y ≥ 1 −8x + 10y ≤ 13

x + y ≤ 6

max x + y −2x + 2y ≥ 1 −8x + 10y ≤ 13 x, y ≥ 0 x, y ∈ Z x + y ≤ 6 is a cut

slide-67
SLIDE 67

Using Cuts for Solving MIP’s

46 / 62

Let ˆ aT x ≤ ˆ b be a cut. Then the MIP min cT x x ∈ S′ where S′ =    x ∈ Rn

  • Ax = b

ˆ aT x ≤ ˆ b x ≥ 0 xi ∈ Z ∀i ∈ I        has the same set of feasible solutions S but its LP relaxation is strictly more constrained

Instead of splitting into subproblems (Branch & Bound),

  • ne can add the cut and solve the relaxation of the new problem

In practice cuts are used together with Branch & Bound: If after adding some cuts no integer solution is found, then branch This technique is called Branch & Cut

slide-68
SLIDE 68

Gomory Cuts

47 / 62

There are several techniques for deriving cuts

Some are problem-specific (e.g., for the travelling salesman problem)

Here we will see a generic technique: Gomory cuts

Let us consider a basis B and let β be the associated basic solution. Note that for all j ∈ R we have βj = 0

Let xi be a basic variable such that i ∈ I and βi ∈ Z

E.g., this happens in the optimal basis of the relaxation when the basic solution does not meet the integrality constraints

Let the row of the tableau corresponding to xi be of the form xi = βi +

j∈R αijxj

slide-69
SLIDE 69

Gomory Cuts

48 / 62

Let x ∈ S. Then xi ∈ Z and xi = βi +

j∈R αijxj

xi − βi =

j∈R αijxj

Let δ = βi − ⌊βi⌋. Then 0 < δ < 1

Hence xi − ⌊βi⌋ = xi − βi + βi − ⌊βi⌋ = xi − βi + δ = δ + xi − βi = δ +

j∈R αijxj

slide-70
SLIDE 70

Gomory Cuts

49 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj ≥ 0.

slide-71
SLIDE 71

Gomory Cuts

49 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj ≥ 0.

Then δ +

j∈R αijxj > 0 and xi − ⌊βi⌋ ∈ Z imply

δ +

  • j∈R

αijxj ≥ 1

  • j∈R+

αijxj ≥

  • j∈R

αijxj ≥ 1 − δ

  • j∈R+

αij 1 − δ xj ≥ 1

slide-72
SLIDE 72

Gomory Cuts

49 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj ≥ 0.

Then δ +

j∈R αijxj > 0 and xi − ⌊βi⌋ ∈ Z imply

δ +

  • j∈R

αijxj ≥ 1

  • j∈R+

αijxj ≥

  • j∈R

αijxj ≥ 1 − δ

  • j∈R+

αij 1 − δ xj ≥ 1 Moreover

j∈R−

−αij

δ

  • xj ≥ 0
slide-73
SLIDE 73

Gomory Cuts

50 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj < 0.

slide-74
SLIDE 74

Gomory Cuts

50 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj < 0.

Then δ +

j∈R αijxj < 1 and xi − ⌊βi⌋ ∈ Z imply

δ +

  • j∈R

αijxj ≤ 0

  • j∈R−

αijxj ≤

  • j∈R

αijxj ≤ −δ

  • j∈R−

−αij δ

  • xj ≥ 1
slide-75
SLIDE 75

Gomory Cuts

50 / 62

δ = βi − ⌊βi⌋ xi − ⌊βi⌋ = δ +

j∈R αijxj

Let us define R+ = {j ∈ R | αij ≥ 0} R− = {j ∈ R | αij < 0}

Assume

j∈R αijxj < 0.

Then δ +

j∈R αijxj < 1 and xi − ⌊βi⌋ ∈ Z imply

δ +

  • j∈R

αijxj ≤ 0

  • j∈R−

αijxj ≤

  • j∈R

αijxj ≤ −δ

  • j∈R−

−αij δ

  • xj ≥ 1

Moreover

j∈R+ αij 1−δxj ≥ 0

slide-76
SLIDE 76

Gomory Cuts

51 / 62

In any case

  • j∈R−

−αij δ

  • xj +
  • j∈R+

αij 1 − δ xj ≥ 1 for any x ∈ S. However, when x = β this inequality is not satisfied (set xj = 0 for j ∈ R)

In the example:      min −17

2 + 9 2s1 + s2

x = 4 − 5

2s1 − 1 2s2

y = 9

2 − 2s1 − 1 2s2

y violates the integrality condition, we have δ = 1

2, j∈R αijxj = −2s1 − 1 2s2

The cut is 4s1 + s2 ≥ 1, which projected on x, y is y ≤ 4.

slide-77
SLIDE 77

Ensuring All Vertices Are Integer

52 / 62

Let us assume A, b have coefficients in Z

Sometimes it is possible to ensure for an IP that all vertices of the relaxation are integer

For instance, when the matrix A is totally unimodular: the determinant of every square submatrix is 0 or ±1

slide-78
SLIDE 78

Ensuring All Vertices Are Integer

52 / 62

Let us assume A, b have coefficients in Z

Sometimes it is possible to ensure for an IP that all vertices of the relaxation are integer

For instance, when the matrix A is totally unimodular: the determinant of every square submatrix is 0 or ±1 In that case all bases have inverses with integer coefficients Recall Cramer’s rule: if B is an invertible matrix, then B−1 = 1 det(B)adj(B) where adj(B) is the adjugate matrix of B Recall also that adj(B) = ((−1)i+j det(Mji))1≤i,j≤n, where Mij is matrix B after removing the i-th row and the j-th column

slide-79
SLIDE 79

Ensuring All Vertices Are Integer

53 / 62

Sufficient condition for total unimodularity of a matrix A: (Hoffman & Gale’s Theorem) 1. Each element of A is 0 or ±1 2. No more than two non-zeros appear in each columm 3. Rows can be partitioned in two subsets R1 and R2 s.t. (a) If a column contains two non-zeros of the same sign, the row of one of them belongs to one subset, and the row of the other, to the other subset (b) If a column contains two non-zeros of different signs, the rows of both of them belong to the same subset

slide-80
SLIDE 80

Assignment Problem

54 / 62

n = # of workers = # of tasks

Each worker must be assigned to exactly one task

Each task is to be performed by exactly one worker

cij = cost when worker i performs task j

slide-81
SLIDE 81

Assignment Problem

54 / 62

n = # of workers = # of tasks

Each worker must be assigned to exactly one task

Each task is to be performed by exactly one worker

cij = cost when worker i performs task j xij = 1 if worker i performs task j

  • therwise

min n

i=1

n

j=1 cijxij

n

j=1 xij = 1

∀i ∈ {1, . . . , n} n

i=1 xij = 1

∀j ∈ {1, . . . , n} xij ∈ {0, 1} ∀i, j ∈ {1, . . . , n}

This problem satisfies Hoffman & Gale’s conditions

slide-82
SLIDE 82

Ensuring All Vertices Are Integer

55 / 62

Several kinds of IP’s satisfy Hoffman & Gale’s conditions:

Assignment

Transportation

Maximum flow

Shortest path

...

Usually ad-hoc network algorithms are more efficient for these problems than the simplex method as presented here

slide-83
SLIDE 83

Ensuring All Vertices Are Integer

55 / 62

Several kinds of IP’s satisfy Hoffman & Gale’s conditions:

Assignment

Transportation

Maximum flow

Shortest path

...

Usually ad-hoc network algorithms are more efficient for these problems than the simplex method as presented here

But:

The simplex method can be specialized: network simplex method

Simplex techniques can be applied if the problem is not a purely network one but has extra constraints

slide-84
SLIDE 84

Expressing Logical Constraints

56 / 62

Sometimes we want to have an indicator variable of a contraint: a 0/1 variable equal to 1 iff the constraint is true (= reification in CP)

E.g., let us to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

slide-85
SLIDE 85

Expressing Logical Constraints

56 / 62

Sometimes we want to have an indicator variable of a contraint: a 0/1 variable equal to 1 iff the constraint is true (= reification in CP)

E.g., let us to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Assume aT x ∈ Z for all feasible solution x Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions

slide-86
SLIDE 86

Expressing Logical Constraints

56 / 62

Sometimes we want to have an indicator variable of a contraint: a 0/1 variable equal to 1 iff the constraint is true (= reification in CP)

E.g., let us to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Assume aT x ∈ Z for all feasible solution x Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b can be encoded with aT x − b ≤ U(1 − δ)

slide-87
SLIDE 87

Expressing Logical Constraints

56 / 62

Sometimes we want to have an indicator variable of a contraint: a 0/1 variable equal to 1 iff the constraint is true (= reification in CP)

E.g., let us to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Assume aT x ∈ Z for all feasible solution x Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b can be encoded with aT x − b ≤ U(1 − δ) 2. δ = 1 ← aT x ≤ b δ = 0 → aT x > b δ = 0 → aT x ≥ b + 1 can be encoded with aT x − b ≥ (L − 1)δ + 1

slide-88
SLIDE 88

Expressing Logical Constraints

57 / 62

We want to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Now assume that aT x is real-valued. Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b can be encoded with aT x − b ≤ U(1 − δ)

slide-89
SLIDE 89

Expressing Logical Constraints

57 / 62

We want to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Now assume that aT x is real-valued. Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b can be encoded with aT x − b ≤ U(1 − δ) 2. δ = 1 ← aT x ≤ b δ = 0 → aT x > b Can only be modeled if we allow for a tolerance ǫ

slide-90
SLIDE 90

Expressing Logical Constraints

57 / 62

We want to encode δ = 1 ↔ aT x ≤ b, where δ is a 0/1 var

Now assume that aT x is real-valued. Let U be an upper bound of aT x − b for all feasible solutions Let L be a lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b can be encoded with aT x − b ≤ U(1 − δ) 2. δ = 1 ← aT x ≤ b δ = 0 → aT x > b Can only be modeled if we allow for a tolerance ǫ δ = 0 → aT x ≥ b + ǫ can be encoded with aT x − b ≥ (L − ǫ)δ + ǫ

slide-91
SLIDE 91

Expressing Logical Constraints

58 / 62

We want to encode δ = 1 ↔ aT x = b, where δ is a 0/1 var

Assume that aT x is real-valued. Let U be upper bound of aT x − b for all feasible solutions Let L be lower bound of aT x − b for all feasible solutions

slide-92
SLIDE 92

Expressing Logical Constraints

58 / 62

We want to encode δ = 1 ↔ aT x = b, where δ is a 0/1 var

Assume that aT x is real-valued. Let U be upper bound of aT x − b for all feasible solutions Let L be lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b ⇒ aT x − b ≤ U(1 − δ)

slide-93
SLIDE 93

Expressing Logical Constraints

58 / 62

We want to encode δ = 1 ↔ aT x = b, where δ is a 0/1 var

Assume that aT x is real-valued. Let U be upper bound of aT x − b for all feasible solutions Let L be lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b ⇒ aT x − b ≤ U(1 − δ) 2. δ = 1 → aT x ≥ b ⇒ aT x − b ≥ L(1 − δ)

slide-94
SLIDE 94

Expressing Logical Constraints

58 / 62

We want to encode δ = 1 ↔ aT x = b, where δ is a 0/1 var

Assume that aT x is real-valued. Let U be upper bound of aT x − b for all feasible solutions Let L be lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b ⇒ aT x − b ≤ U(1 − δ) 2. δ = 1 → aT x ≥ b ⇒ aT x − b ≥ L(1 − δ) 3. δ = 1 ← aT x = b δ = 0 → aT x = b δ = 0 → aT x < b ∨ aT x > b

slide-95
SLIDE 95

Expressing Logical Constraints

58 / 62

We want to encode δ = 1 ↔ aT x = b, where δ is a 0/1 var

Assume that aT x is real-valued. Let U be upper bound of aT x − b for all feasible solutions Let L be lower bound of aT x − b for all feasible solutions 1. δ = 1 → aT x ≤ b ⇒ aT x − b ≤ U(1 − δ) 2. δ = 1 → aT x ≥ b ⇒ aT x − b ≥ L(1 − δ) 3. δ = 1 ← aT x = b δ = 0 → aT x = b δ = 0 → aT x < b ∨ aT x > b Let ǫ be the tolerance, δ′, δ′′ auxiliary 0/1 vars δ = 0 → δ′ = 0 ∨ δ′′ = 0 ⇒ δ′ + δ′′ − δ ≤ 1 δ′ = 0 → aT x ≤ b − ǫ ⇒ aT x − b ≤ (U + ǫ)δ′ − ǫ δ′′ = 0 → aT x ≥ b + ǫ ⇒ aT x − b ≥ (L − ǫ)δ′′ + ǫ

slide-96
SLIDE 96

Expressing Logical Constraints

59 / 62

Boolean expressions can be modeled with 0/1 vars

If xi is a 0/1 variable, let Xi be a boolean variable such that Xi is true iff xi = 1 X1 ∨ X2 iff x1 + x2 ≥ 1 X1 ∧ X2 iff x1 = x2 = 1 ¬X1 iff x1 = 0 X1 → X2 iff x1 ≤ x2 X1 ↔ X2 iff x1 = x2

slide-97
SLIDE 97

Example

60 / 62

Let Xi represent “Ingredient i is in the blend”, i ∈ {A, B, C}. Express the sentence “If ingredient A is in the blend, then ingredient B or C (or both) must also be in the blend” with linear constraints.

slide-98
SLIDE 98

Example

60 / 62

Let Xi represent “Ingredient i is in the blend”, i ∈ {A, B, C}. Express the sentence “If ingredient A is in the blend, then ingredient B or C (or both) must also be in the blend” with linear constraints.

We need to express XA → (XB ∨ XC).

Equivalently, ¬XA ∨ XB ∨ XC.

¬XA ∨ XB ∨ XC is equivalent to (1 − xA) + xB + xC ≥ 1.

So xB + xC ≥ xA

slide-99
SLIDE 99

Example (Fixed Setup Charge)

61 / 62

Let x be the quantity of a product with unit production cost c1. If the product is manufactured at all, there is a setup cost c0 Cost of producing x units = if x = 0 c0 + c1x if x > 0 Want to minimize costs. Model as a MIP? (for simplicity, additional constraints are not specified and can be omitted)

slide-100
SLIDE 100

Example (Fixed Setup Charge)

61 / 62

Let x be the quantity of a product with unit production cost c1. If the product is manufactured at all, there is a setup cost c0 Cost of producing x units = if x = 0 c0 + c1x if x > 0 Want to minimize costs. Model as a MIP? (for simplicity, additional constraints are not specified and can be omitted) Let δ be 0/1 var such that x > 0 → δ = 1 (i.e., δ = 0 → x ≤ 0): add constraint x − Uδ ≤ 0, where U is the upper bound on x Then the cost is c0δ + c1x. No need to express x > 0 ← δ = 1, i.e. x = 0 → δ = 0 Minimization will make δ = 0 if possible (i.e., if x = 0)

slide-101
SLIDE 101

Example (Capacity Expansion)

62 / 62

Let aT x be the consumption of a limited resource in a production process Want to relax the constraint aT x ≤ b by increasing capacity b. Capacity can be expanded to bi b = b0 < b1 < b2 < · · · < bt with costs, respectively, 0 = c0 < c1 < c2 < · · · < ct Want to minimize costs. Model as a MIP? (for simplicity, additional constraints are not specified and can be omitted)

slide-102
SLIDE 102

Example (Capacity Expansion)

62 / 62

Let aT x be the consumption of a limited resource in a production process Want to relax the constraint aT x ≤ b by increasing capacity b. Capacity can be expanded to bi b = b0 < b1 < b2 < · · · < bt with costs, respectively, 0 = c0 < c1 < c2 < · · · < ct Want to minimize costs. Model as a MIP? (for simplicity, additional constraints are not specified and can be omitted) Let 0/1 variables δi mean “capacity expanded to bi”. Then:

t

i=0 δi = 1

aT x ≤ t

i=0 biδi

Cost function: t

i=0 ciδi