70 likes | 203 Vues
This supplemental material offers a comprehensive overview of first-order logic syntax, atomic sentences, and logical connectives. It discusses quantifiers, variables, and predicates with practical examples, including kinship relations and the Minesweeper game. The document also describes the functioning of a knowledge-based agent that utilizes perception to return actions. Key axioms and predicates for the Minesweeper game illustrate the relationship between the environment and actions, providing foundational knowledge for CSE 327 students under Prof. Jeff Heflin.
E N D
Ch. 8 – First Order Logic Supplemental slides for CSE 327 Prof. Jeff Heflin
Syntax of First-Order Logic Sentence AtomicSentence | (Sentence Connective Sentence) | Quantifier Variable,… Sentence | Sentence AtomicSentence Predicate(Term,…) | Term = Term Term Function(Term,…) | Constant | Variable Connective | | | Quantifier | From Figure 8.3, p. 247
Kinship Domain A1: x Male(x) Female(x) A2: w,h Husband(h,w) Male(h) Spouse(h,w) A3: x,y Spouse(x,y) Spouse(y,x) A4: p,c Parent(p,c) Child(c,p) A5: x,y Parent(x,y) Ancestor(x,y) A6: x,y,z Ancestor(x,y) Parent(y,z) Ancestor(x,z) A7: x,y Sibling(x,y) xyp Parent(p,x) Parent(p,y)
Knowledge-Based Agent function KB-AGENT(percept) returns an actionstatic: KB, counter t=0 TELL(KB, MAKE-PERCEPT-SENTENCE(percept, t)) action ASK(KB, MAKE-ACTION-QUERY(t)) TELL(KB, MAKE-ACTION-SENTENCE(action, t))t t + 1return action From Figure 7.1, p. 196
Minesweeper PEAS Description • Performance Measure • percentage of mines found • Environment • NxM grid with random placement of mines • Actuators • choose a square • Sensors • chosen square has x adjacent mines • or uncover mine and lose game
Minesweeper Predicates • Environment • Mine(s) • square s has a mine in it • Sensing • NearbyMines(s,k) • square s has k adjacent mines • Cleared(s) • square s is safe (didn’t uncover a mine)
Minesweeper Axioms • Cleared(s) Mine(s) • s,r NearbyMines(s,0) Adjacent(s,r) Mine(r) • s NearbyMines(s,1) r Adjacent(s,r) Mine(r) (t Adjacent(s,t) Mine(t) r=t) • also need 6 other rules for 1<k<8 • s,r NearbyMines(s,8) Adjacent(s,r) Mine(r) • x,y,a,b Adjacent([x,y],[a,b]) (a=x+1 a=x a=x-1) (b=y b=y+1 b=y-1) (ax ay) Legal([x,y]) Legal([a,b]) • x,y Legal([x,y]) x > 0 y > 0 x N y M