1 / 19

Normal Forms and Resolution in FOL

Normal Forms and Resolution in FOL. automated reasoning with predicates. Conjunctive normal form. KB must be in CNF for resolution conjunction of disjunctions of predicates or negations. 1a. eliminate <=> A <=> B A => B ^ B => A 1b. eliminate => A => B ~A  B. reduction to CNF .

marina
Télécharger la présentation

Normal Forms and Resolution in FOL

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. Normal Forms and Resolutionin FOL automated reasoning with predicates

  2. Conjunctive normal form • KB must be in CNF for resolution • conjunction of disjunctions of predicates or negations D Goforth - COSC 4117, fall 2003

  3. 1a. eliminate <=> A <=> B A => B ^ B => A 1b. eliminate => A => B ~A  B

  4. reduction to CNF 1. eliminate => and <=> 2. move negatives inward to predicates 3. Standardize apart variables 4. Skolemize (eliminate existentials) 5. Drop universals (assumed for variables) 6. Distribute conjunction over disjunction 7. Standardize apart again if necessary D Goforth - COSC 4117, fall 2003

  5. example reduction(Luger and Stubblefiled, 1993) • All people who are smart and not poor are happy. Those people who read are not stupid. Happy people have exciting lives. John can read and is wealthy. Can anyone be found who has an exciting life? D Goforth - COSC 4117, fall 2003

  6. All people who are smart and not poor are happy. Those people who read are not stupid. Happy people have exciting lives. John can read and is wealthy. Can anyone be found who has an exciting life? • x (Smart(x)  ~Poor(x)) => Happy(x) • x Read(x) => ~Stupid(x) • x Happy(x) => Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • also need general knowledge • ?

  7. All people who are smart and not poor are happy. Those people who read are not stupid. Happy people have exciting lives. John can read and is wealthy. Can anyone be found who has an exciting life? • x (Smart(x)  ~Poor(x)) => Happy(x) • x Read(x) => ~Stupid(x) • x Happy(x) => Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • also need general knowledge • x Wealthy(x) <=> ~Poor(x) • x Smart(x) <=> ~Stupid(x)

  8. x (Smart(x)  ~Poor(x)) => Happy(x) • x Read(x) => ~Stupid(x) • x Happy(x) => Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • x Wealthy(x) <=> ~Poor(x) • x Smart(x) <=> ~Stupid(x) • eliminate => and <=> • x ~(Smart(x)  ~Poor(x))  Happy(x)

  9. x (Smart(x)  ~Poor(x)) => Happy(x) • x Read(x) => ~Stupid(x) • x Happy(x) => Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • x Wealthy(x) <=> ~Poor(x) • x Smart(x) <=> ~Stupid(x) • eliminate => and <=> • x ~(Smart(x)  ~Poor(x))  Happy(x) • x ~Read(x)  ~Stupid(x) • x ~Happy(x)  Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • x ~Wealthy(x)  ~Poor(x) • x Wealthy(x)  Poor(x) • x Smart(x)  Stupid(x) • x ~Smart(x)  ~Stupid(x)

  10. x ~(Smart(x)  ~Poor(x))  Happy(x) (2. ~ inwards) • x ~Smart(x)  Poor(x)  Happy(x) • x ~Read(x)  ~Stupid(x) • x ~Happy(x)  Exciting(x) • Read(John)  Wealthy(John) • x Exciting(x) • x ~Wealthy(x)  ~Poor(x) • x Wealthy(x)  Poor(x) • x Smart(x)  Stupid(x) • x ~Smart(x)  ~Stupid(x) 3. standardize apart variables • x ~Smart(x)  Poor(x)  Happy(x) • y ~Read(y)  ~Stupid(y) • z ~Happy(z)  Exciting(z) • Read(John)  Wealthy(John) • v Exciting(v) • u ~Wealthy(u)  ~Poor(u) • t Wealthy(t)  Poor(t) • s Smart(s)  Stupid(s) • r ~Smart(r)  ~Stupid(r)

  11. x ~Smart(x)  Poor(x)  Happy(x) • y ~Read(y)  ~Stupid(y) • z ~Happy(z)  Exciting(z) • Read(John)  Wealthy(John) • v Exciting(v) (4. Skolemize) • Exciting(K) • u ~Wealthy(u)  ~Poor(u) • t Wealthy(t)  Poor(t) • s Smart(s)  Stupid(s) • r ~Smart(r)  ~Stupid(r) 5. Drop universals • ~Smart(x)  Poor(x)  Happy(x) • ~Read(y)  ~Stupid(y) • ~Happy(z)  Exciting(z) • Read(John)  Wealthy(John) • Exciting(K) • ~Wealthy(u)  ~Poor(u) • Wealthy(t)  Poor(t) • Smart(s)  Stupid(s) • ~Smart(r)  ~Stupid(r) 6. Distrubute  over  (none), 7.restandardize apart (none)

  12. Conjunctive normal form • ~Smart(x)  Poor(x)  Happy(x) • ~Read(y)  ~Stupid(y) • ~Happy(z)  Exciting(z) • Read(John) • Wealthy(John) • Exciting(K) • ~Wealthy(u)  ~Poor(u) • Wealthy(t)  Poor(t) • Smart(s)  Stupid(s) • ~Smart(r)  ~Stupid(r) D Goforth - COSC 4117, fall 2003

  13. Resolution with FOL • Predicates can be resolved (positive with negative) only if they can be unified • P(x)  ~Q(x), R(y) ~P(y)Subst({x/y}) ~Q(y)  R(y) (in effect, need to establish that general knowledge applies to facts) D Goforth - COSC 4117, fall 2003

  14. example resolution (continued)(Luger and Stubblefiled, 1993) • All people who are smart and not poor are happy. Those people who read are not stupid. Happy people have exciting lives. John can read and is wealthy. Can anyone be found who has an exciting life? D Goforth - COSC 4117, fall 2003

  15. Question in CNF • ~Smart(x)  Poor(x)  Happy(x) • ~Read(y)  ~Stupid(y) • ~Happy(z)  Exciting(z) • Read(John) • Wealthy(John) • ~Wealthy(u)  ~Poor(u) • Wealthy(t)  Poor(t) • Smart(s)  Stupid(s) • ~Smart(r)  ~Stupid(r) • Show by resolution refutation that: • Exciting(K) D Goforth - COSC 4117, fall 2003

  16. Strategy of Resolution refutation • convert to CNF • assume inverse of question and add to KB • ~x Exciting(x) or x ~Exciting(x) • show by resolution that a contradiction results • refute assumption D Goforth - COSC 4117, fall 2003

  17. Resolution refutation (1) • Assume inverse, add to KB • ~Smart(x)  Poor(x)  Happy(x) • ~Read(y)  ~Stupid(y) • ~Happy(z)  Exciting(z) • Read(John) • Wealthy(John) • ~Wealthy(u)  ~Poor(u) • Wealthy(t)  Poor(t) • Smart(s)  Stupid(s) • ~Smart(r)  ~Stupid(r) • ~Exciting(k) // assumption – note variable k D Goforth - COSC 4117, fall 2003

  18. ~Exciting(k) ~Happy(z)  Exciting(z) Resolutionrefutation (2) {k/z} ~Happy(k) ~Smart(x)  Poor(x)  Happy(x) {k/x} ~Smart(x)  Poor(x)  Happy(x) ~Read(y)  ~Stupid(y) ~Happy(z)  Exciting(z) Read(John) Wealthy(John) ~Wealthy(u)  ~Poor(u) Wealthy(t)  Poor(t) Smart(s)  Stupid(s) ~Smart(r)  ~Stupid(r) ~Exciting(k) ~Smart(k)  Poor(k) ~Read(y)  ~Stupid(y) {y/s} Smart(s)  Stupid(s) ~Read(y)  Smart(y) {k/y} ~Read(k)  Poor(k) ~Wealthy(u)  ~Poor(u) {John/u} Wealthy(John) {John/k} ~Poor(John) ~Read(John) Read(John) {} nil

  19. Resolution refutation (3) • conflict Read(John) , ~Read(John) => nil • initial assumption of ~x Exciting(x)is wrong • so x Exciting(x) D Goforth - COSC 4117, fall 2003

More Related