DM545 Linear and Integer Programming Lecture 13
Branch and Bound
Marco Chiarandini
Department of Mathematics & Computer Science University of Southern Denmark
Branch and Bound Marco Chiarandini Department of Mathematics & - - PowerPoint PPT Presentation
DM545 Linear and Integer Programming Lecture 13 Branch and Bound Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Branch and Bound Outline Preprocessing 1. Branch and Bound 2. Preprocessing
Department of Mathematics & Computer Science University of Southern Denmark
Branch and Bound Preprocessing
2
Branch and Bound Preprocessing
3
Branch and Bound Preprocessing
4
Branch and Bound Preprocessing
5
Branch and Bound Preprocessing
6
Branch and Bound Preprocessing
6
Branch and Bound Preprocessing
7
Branch and Bound Preprocessing
7
Branch and Bound Preprocessing
7
Branch and Bound Preprocessing
7
Branch and Bound Preprocessing
27 13 20 20 25 15
8
Branch and Bound Preprocessing
27 13 20 20 25 15
8
Branch and Bound Preprocessing
27 13 20 20 25 15
27 13 20 18 26 21
8
Branch and Bound Preprocessing
27 13 20 20 25 15
27 13 20 18 26 21
8
Branch and Bound Preprocessing
27 13 20 20 25 15
27 13 20 18 26 21
40 −∞ 24 13 37 −∞
8
Branch and Bound Preprocessing
27 13 20 20 25 15
27 13 20 18 26 21
40 −∞ 24 13 37 −∞
8
Branch and Bound Preprocessing
27 13 26 14
9
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | -z | b | |---+----+----+----+----+----+---| | | 1 | 4 | 1 | 0 | 0 | 8 | | | 4 | 1 | 0 | 1 | 0 | 8 | |---+----+----+----+----+----+---| | | 1 | 2 | 0 | 0 | 1 | 0 |
10
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | -z | b | |---+----+----+----+----+----+---| | | 1 | 4 | 1 | 0 | 0 | 8 | | | 4 | 1 | 0 | 1 | 0 | 8 | |---+----+----+----+----+----+---| | | 1 | 2 | 0 | 0 | 1 | 0 | | | x1 | x2 | x3 | x4 | -z | b | |--------------+----+------+----+------+----+----| | I’=I-II’ | 0 | 15/4 | 1 | -1/4 | 0 | 6 | | II’=1/4II | 1 | 1/4 | 0 | 1/4 | 0 | 2 | |--------------+----+------+----+------+----+----| | III’=III-II’ | 0 | 7/4 | 0 | -1/4 | 0 | -2 |
10
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | -z | b | |----------------+----+----+-------+-------+----+---------| | I’=4/15I | 0 | 1 | 4/15 | -1/15 | 0 | 24/15 | | II’=II-1/4I’ | 1 | 0 | -1/15 | 4/15 | 0 | 24/15 | |----------------+----+----+-------+-------+----+---------| | III’=III-7/4I’ | 0 | 0 | -7/15 | -3/5 | 1 | -2-14/5 |
11
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | -z | b | |----------------+----+----+-------+-------+----+---------| | I’=4/15I | 0 | 1 | 4/15 | -1/15 | 0 | 24/15 | | II’=II-1/4I’ | 1 | 0 | -1/15 | 4/15 | 0 | 24/15 | |----------------+----+----+-------+-------+----+---------| | III’=III-7/4I’ | 0 | 0 | -7/15 | -3/5 | 1 | -2-14/5 |
11
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | -z | b | |----------------+----+----+-------+-------+----+---------| | I’=4/15I | 0 | 1 | 4/15 | -1/15 | 0 | 24/15 | | II’=II-1/4I’ | 1 | 0 | -1/15 | 4/15 | 0 | 24/15 | |----------------+----+----+-------+-------+----+---------| | III’=III-7/4I’ | 0 | 0 | -7/15 | -3/5 | 1 | -2-14/5 |
11
Branch and Bound Preprocessing
12
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | x5 | -z | b | |---+----+----+-------+-------+----+----+-------| | | 1 | 0 | 0 | 0 | 1 | 0 | 1 | | | 0 | 1 | 4/15 | -1/15 | 0 | 0 | 24/15 | | | 1 | 0 | -1/15 | 4/15 | 0 | 0 | 24/15 | |---+----+----+-------+-------+----+----+-------| | | 0 | 0 | -7/15 | -3/5 | 0 | 1 | -24/5 |
12
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | x5 | -z | b | |---+----+----+-------+-------+----+----+-------| | | 1 | 0 | 0 | 0 | 1 | 0 | 1 | | | 0 | 1 | 4/15 | -1/15 | 0 | 0 | 24/15 | | | 1 | 0 | -1/15 | 4/15 | 0 | 0 | 24/15 | |---+----+----+-------+-------+----+----+-------| | | 0 | 0 | -7/15 | -3/5 | 0 | 1 | -24/5 | | | x1 | x2 | x3 | x4 | x5 | b | -z | |----------+----+----+-------+-------+----+---+-------| | I’=I-III | 0 | 0 | 1/15 | -4/15 | 1 | 0 | -9/15 | | | 0 | 1 | 4/15 | -1/15 | 0 | 0 | 24/15 | | | 1 | 0 | -1/15 | 4/15 | 0 | 0 | 24/15 | |----------+----+----+-------+-------+----+---+-------| | | 0 | 0 | -7/15 | -3/5 | 0 | 1 | -24/5 |
12
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | x5 | -z | b | |---+----+----+-------+-------+----+----+-------| | | 1 | 0 | 0 | 0 | 1 | 0 | 1 | | | 0 | 1 | 4/15 | -1/15 | 0 | 0 | 24/15 | | | 1 | 0 | -1/15 | 4/15 | 0 | 0 | 24/15 | |---+----+----+-------+-------+----+----+-------| | | 0 | 0 | -7/15 | -3/5 | 0 | 1 | -24/5 | | | x1 | x2 | x3 | x4 | x5 | b | -z | |----------+----+----+-------+-------+----+---+-------| | I’=I-III | 0 | 0 | 1/15 | -4/15 | 1 | 0 | -9/15 | | | 0 | 1 | 4/15 | -1/15 | 0 | 0 | 24/15 | | | 1 | 0 | -1/15 | 4/15 | 0 | 0 | 24/15 | |----------+----+----+-------+-------+----+---+-------| | | 0 | 0 | -7/15 | -3/5 | 0 | 1 | -24/5 | | | x1 | x2 | x3 | x4 | x5 | b | -z | |-------------+----+----+--------+----+-------+---+--------| | I’=-15/4I | 0 | 0 | -1/4 | 1 | -15/4 | 0 | 9/4 | | II’=II-1/4I | 0 | 1 | 15/60 | 0 | -1/4 | 0 | 7/4 | | III’=III+I | 1 | 0 | 0 | 0 | 1 | 0 | 1 | |-------------+----+----+--------+----+-------+---+--------| | | 0 | 0 | -37/60 | 0 | -9/4 | 1 | -90/20 |
aij | : aij < 0}
12
Branch and Bound Preprocessing
13
Branch and Bound Preprocessing
13
Branch and Bound Preprocessing
13
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | x5 | x6 | b | -z | |---+----+----+--------+----+-------+----+---+------| | | 0 | -1 | 0 | 0 | 0 | 1 | 0 | -2 | | | 0 | 0 | -1/4 | 1 | -15/4 | | 0 | 9/4 | | | 0 | 1 | 15/60 | 0 | -1/4 | | 0 | 7/4 | | | 1 | 0 | 0 | 0 | 1 | | 0 | 1 | |---+----+----+--------+----+-------+----+---+------| | | 0 | 0 | -37/60 | 0 | -9/4 | | 1 | -9/2 |
14
Branch and Bound Preprocessing
| | x1 | x2 | x3 | x4 | x5 | x6 | b | -z | |---+----+----+--------+----+-------+----+---+------| | | 0 | -1 | 0 | 0 | 0 | 1 | 0 | -2 | | | 0 | 0 | -1/4 | 1 | -15/4 | | 0 | 9/4 | | | 0 | 1 | 15/60 | 0 | -1/4 | | 0 | 7/4 | | | 1 | 0 | 0 | 0 | 1 | | 0 | 1 | |---+----+----+--------+----+-------+----+---+------| | | 0 | 0 | -37/60 | 0 | -9/4 | | 1 | -9/2 | | | x1 | x2 | x3 | x4 | x5 | x6 | b | -z | |-------+----+----+--------+----+-------+----+---+------| | III+I | 0 | 0 | 1/4 | 0 | -1/4 | 1 | 0 | -1/4 | | | 0 | 0 | -1/4 | 1 | -15/4 | | 0 | 9/4 | | | 0 | 1 | 15/60 | 0 | -1/4 | | 0 | 7/4 | | | 1 | 0 | 0 | 0 | 1 | | 0 | 1 | |-------+----+----+--------+----+-------+----+---+------| | | 0 | 0 | -37/60 | 0 | -9/4 | | 1 | -9/2 |
14
Branch and Bound Preprocessing
4.8 −∞ 4.5 −∞ 3 3 x1=1 x2=1
4 4 x1=0 x2=2
2 2 x1=2 x2=0
15
Branch and Bound Preprocessing
5.8 −∞ 4.5 −∞ 4 4 2.3 −∞
16
Branch and Bound Preprocessing
17
Branch and Bound Preprocessing
17
Branch and Bound Preprocessing
17
Branch and Bound Preprocessing
17
Branch and Bound Preprocessing
18
Branch and Bound Preprocessing
19
Branch and Bound Preprocessing
19
Branch and Bound Preprocessing
k
i=1 x∗ ji ≥ 1 2}
19
Branch and Bound Preprocessing
20
Branch and Bound Preprocessing
j , z↑ j (dual bound of down and up branch)
j∈C max{z↓ j , z↑ j }
20
Branch and Bound Preprocessing
21
Branch and Bound Preprocessing
21
Branch and Bound Preprocessing
22
Branch and Bound Preprocessing
db
23
Branch and Bound Preprocessing
24
Branch and Bound Preprocessing
25
Branch and Bound Preprocessing
27
Branch and Bound Preprocessing
j=1 ajxj ≤ b, lj ≤ xj ≤ uj, j = 0..n}
28
Branch and Bound Preprocessing
j=1 ajxj ≤ b, lj ≤ xj ≤ uj, j = 0..n}
j=0 ajxj ≤ b is redundant if
28
Branch and Bound Preprocessing
29
Branch and Bound Preprocessing
29
Branch and Bound Preprocessing
29
Branch and Bound Preprocessing
29
Branch and Bound Preprocessing
30
Branch and Bound Preprocessing
u2
l3
Branch and Bound Preprocessing
u2
l3
30
Branch and Bound Preprocessing
u2
l3
30
Branch and Bound Preprocessing
u2
l3
30
Branch and Bound Preprocessing
31
Branch and Bound Preprocessing
31
Branch and Bound Preprocessing
31
Branch and Bound Preprocessing
i A = 0 then the ith row can never be satisfied
32
Branch and Bound Preprocessing
i A = 0 then the ith row can never be satisfied
i A = ek then xk = 1 in every feasible solution
32
Branch and Bound Preprocessing
i A = 0 then the ith row can never be satisfied
i A = ek then xk = 1 in every feasible solution
32
t A ≥ eT p A then we can remove row t, row p dominates row t (by covering p we cover t)
t A ≥ eT p A then we can remove row t, row p dominates row t (by covering p we cover t)
j∈S Aej = Aek and j∈S cj ≤ ck then we can cover the rows by Aek more cheaply with S
j∈S cj ≥ ck)
Branch and Bound Preprocessing
34