Download presentation
Presentation is loading. Please wait.
Published byRandolph Sydney Banks Modified over 9 years ago
1
Control Algorithms 1 Chapter 6 Control Algorithms 1 Chapter 6 Pattern Search
2
So Far ◦Problem solving: search through states ◦Predicate calculus: medium for describing states ◦Sound inference: method for generating new states ◦Formal search techniques: BT,DF,BF ◦Reducing search space Heuristic search AB pruning Passed over stochastic methods: will be explored in machine learning units
3
Next ◦Further search techniques that are part of AI Pattern search Production systems
4
Problem with Predicate Calculus No mechanism for applying rules Task --Develop a general search procedure for predicate calculus by applying recursive search to a space of logical inferences --Basis for prolog
5
Knight’s Tour Given a 3X3 matrix One move paths (place on board) 123 4 56 7 89 mv(1,8)mv(4,9) mv(8,3) mv(1,6)mv(4,3) mv(8,1) mv(2,9)mv(6,1) mv(9,2) mv(2,7)mv(6,7) mv(9,4) mv(3,4)mv(7,2) mv(3,8)mv(7,6)
6
Two-Move Paths (Place on board)
7
Three Move Paths There is a three move path from x to y if there is a 1 move path from x to some state z and a two move path from z to y (Place on board)
8
Example: path3(1,4) path3(1,4) {1/x,4/y) mv(1,z)^path2(z,4) prove 1 st conjunct {8/z} mv(1,8)^path2(8,4) 1 st conjunct is T, prove 2 nd conjunct {8/x,4/y} mv(8,z)^mv(z,4) prove 1 st conjunct {3/z} mv(8,3)^mv(3,4) both conjuncts are T T T T
9
What if mv(8,1) appeared before mv(8,3)? path3(1,4) {1/x,4/y) mv(1,z)^path2(z,4) {8/z} mv(1,8)^path2(8,4){8/x,4/y} mv(8,z)^mv(z,4){1/z} mv(8,1)^mv(1,4) f backtrack mv(8,z)^mv(z,4) {3/z} mv(8,3)^mv(3,4) T
10
To Generalize We have 1 move paths, 2 move paths, three move paths and, in general, But how do we stop?
11
Base Case
12
Produces an endless loop Suppose, again, that mv(8,1) appears before mv(8,3) path(1,4) mv(1,z)^path(z,4) {8/z} mv(1,8)^path(8,4) mv(8,z)^path(z,4) {1/z} mv(8,1)^path(1,4)
13
Solution Global Closed List: If a path has been tried, don’t retry path(1,4) mv(1,z)^path(z,4) {8/z} mv(1,8)^path(8,4) mv(8,z)^path(z,4) {1/z} mv(8,1)^path(1,4) Backtrack mv(8,z)^path(z,4) {3/z} mv(8,3)^path(3,4) mv(3,z)^path(z,4) {4/z} mv(3,4)^path(4,4) T T
14
Leads To: Pattern Search Goal Directed Depth First Control Structure Basis of Prolog Goal: return the substitution set that will render the expression true.
15
Here’s the Surprise Found on pp. 198-99 We’ve been running the algorithm informally all along
17
Six Cases: 1 - 3 1. If Current Goal is a member of the closed list --return F, Backtrack 2. If Current Goal unifies with a fact --Current Goal is T 3. If Current Goal unifies with a rule conclusion --apply unifying substitutions to the premise --try to prove premise --if successful, T
18
Six Cases: 4 - 6 4. Current Goal is a disjunction --Prove each disjunct until you exhaust them or find one that is T. 5. If Current Goal is a conjunction --try to prove each conjunct --if successful, apply substitutions to other conjuncts --if unsuccessful, backtrack, trying new substitutions until they are exhausted 6. If Current Goal is negated (~p) --Try to prove p --If successful, current goal is F --If unsuccessful, current goal is T --In the algorithm, returned substitution set is {} when ~p is true, because the algorithm failed to find a substitution set that would make p true (i.e., ~p is T only when p is F)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.