CS 385 Fall 2006 Chapter 3 Structures and

  • Slides: 45
Download presentation
CS 385 Fall 2006 Chapter 3 Structures and Strategies for State Space Search 1

CS 385 Fall 2006 Chapter 3 Structures and Strategies for State Space Search 1

Where are we? Predicate calculus: – a way to describe objects and relationships Inference

Where are we? Predicate calculus: – a way to describe objects and relationships Inference rules: – a way to infer new knowledge, defining a state space that is searched to find a solution to a problem Strategy – generate all possible elements of the state space and see if your answer is there – works for tic-tac-toe – doesn't work for chess Goal: intelligent ways to search a state space Tool: state space graphs. 2

Famous example: Konigsburg bridge problem Is there a walk that crosses each bridge exactly

Famous example: Konigsburg bridge problem Is there a walk that crosses each bridge exactly once? Can we represent this in a better way? 3

Graph of the Königsberg bridge system: Predicate calculus representation: connect(i 1, i 2, b

Graph of the Königsberg bridge system: Predicate calculus representation: connect(i 1, i 2, b 1). . 4

Euler's Proof A node is odd or even depending on the number of arcs

Euler's Proof A node is odd or even depending on the number of arcs leading into it Odd degree nodes can only be at the beginning of the path A walk must contain 0 or 2 odd nodes (why? ) Is there a path? Does predicate calculus suffice for this argument? No, no notion of odd/even We need graph theory to do more with this. 5

What are N, A, S, and GD for tic-tac-toe? N could be all possible

What are N, A, S, and GD for tic-tac-toe? N could be all possible configurations of 0 s and 1 s or just reachable ones. A: allowable moves between boards S: empty board, GD winning boards 6

The 8 Puzzle N = 3 x 3 configurations of tiles 1 -8 and

The 8 Puzzle N = 3 x 3 configurations of tiles 1 -8 and 1 blank Start state: Goal state: Arcs: move the blank up/down/left/right 7

Figure 3. 6: State space of the 8 -puzzle generated by “move blank” operations.

Figure 3. 6: State space of the 8 -puzzle generated by “move blank” operations. Is this like tic-tac toe? No, you might go around in circles 8

Traveling Salesperson N= cities A = paths between cities with weights (mileage, time, cost)

Traveling Salesperson N= cities A = paths between cities with weights (mileage, time, cost) S = home GD = home Path: visit each exactly once Goal: minimize something 9

Figure 3. 8: Search of the traveling salesperson problem. Each arc is marked with

Figure 3. 8: Search of the traveling salesperson problem. Each arc is marked with the total weight of all paths from the start node (A) to its endpoint. 10

Traveling Salesperson How many potential paths? Can we solve this for 50 states? Of

Traveling Salesperson How many potential paths? Can we solve this for 50 states? Of great interest to people who like algorithms because it gets large so fast. Exhaustive search out of the question 11

Figure 3. 9: The traveling salesperson problem with the nearest neighbor path in bold.

Figure 3. 9: The traveling salesperson problem with the nearest neighbor path in bold. Note that this path (A, E, D, B, C, A), at a cost of 550, is not the shortest. The comparatively high cost of arc (C, A) defeated the heuristic. 12

Data- versus Goal-Driven for Finding a Route from Aurora to LA Where you start.

Data- versus Goal-Driven for Finding a Route from Aurora to LA Where you start. E. g. routes from Aurora to LA Data driven (forward chaining) From Aurora one can get to x, y, z. . . From x one can get to. . From y one can get to. . . Keep checking to see if LA ends up in one of the destinations Goal driven (backward chaining) One can get to LA from x, y, z. . . One can get to x from. . One can get to y from Keep checking to see if Aurora ends up in one of the sources 13

Better examples Lineage: am I related to Reverend Thomas Carter? Which is better, data

Better examples Lineage: am I related to Reverend Thomas Carter? Which is better, data or goal driven? Could I prune extraneous paths? Is this the same as "Am I related to Thomas Jefferson"? 14

Medical Diagnosis "Do I have strep throat" vs. "What disease do I have" strep

Medical Diagnosis "Do I have strep throat" vs. "What disease do I have" strep symptoms vs. lots of symptoms take a culture vs. run a spectrum of tests Which is data-driven/forward chaining? Which is goal-driven/backward chaining? 15

Backtracking A technique for systematically trying all paths through a state space. Begin at

Backtracking A technique for systematically trying all paths through a state space. Begin at start and pursue a path until goal or dead end If dead end, backtrack to most recent node with unexamined siblings E. g. is 6 in this tree? 1 Possible trials: 2 4 1 2 4 5 3 6 3 5 6 1 3 7 6 1 3 6 7 How do we pick the "best" path? 16

Function backtrack algorithm (general, no examination order specified) typo in book, p should be

Function backtrack algorithm (general, no examination order specified) typo in book, p should be ≠ CS: current state SL: states in current path NSL states awaiting evaluation DE: dead ends 17

A trace of backtrack on the graph of figure 3. 12 18

A trace of backtrack on the graph of figure 3. 12 18

A trace of backtrack on the graph of figure 3. 12 19

A trace of backtrack on the graph of figure 3. 12 19

A trace of backtrack on the graph of figure 3. 12 20

A trace of backtrack on the graph of figure 3. 12 20

A trace of backtrack on the graph of figure 3. 12 21

A trace of backtrack on the graph of figure 3. 12 21

Observations No order is specified for adding nodes to NSL (opportunity for intelligence) SL

Observations No order is specified for adding nodes to NSL (opportunity for intelligence) SL gives us the path to the current solution (hence to the goal at the end) When C is the current state, F is not added to NSL (because it is in DE) 22

How used on a maze? ifgoal return success else try north try east try

How used on a maze? ifgoal return success else try north try east try south try west backtrack Track: • where you are • where you can go from each state • where you came from • visited states 23

Function breadth_first search algorithm X is CS in backtrack, closed = DE + SL

Function breadth_first search algorithm X is CS in backtrack, closed = DE + SL 24

breadth_first_search on Figure 3. 13 open [A] [B C D] [C D E F]

breadth_first_search on Figure 3. 13 open [A] [B C D] [C D E F] [D E F G H] [E F G H I J] [F G H I J K L] [G H I J K L M] [H I J K L M N] [I J K L M N O P] [J K L M N O P Q] [K L M N O P Q R] closed [] [A] [B A] [C B A] [D C B A] [E D C B A] [F E D C B A] [G F E D B C A] [F T L S K E B A] [M F T L S K E B A] [J M F T L S K E B A] 25

Observations Cleaner But no path to start state Solution: associate the parent with each

Observations Cleaner But no path to start state Solution: associate the parent with each node. E. g. [B, C, D] → [(B, A), (C, A), (D, A)] [C, D, E, F] → [(C, A), (D, A), (B, A), (F, B)] Is the first algorithm ever better? 26

depth_first_search on Figure 3. 13 Put new nodes at the beginning of the open

depth_first_search on Figure 3. 13 Put new nodes at the beginning of the open list. open closed [A] [] [B C D] [A] [E F C D] [B A] [K L F C D] [E B A] [S L F C D] [K E B A] [L F C D] [S K E B A] [T F C D] [L S K E B A] [F C D] [T L S K E B A] [M C D] [F T L S K E B A] [C D] [M F T L S K E B A] [G H D] [C M F T L S K E B A] 27

Comparison BFS finds the shortest path DFS gets quickly into a deep search space

Comparison BFS finds the shortest path DFS gets quickly into a deep search space good if you know the solution is "far away" wrong path: inefficient DFS with iterative deepening use a depth bound retreat at the bound no luck: increase the bound Later: use knowledge about the problem to order nodes on the open list 28

Using State Space to Represent Predicate Calculus node: state of the problem arc: inference

Using State Space to Represent Predicate Calculus node: state of the problem arc: inference search: to decide if an assertion is implied by others q→p p r→p v→q q s→r r t→r v t u s s→u s, t Determining truth: path from boxed nodes to proposition Data-driven: start with boxed; goal-driven: start with goal. DFS or BFS? 29

Is p true? BFS p open closed [t s] [] [s r] [t] [r

Is p true? BFS p open closed [t s] [] [s r] [t] [r u] [s t] [u p] [r s t] [p] [u r s t] q r v u t s 30

Is p true? DFS p open closed [t s] [] [r s] [t] [p

Is p true? DFS p open closed [t s] [] [r s] [t] [p u] [r t] q r v u t s 31

And/Or Graphs in the graph above t s →r: r t s To express

And/Or Graphs in the graph above t s →r: r t s To express t s →r, connect incoming arcs r t s 32

Example 3. 3. 2 a Graph? b c a b→d a c→e b d→f

Example 3. 3. 2 a Graph? b c a b→d a c→e b d→f f→g a e→h 33

Example 3. 3. 2 a b c a b→d a c→e b d→f f→g

Example 3. 3. 2 a b c a b→d a c→e b d→f f→g a e→h 34

Search for h: Goal-directed: h: try to prove a and e a is true

Search for h: Goal-directed: h: try to prove a and e a is true e is true if c and a a is true c is true ← e is true ← h is true Data-directed: a, b, c are true a and b → d a and c → e a and e → h 35

Symbolic Integration MACSYMA Symbolic algebra, including integration http: //integrals. wolfram. com/index. jsp How do

Symbolic Integration MACSYMA Symbolic algebra, including integration http: //integrals. wolfram. com/index. jsp How do you think this works? Decomposition using and/or graphs ∫f + g decomposes to ∫f and ∫g More complicated expressions decompose into possible transformations Graph is generated on the fly Goal-directed How is it searched? BFS? DFS? 36

Figure 3. 24: 37

Figure 3. 24: 37

And/Or for Financial Advisor? 38

And/Or for Financial Advisor? 38

Figure 3. 26: And/or graph for the financial advisor 39

Figure 3. 26: And/or graph for the financial advisor 39

Five rules for a simple subset of English grammar (rewrite rules): Does 1 look

Five rules for a simple subset of English grammar (rewrite rules): Does 1 look like AND? Do 2 and 3 this look like OR? Construct the graph 40

Figure 3. 27: And/or graph for the grammar of Example 3. 3. 6. How

Figure 3. 27: And/or graph for the grammar of Example 3. 3. 6. How do we use this? A sentence is well-formed if it consists of terminal symbols and there is a series of substitutions that reduce it to the sentence symbol 41

Figure 3. 28: Parse tree for “The dog bites the man. ” Note that

Figure 3. 28: Parse tree for “The dog bites the man. ” Note that this is a subtree Figure 3. 26. 42

Parse "the dog bites the man" 7: art ↔ the gives art dog bites

Parse "the dog bites the man" 7: art ↔ the gives art dog bites the man 7: art ↔ the gives art dog bites art man 8: n ↔ man gives art dog bites art n* 3: np ↔ art n gives art dog bites np** 9: n ↔ dog gives art n bites np 3: np↔ art n gives np bites np 11: v ↔ bites gives np v bites 5: vp ↔ v np gives np vp 1: sentence ↔ np vp. . . * Why isn't dog rewritten first? ** Why didn't 11 fire instead: v ↔ bites gives art n v the man 43

Parse "dog the man" 7: art ↔ the gives dog art man 8: n

Parse "dog the man" 7: art ↔ the gives dog art man 8: n ↔ man gives dog art man 9: n ↔ dog gives n art n There are no rules that rewrite this How does the C++ compiler work? Can you write a grammer for C++? program ↔ declarations body. . . 44

Figure 3. 29: 45

Figure 3. 29: 45