Presentation is loading. Please wait.

Presentation is loading. Please wait.

Control Algorithms 2 Chapter 6 Control Algorithms 2 Chapter 6 Production Systems.

Similar presentations


Presentation on theme: "Control Algorithms 2 Chapter 6 Control Algorithms 2 Chapter 6 Production Systems."— Presentation transcript:

1 Control Algorithms 2 Chapter 6 Control Algorithms 2 Chapter 6 Production Systems

2 A Model of Computation 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

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

4 Components 2. 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

5 Components 3. 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

6 Example: Production system to generate the set of palindromes over the alphabet {0,1} Productions 1. N  0N0 2. N  1N1 3. N  0 4. N  1 5. N  λ IterationWorking MemoryConflict SetFired 0N1,2,3,4,51 10N01,2,3,4,51 200N001,2,3,4,52 3001N1001,2,3,4,53 40010100

7 Knight’s Tour As a Production System 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} 12 3 456 7 89 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)

8 The General Case (write on board)

9 Changes 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

10 Productions (write on board) 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)

11 Can We Get from 1 to 2? Iteration--Working Memory-- Conflict Set Fired CurrentGoal 0121,21 18213,1413 2325,65 3427,87 49215,1615 522Halt

12 Pattern Search 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 Now look at working memory in the production system

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

14 Almost? Loop Detection Pattern Search: global list of visited states (closed) Production Systems: Record previously visited states in working memory Two new productions 1. assert(X) causes X to be stored in WM 2. been(X) is T if X has been visited 3. assert(been(X)) records in wm that we’ve already visited X

15 Can be expressed in PC notation like this

16 Can We Get from 1 to 7? Iteration--Working Memory-- Conflict Set Fired Current Goal been 01 711,21 18 7813,1413 23 735,65 34 747,87 49 7915,1615 52 723,43 (firing 3 causes been(9) to fail) 2724427244 777777 Notice that this search is data driven

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

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

19 Not applicable everywhere 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

20 Encoding of situation 1: d(2),r(1) mv(sq(R,C),sq(Nr,Nc))  lte(R,6)^eq(Nr,plus(R,2)) ^ %down two rows lte(C,7)^eq(Nc,plus(c,1)) %right 1 col There are 7 more analogous to this

21 Control Loop for Knight’s Tour

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

23 And (this is the best part) Production systems are easily rendered in prolog We’ll consider several versions of the knight’s tour

24 Record of Squares Visitedknight1

25 Knight2 Put Visited Squares on a List

26 Knight3 Stack Displays Path to Goal

27 Knight4 (continued next class) Queue Displays Path to Goal

28 Cut ! ◦Always succeeds the first time it is encountered ◦When backtracked to, it causes the entire goal in which it was contained to fail Without !Without ! (4 2 path moves from 1) With !With ! (2 2 path moves from 1)

29 Farmer Problem 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

30 State Predicate 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.

31 As State-Space 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.

32 Constructing a Move Predicate 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))

33 Facts 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). Four of these: 3 items to move + 1 solo return trip

34 Unsafe 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)

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

36 Finding a Solution Use Move/Control Technique from Knight3 Farmer Problem


Download ppt "Control Algorithms 2 Chapter 6 Control Algorithms 2 Chapter 6 Production Systems."

Similar presentations


Ads by Google