Lecture 11: Tree Search © J. Christopher Beck 2008
Outline Generate-and-test Partition Relaxation Inference © J. Christopher Beck 2008
Readings P Ch B.3, B.4 J. Hooker, Integrated Methods for Optimization, 2007 © J. Christopher Beck 2008
Beyond Heuristics What if you want a guarantee of finding the optimal solution? Or, for a satisfaction problem, that no solution exists? Imagine a problem with 3 variables a, b, c є {0, 1} Simplest thing you can think of? © J. Christopher Beck 2008
Idea #1: Partitioning Easy problem Total Search Space © J. Christopher Beck 2008 Total Search Space
Idea #1: Partitioning Add constraint to the original problem to form a partition: P1, P2, P3, … Partitions are easier to solve Partitions, sub-partitions, sub-sub-partitions Solution is the best one from all the partitions © J. Christopher Beck 2008
Idea #1: Partitioning Imagine a problem with 3 variables a, b, c є {0, 1} minimize Branch a = 0 a = 1 b = 0 b = 1 b = 0 b = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 100 90 110 115 80 90 100 110 © J. Christopher Beck 2008
So … By now, if you are thinking about partitioning, you should have a question: (Hint: how many “states” in our generate-and-test example? how many in the tree search?) © J. Christopher Beck 2008
Idea #2: Relaxation Solve a problem that is easier than the real problem Relaxation: expand the search space to allow non-solutions to count as solutions Solution to relaxation is a bound on the real problem no real solution can be better © J. Christopher Beck 2008
Idea #2: Relaxation Imagine I have a way to calculate a lower bound on the cost at each node a = 0 a = 1 50 b = 0 b = 1 b = 0 70 80 Bound c = 0 c = 1 c = 0 85 95 80 100 90 80 © J. Christopher Beck 2008
Branch-and-Bound Partition + Relaxation Use heuristics to pick a decision to try (“branch”) partition Use lower bounds on solutions to “bound” the search solve a relaxation © J. Christopher Beck 2008
Partitioning + Relaxation Easy problem © J. Christopher Beck 2008 Total Search Space
MIP Solving (preview) Relaxation Partition solve LP, ignoring integrality gives lower bound (for a minimization problem) Partition add linear constraints to force a non-integral integer variable up or down use relaxation in branching! © J. Christopher Beck 2008
One of the constraints: b < a Idea #3: Inference Imagine a problem with 3 variables a, b, c є {0, 1} minimize One of the constraints: b < a a = 0 a = 1 b = 0 b = 1 b = 0 b = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 100 90 110 115 80 90 100 110 © J. Christopher Beck 2008
One of the constraints: b < a Idea #3: Inference Imagine a problem with 3 variables a, b, c є {0, 1} minimize One of the constraints: b < a a = 0 b = 0 b = 1 c = 0 c = 1 100 90 110 115 a = 1 You can infer: a = 0, b = 1 b = 0 c = 0 c = 1 b = 1 100 110 c = 0 c = 1 80 90 © J. Christopher Beck 2008
Idea #3: Inference Based on the constraints in the current partition, derive new constraints that are implied implied = must be true! Add new constraints to: tighten relaxation reduce partitioning © J. Christopher Beck 2008
Constraint Propagation (preview) 3 variables: v1, v2, v3 D1=D2= {1,3}, D3 = {1,2,3} all-different(v1,v2,v3) each variable must be a different value What can you infer? © J. Christopher Beck 2008
Partition + Relaxation + Inference Until the partition is easy to solve or has no solution: infer and add new constraints calculate relaxation form sub-partitions (Tree) Search = Partition + Relaxation + Inference © J. Christopher Beck 2008
A Very Simple Scheduling Problem Jobs Processing times J0R0[15] J0R1[5] 1 J1R0[10] J1R1[15] Draw complete branch-and-bound tree to minimize makespan Assume that the branches sequence a pair of operations Try J0Rx → J1Rx first © J. Christopher Beck 2008
Getting Started Take “left” branch first … … Jobs Processing times J0R0[15] J0R1[5] 1 J1R0[10] J1R1[15] Take “left” branch first J1R0 J0R0 J0R0 J1R0 ?? … … © J. Christopher Beck 2008
Bounding? Calculate a very simple lower bound at each node Jobs Processing times J0R0[15] J0R1[5] 1 J1R0[10] J1R1[15] Calculate a very simple lower bound at each node Which nodes will not be visited? © J. Christopher Beck 2008