Hands-on Tutorial on Optimization
- F. Eberle, R. Hoeksma, and N. Megow
Branch & Bound Branch & Bound: A General Framework for ILPs - - PowerPoint PPT Presentation
Hands-on Tutorial on Optimization F. Eberle, R. Hoeksma, and N. Megow September 25, 2019 Branch & Bound Branch & Bound: A General Framework for ILPs Introduced in the 1960s by Land and Doig Based on two principle ideas 1.
◮ Introduced in the 1960’s by Land and Doig ◮ Based on two principle ideas
◮ Complete enumeration might be performed
◮ Compute a solution x′ of the current subproblem ◮ If x′ ∈ Zn, compare to the current lower bound.
◮ If better, store it as the new current best solution. ◮ If worse, prune the current branch.
◮ If x′ /
i /
◮ Add xi ≤ ⌊x′
i ⌋.
◮ Add xi ≥ ⌈x′
i ⌉.
◮ Compute a solution x′ of the current subproblem ◮ If x′ ∈ Zn, compare to the current lower bound.
◮ If better, store it as the new current best solution. ◮ If worse, prune the current branch.
◮ If x′ /
i /
◮ Add xi ≤ ⌊x′
i ⌋.
◮ Add xi ≥ ⌈x′
i ⌉.
1 2
11 2
2
1 1 2 2 3 3
1 2
11 2
2
1 1 2 2 3 3
1 1 2 2 3 3
i
i
i
1 1 2 2 3 3
x1 ≥ 2 x1 ≤ 1
i
i
i
1 1 2 2 3 3
x1 ≤ 1
x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
x1 ≤ 1
x1 ≤ 2
x1 ≥ 3 x2 ≤ 1
x2 ≥ 2 x1 ≥ 2
1 1 2 2 3 3
◮ problem: large branch & bound tree
◮ problem: large branch & bound tree ◮ idea: prune nodes
◮ problem: large branch & bound tree ◮ idea: prune nodes
◮ for each node: determine upper bound S ◮ S ≤ cTx∗ for best known solution x∗
→ prune node
◮ problem: large branch & bound tree ◮ idea: prune nodes
◮ for each node: determine upper bound S ◮ S ≤ cTx∗ for best known solution x∗
→ prune node
◮ for min-ILP:
◮ upper bound U for the problem (current best solution) ◮ lower bound S for each node ◮ if S ≥ U → prune node
1 x1 ≤ 1 2 3 5 x1 ≤ 2 6 x
1
≥ 3 x2 ≤ 1 4 x
2
≥ 2 x1 ≥ 2 cTx∗ = 3
1 1 2 2 3 3
1 x1 ≤ 1 2 3 5 x1 ≤ 2 6 x
1
≥ 3 x2 ≤ 1 4 x
2
≥ 2 x1 ≥ 2 cTx∗ = 3
1 1 2 2 3 3
1 x1 ≤ 1 2 3 5 x1 ≤ 2 6 x
1
≥ 3 x2 ≤ 1 4 x
2
≥ 2 x1 ≥ 2 cTx∗ = 3 1
1 1 2 2 3 3
1 x1 ≤ 1 2 3 5 x1 ≤ 2 6 x
1
≥ 3 x2 ≤ 1 4 x
2
≥ 2 x1 ≥ 2 Optimum! 1
1 1 2 2 3 3
n
i=1 vixi
n
i=1 wixi
n
i=1 viyi
n
i=1 wiyi