BB Slides
BB Slides
• local optimization methods are fast, but need not find global solution
(and even when they do, cannot certify it)
• global optimization methods find global solution (and certify it), but
are not always fast (indeed, are often slow)
• nonheuristic
– maintain provable lower and upper bounds on global objective value
– terminate with certificate proving ǫ-suboptimality
• basic idea:
– partition feasible set into convex sets, and find lower/upper bounds
for each
– form global lower and upper bounds; quit if close enough
– else, refine partition and repeat
• we’ll use lower and upper bound functions Φlb and Φub, that satisfy, for
any rectangle Q ⊆ Qinit,
• some good rules: split rectangle with smallest lower bound, along
longest edge, in half
vol(Qinit)
min vol(Q) ≤
Q∈Lk k
• hence Uk − Lk is small
maxi(ui − li)
cond(Q) =
mini(ui − li)
cond(Q) ≤ max{cond(Qinit), 2}
Y m−1
vol(Q) = (ui − li) ≥ max(ui − li) min(ui − li)
i i
i
m m
(2 size(Q)) 2 size(Q)
= m−1
≥
cond(Q) cond(Q)
minimize f0(x, z)
subject to fi(x, z) ≤ 0, i = 1, . . . , m
zj ∈ {0, 1}, j = 1, . . . , n
• for each fixed z ∈ {0, 1}n, reduced problem (with variable x) is convex
• brute force: solve convex problem for each of the 2n possible values of
z ∈ {0, 1}n
– possible for n ≤ 15 or so, but not n ≥ 20
minimize f0(x, z)
subject to fi(x, z) ≤ 0, i = 1, . . . , m
0 ≤ zj ≤ 1, j = 1, . . . , n
• first problem:
minimize f0(x, z)
subject to fi(x, z) ≤ 0, i = 1, . . . , m
zj ∈ {0, 1}, j = 1, . . . , n
zk = 0
• second problem:
minimize f0(x, z)
subject to fi(x, z) ≤ 0, i = 1, . . . , m
zj ∈ {0, 1}, j = 1, . . . , n
zk = 1
• min{L̃, L̄} ≥ L1
[−0.143, ∞)
z1 = 0 z1 = 1
[∞, ∞] [0.2, ∞]
z2 = 0 z2 = 1
[∞, ∞] [1, 1]
minimize card(x)
subject to Ax b
minimize 1T z
subject to Lizi ≤ xi ≤ Uizi, i = 1, . . . , n
Ax b
zi ∈ {0, 1}, i = 1, . . . , n
minimize xi
subject to Ax b
• Ui is optimal value of LP
maximize xi
subject to Ax b
• relaxed problem is
minimize 1T z
subject to Lizi ≤ xi ≤ Uizi, i = 1, . . . , n
Ax b
0 ≤ zi ≤ 1, i = 1, . . . , n
• for lower bound, we can replace L from LP with ⌈L⌉, since card(x) is
integer valued
• 230 ≈ 109
20
18
cardinality
16
14
upper
lower bound
bound
ceil(lower bound)
12
0 20 40 60 80 100 120
iteration
100
portion of non-pruned Boolean values
10-1
10-2
0 20 40 60 80 100 120
iteration
60
50
number of leaves on tree
40
30
20
10
0
0 20 40 60 80 100 120
iteration
• 250 ≈ 1015
• minimum cardinality 31
40
35
cardinality
30
25
20
upper bound
lower bound
ceil(lower bound)
15
0 500 1000 1500 2000 2500 3000 3500 4000
iteration
100
portion of non-pruned Boolean values
10-1
10-2
10-3
10-4
10-5
0 500 1000 1500 2000 2500 3000 3500 4000
iteration
1600
1400
number of leaves on tree
1200
1000
800
600
400
200
0
0 500 1000 1500 2000 2500 3000 3500 4000
iteration
190
180
170
160
cardinality
150
140
130
120
upper bound
110 lower bound
ceil(lower bound)
100
0 1000 2000 3000 4000 5000
iteration
100
portion of non-pruned Boolean values
10-1
10-2
10-3
10-4
10-5
10-6
10-7
10-8
10-9
10-10
10-11
10-12
0 1000 2000 3000 4000 5000
iteration
1000
number of leaves on tree
800
600
400
200
0
0 1000 2000 3000 4000 5000
iteration