180 likes | 325 Views
Control Algorithms 1 Chapter 6. Pattern Search. 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
E N D
Control Algorithms 1Chapter 6 Pattern Search
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 So Far
Further search techniques that are part of AI • Pattern search • Production systems Next
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 Problem with Predicate Calculus
Given a 3X3 matrix • One move paths (place on board) 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) 1 2 3 Knight’s Tour 5 6 4 7 8 9
(Place on board) Two-Move Paths
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)
path3(1,4) {1/x,4/y) mv(1,z)^path2(z,4) prove 1st conjunct {8/z} mv(1,8)^path2(8,4) 1st conjunct is T, prove 2nd conjunct {8/x,4/y} mv(8,z)^mv(z,4) prove 1st conjunct {3/z} mv(8,3)^mv(3,4) both conjuncts are T T T T Example: path3(1,4)
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 T T What if mv(8,1) appeared before mv(8,3)?
To Generalize We have 1 move paths, 2 move paths, three move paths and, in general, But how do we stop?
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) Produces an endless loop
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 T T Solution
Goal Directed • Depth First Control Structure • Basis of Prolog • Goal: return the substitution set that will render the expression true. Leads To: Pattern Search
Found on pp. 198-99 • We’ve been running the algorithm informally all along Here’s the Surprise
If Current Goal is a member of the closed list --return F, Backtrack • If Current Goal unifies with a fact--Current Goal is T • If Current Goal unifies with a rule conclusion --apply unifying substitutions to the premise --try to prove premise --if successful, T Six Cases: 1 - 3
Current Goal is a disjunction --Prove each disjunct until you exhaust them or find one that is T. • 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 • 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) Six Cases: 4 - 6