Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 11: Tree Search © J. Christopher Beck 2008.

Similar presentations


Presentation on theme: "Lecture 11: Tree Search © J. Christopher Beck 2008."— Presentation transcript:

1 Lecture 11: Tree Search © J. Christopher Beck 2008

2 Outline Generate-and-test Partition Relaxation Inference
© J. Christopher Beck 2008

3 Readings P Ch B.3, B.4 J. Hooker, Integrated Methods for Optimization, 2007 © J. Christopher Beck 2008

4 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

5 Idea #1: Partitioning Easy problem Total Search Space
© J. Christopher Beck 2008 Total Search Space

6 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

7 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

8 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

9 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

10 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

11 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

12 Partitioning + Relaxation
Easy problem © J. Christopher Beck 2008 Total Search Space

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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


Download ppt "Lecture 11: Tree Search © J. Christopher Beck 2008."

Similar presentations


Ads by Google