1 / 38

Control Algorithms 2 Chapter 6

Control Algorithms 2 Chapter 6. Production Systems. Emil Post (40’s): production systems as a formal theory of computation. Equivalent to a Turing machine. Set of rewrite rules for strings. Newell and Simon (60’s, 70’s, 80’s): General Problem Solver

vivian
Download Presentation

Control Algorithms 2 Chapter 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Control Algorithms 2Chapter 6 Production Systems

  2. Emil Post (40’s): production systems as a formal theory of computation. Equivalent to a Turing machine. Set of rewrite rules for strings. • Newell and Simon (60’s, 70’s, 80’s): General Problem Solver • John Anderson, Newell and Simon (80’s): learning models, ACT*, SOAR • Everyone (80’s): Expert systems A Model of Computation

  3. Set of rewrite rules S  NP VP LHS: Condition PartRHS: Action Part Components

  4. Working Memory --Contains the current state of the world--Contains pattern that is matched against the condition of the production --When a match occurs, an action is performed Components

  5. Recognize-Act Cycle --Isolate a subset of productions whose conditions match patterns in working memory: conflict set --Choose one of them ---Fire ---Change contents of working memory --Stop when there are no matches Components

  6. Productions • N  0N0 • N  1N1 • N  0 • N  1 • N  λ Iteration Working Memory Conflict Set Fired 0 N 1,2,3,4,5 1 1 0N0 1,2,3,4,5 1 2 00N00 1,2,3,4,5 2 3 001N100 1,2,3,4,5 3 4 0010100 Example: Production system to generate the set of palindromes over the alphabet {0,1}

  7. Given a 3X3 matrix • What squares can a knight land on What values of X, Y satisfy mv(X,Y) X,Y are elements of {1,2,…,9) 1. mv(1,8) 7. mv(4,9) 13. mv(8,3) 2. mv(1,6) 8. mv(4,3) 14. mv(8,1) 3. mv(2,9) 9. mv(6,1) 15. mv(9,2) 4. mv(2,7) 10. mv(6,7) 16. mv(9,4) 5. mv(3,4) 11. mv(7,2) 6. mv(3,8) 12. mv(7,6) 3 1 2 Knight’s Tour As a Production System 4 5 6 7 8 9

  8. The General Case

  9. 1. Every expression of the form mv(x,y) becomes on(x)  on(y) 2. Use no path expression 3. Working memory is the current state and goal state 4. Conflict set is the set of rules that match the current state 5. Apply all rules until the current state equals the goal state Changes

  10. 1. mv(1,8) 7. mv(4,9) 13. mv(8,3) • 2. mv(1,6) 8. mv(4,3) 14. mv(8,1) • 3. mv(2,9) 9. mv(6,1) 15. mv(9,2) • 4. mv(2,7) 10. mv(6,7) 16. mv(9,4) • 5. mv(3,4) 11. mv(7,2) • 6. mv(3,8) 12. mv(7,6) • 1. on(1) -> on(8) 7. on(4) -> on(9) 13. on(8) -> on(3) • 2. on(1) -> on(6) 8. on(4) -> on(3) 14. on(8) -> on(1) • 3. on(2) -> on(9) 9. on(6) -> on(1) 15. on(9) -> on(2) • 4. on(2) -> on(7) 10. on(6) -> on(7) 16. on(9) -> on(4) • 5. on(3) -> on(4) 11. on(7) -> on(2) • 6. on(3) -> on(8) 12. on(7) -> on(6) Productions

  11. Iteration --Working Memory-- Conflict Set Fired Current Goal 0 1 2 1,2 1 1 8 2 13,14 13 2 3 2 5,6 5 3 4 2 7,8 7 4 9 2 15,16 15 5 2 2 Halt Can We Get from 1 to 2?

  12. path(1,2) {1/x,2/y} mv(1,z)^path(z,2) {8/z} mv(1,8)^path(8,2) mv(8,z)^path(z,2) {3/z} mv(8,3)^path(3,2) mv(3,z)^path(z,2) {4/z} mv(3,4)^path(4,2) mv(4,z)^path(z,2) {9/z} mv(4,9)^path(9,2) mv(9,z)^path(z,2) {2/z} mv(9,2)^path(2,2) t t t t t Pattern Search Now look at working memory in the production system

  13. Production System Pattern Search Productions mv working memory path(X,Y) Fire lowest numbered production Choose first rule that unifies Conclusion: Production Systems and pattern search are almost equivalent Equivalences

  14. Production systems have no loop detection mechanism Solution: Invent two new productions • assert(X) causes X to be stored in WM • been(X) is T if X has been visited • assert(been(X)) records in wm that we’ve already visited X Almost?

  15. Can be expressed in PC notation like this

  16. Iteration --Working Memory-- Conflict Set Fired Current Goal been 0 1 7 1 1,2 1 1 8 7 8 13,14 13 2 3 7 3 5,6 5 3 4 7 4 7,8 7 4 9 7 9 15,16 15 5 2 7 2 3,4 3 (firing 3 causes been(9) to fail) 2 7 2 4 4 7 7 7 Notice that this search is data driven Can We Get from 1 to 7?

  17. Instead of starting with current state=1 and goal = 7 Start with current state = 7 and goal = 1 Can Also Be Goal Driven

  18. What about 8x8? Either enumerate all moves or encode them 8 possible situations • d(2),r(1) 5. u(2),r(1) • d(2),l(1) 6. u(2),l(1) • d(1),r(2) 7. u(1),r(2) • d(1),l(2) 8. u(1),l(2) Works great for a 3x3 matrix

  19. Situation have preconditions: Pre: row <=6, col <=7 Situation 1: d(2),r(1) Requires 4 new functions sq(r,c) returns cell number, left to right, top to bottom where r is row number, c is column number plus(r,2) returns r + 2 eq(X,Y) T if X = Y lte(X,Y) T if X<=Y Not applicable everywhere

  20. mv(sq(R,C),sq(Nr,Nc))  lte(R,6)^eq(Nr,plus(R,2)) ^lte(C,7) ^eq(Nc,plus(c,1) There are 7 more just like this Encoding of situation 1: d(2),r(1)

  21. Control Loop for Knight’s Tour

  22. Said to model human cognition • Separation of knowledge from control • Natural mapping onto state space search • Modularity of production rules • Simple Tracing and explanation—compare a rule with a line of c++ code • Language independence Strength of Production Systems

  23. Production systems are easily rendered in prolog We’ll consider several versions of the knight’s tour But

  24. Global Record of Squares Visited

  25. Put Squares Visited on a List

  26. Use a Stack to Display Path to Goal

  27. Use of Queue to Keep Track of Visited Squares

  28. Try: path(1,W) • 1 is on the stack • Base case succeeds: w = 1 • Now path1 is invoked, Start = 1 • Move(1,6) succeeds, stack: [6,1] • Base case succeeds: w = 6, path is 1,6 • Now path1 invoked:, Start = 6 • Move (6,1) fails because 1 has been visited • Move(6,7) succeeds: stack:[7,6,1] • Base case succeeds: w = 7, path is 1,6,7 • This process continues until all possible states have been visited • Occurs when path is 1,6,7,2,9,4,3,8 • Now we backtrack from 8 • But everything has been tried until we return to second move predicate starting with 1 (move(1,8)) • Now we go through the entire process again Display Backtracking

  29. ! • Always succeeds the first time it is encountered • When backtracked to, it causes the entire goal in which it was contained to fail Without ! (4 2 path moves) With ! (2 2 path moves, because the first move cannot be backtracked to) Cut

  30. A farmer (f) has a dog (d), a goat (g),and a cabbage (c) • A river runs North and South • The farmer has a boat that can hold only the farmer and one other item • Without the farmer • The goat will eat the cabbage • The dog will eat the goat • How does the farmer (and his cohort) cross the river Farmer Problem

  31. Define a predicate: state(F,D,G,C) Where F,D,G,C can be set to e or w indicating the side of the river each is on.

  32. st(w,w,w,w) st(e,e,w,w) st(e,w,e,w) s(e,w,w,e) st(w,w,e,w) s(e,e,e,w) st(e,w,e,e) etc. As State-Space

  33. st(e,e,-,-)  st(w,w,-,-) Means Farmer and dog went from east to west Can be rewritten: mv(st(X,X,G,C),st(Y,Y,G,C)) Constructing a Move Predicate

  34. opp(e,w) • opp(w,e) Giving mv(st(X,X,G,C),st(Y,Y,G,C)) :- opp(X,Y). opp(e,w). opp(w,e). Facts

  35. Suppose: st(e,e,G,C) mv(st(X,X,G,C), st(Y,Y,G,C)) :- opp(X,Y). opp(e,w). opp(w,e). w,w mv(st(e,e,G,C),st(Y,Y,G,C)) opp(X,Y) {e/X, w/Y) opp(e,w) This is one of 4 move predicates (3 items to move + return trip alone) In Motion

  36. Goat and cabbage are together • unsafe(st(X,D,Y,Y)) if x != y • unsafe(st(X,D,Y,Y)) :- opp(X,Y) • Dog and goat are together • Unsafe(st(X,Y,Y,C) if x != y • Unsafe(st(X,Y,Y,C) :- opp(X,Y) Unsafe

  37. mv(st(X,X,G,C),st(Y,Y,G,C)) :- opp(X,Y), not(unsafe(st(Y,Y,G,C))). Never move to an unsafe state

  38. Use the stack mechanism from Knight3 Farmer Problem Traversal Mechanism

More Related