CS/ECE/ISyE 524 Introduction to Optimization Spring 2017–18
- 23. Cutting planes and branch & bound
❼ Algorithms for solving MIPs ❼ Cutting plane methods ❼ Branch and bound methods
Laurent Lessard (www.laurentlessard.com)
23. Cutting planes and branch & bound Algorithms for solving - - PowerPoint PPT Presentation
CS/ECE/ISyE 524 Introduction to Optimization Spring 201718 23. Cutting planes and branch & bound Algorithms for solving MIPs Cutting plane methods Branch and bound methods Laurent Lessard (www.laurentlessard.com) MIP
CS/ECE/ISyE 524 Introduction to Optimization Spring 2017–18
Laurent Lessard (www.laurentlessard.com)
23-2
x
23-3
x
23-4
23-5
x
23-6
x
23-7
x
23-8
x
23-9
23-10
◮ Cuts are easy to compute; they can be computed as a
◮ Cutting plane method using Gomory cuts is guaranteed to
23-11
x
1 + 4x2 2 − 3x1x2
23-12
x
1 + 4x2 2 − 3x1x2
23-13
x
1 + 4x2 2 − 3x1x2
23-14
23-15
◮ Removing a constraint makes the feasible set larger, so the
◮ Adding a constraint makes the feasible set smaller, so the
23-16
23-17
Example borrowed from MIT 15.053/8
LP = 21.38,
LP =
23-18
Example borrowed from MIT 15.053/8
x1 = 0 x1 = 1
LP = 18,
LP =
23-19
Example borrowed from MIT 15.053/8
x1 = 0 x1 = 1
LP = 19.8,
LP =
23-20
Example borrowed from MIT 15.053/8
x1 = 0 x1 = 1 x2 = 0 x2 = 1
LP = 17.67,
LP =
23-21
Example borrowed from MIT 15.053/8
x1 = 0 x1 = 1 x2 = 0 x2 = 1
LP = −∞,
LP = infeasible
23-22
Example borrowed from MIT 15.053/8
x1 = 0 x1 = 1 x2 = 0 x2 = 1
23-23
LP, x(i) LP).
◮ if z⋆ ≥ z(i)
LP, prune node (i).
◮ if z⋆ < z(i)
LP and x(i) LP is integral, then prune node (i)
LP, x(i) LP).
◮ if z⋆ < z(i)
LP and x(i) LP is not integral, then branch on a
23-24
◮ If 1 ≤ x ≤ 10, we can branch: 1 ≤ x ≤ 5 and 6 ≤ x ≤ 10. ◮ Can also branch into more than two branches.
◮ If there are many fractional variables in the LP solution,
◮ Some solvers allow you to pick variable order for branching. ◮ Can also branch on constraints.
◮ Aside from LP relaxation, we can also simply remove a
23-25
◮ Can use just one cutting plane or many. ◮ Cutting planes can be designed to provide local bounds
23-26
◮ A branching procedure that partitions the feasible set into
◮ A bounding procedure that provides an upper bound for the
23-27