AI101 Historisch Perspectief Weak Methods Logic Theorist General Problem Solver Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI Kaleidoscoop College 10: Theorem Proving
AI102 Historisch perspectief Theorem proving = automatisch stellingen bewijzen = gebruik van wiskundig preciese representaties: –ondubbelzinnigheid –preciese afleidingsregels –algemene afleidingsregels + besturings-strategie (= zoek-heuristiek) Ook wel genoemd: zwakke methodes, want: –weinig/geen domein-specifieke kennis In tegenstelling tot sterke methodes, zoals kennissystemen: veel domein-specifieke kennis Vb: –Logic Theorist (LT) –General Problem Solver (GPS) –Resolutie-bewijzers
AI103 Logic Theorist (1963) Representatie: Logica Besturing: Achterwaards (goal-driven) + breadth-first Afleidingsregels (Vb): –substitutie: vervang symbool door complexe formule: als (B B) B dan ( A A) A –replacement: vervang connectief door definitie of equivalentie: als (A B) dan ( A B) –detachment: modus ponens als (A B) en A dan B
AI104 Logic Theorist (Vb) Axiom:(A A) (1) Theorem:(p q) (q p) (2) Selecteer een axioma dat matched met theorem: Voer substitutie uit volgens de match (1) met (2): vervang A door (p q): (p q) (p q) (3) Replacement: vervang (q p) door equivalente (p q) (p q) (q p) (4) Dus: (2) is verkregen uit (1) via (3) naar (4)
AI105 Probleem met LT: combinatorische explosie Breadth-first search is niet efficient Menselijk gedrag: “means-end analysis” (end = doel, means = middelen) = probeer steeds regel (“means”) te vinden die de afstand tot het doel (“end”) verkleint (= heuristische functie!) General Problem Solver (GPS)
AI106 General Problem Solver (Vb) Start: ( r p) (r q) (1) Doel: (p q) (2) Match doel met (c):(p X) (X q) (3) Subdoel: (p X) (4) Match (b) met (4): ( p X) (5) Equivalentie: ( p X) (X p) (6) Met X = r is subdoel (4) bereikt Subdoel ( r q) (7) Match (b) met (7): (r q) Alle doelen bereikt
AI107 Moderne stellingenbewijzers als A B en A C dan B C Resolutie-regel Plus unificatie: (Vb) als a(X,1,U) b(X,U) en a(2,Y,V) c(Y,V) dan b(X,U) c(Y,V) met X/2,Y/1,U/V = b(2,U) c(1,U) Unificatie=vind waarden voor zo min mogelijk variabelen zodat twee formules gelijk worden
AI108 Unificatie Unificatie = vind waarden voor zo min mogelijk variabelen zodat twee formules gelijk worden Unificatie (Vb): –a(X)+ a(1)= X/1 –a(X,Y)+ a(U,1)= X/U,Y/1 –a(X,X)+ a(1,Y)= X/1,Y/X= X/1,Y/1 –a(2,X)+ a(X,1)= X/2,X/1=
AI109 Resolutie: bewijsmethode Vertaal probleem naar logica Zet logica in CNF (Clausal Normal Form) Voeg negatie toe van te bewijzen formule Produceer een tegenspraak (= lege clause) Concludeer de te bewijzen formule CNF-omzetten (eenvoudig) (p q) = ( p q) (p 1 p 2 q) = ( p 1 p 2 ) q) = ( p 1 p 2 q)
AI1010 Resolutie (Vb1): bewijs a uit Ax1-Ax6 e f Ax4 dAx5 fAx6 a b cAx1 bAx2 c d eAx3 anegatie:7 b c 1+ 7 8 c 2+ 8 9 d e 3+ 9 10 e 5+10 11 f 4+11 12 6+12 13 inconsistentie 1-7, maar 1-6 zijn axioma’s 7 niet geldig a geldt
AI1011 Resolutie, Vb1, andere notatie a b c (1) a (7) b c (8) b (2) c (9) c d e (3) d e (10) d (5) e (11) e f (4) f (12) f (6) (13)
AI1012 Resolutie, Vb2: “Slimme, rijke mensen zijn gelukkig. Mensen die lezen zijn slim. Lynda kan lezen en is rijk. Gelukkige mensen zijn tevreden. Vraag: Is er iemand tevreden?” x: slim(x) rijk(x) gelukkig(x) x: leest(x) slim(x) leest(lynda) rijk(lynda) x: gelukkig(x) tevreden(x) Vraag: x: tevreden(x) slim(x) rijk(x) gelukkig(x) leest(x) slim(x) leest(lynda) rijk(lynda) gelukkig(x) tevreden(x) x: tevreden(x) = x: tevreden(x) = tevreden(x)
AI1013 Resolutie, Vb2 tevreden(w) gelukkig(z) tevreden(z) gelukkig(z) w/z slim(x) rijk(x) gelukkig(x) slim(x) rijk(x) z/x leest(y) slim y) rijk(y) leest(y) x/y rijk(lynda) y/lynda leest(lynda)
AI1014 Resolutie, Vb2, andere oplossing gelukkig(z) tevreden(z) slim(x) rijk(x) gelukkig(x) tevreden(x) slim(x) rijk(x) leest(y) slim y) tevreden(x) leest(x) rijk(x) rijk(lynda) tevreden(lynda) leest(lynda) tevreden(lynda) tevreden(w) w/lynda
AI1015 Resolutie is zoekproces Voorwaards Achterwaards
AI1016 Clausal Form (= conjunctie van disjuncties) Verwijder implicaties –(p q) = ( p q) Negaties “naar binnen” – p q) = p q – p q) = p q conjunctie “naar buiten” –r p q) = r p) r q) (resultaat: conjunctie van clauses) Opsplitsen van clauses: – p 1 p 2 ) q 1 q 2 ) = p 1 p 2 ), q 1 q 2 ) Geef elke clause unieke variabelen: – p 1 (x) p 2 (x)), q 1 (x) q 2 (x))= p 1 (x) p 2 (x)), q 1 (y) q 2 (y))
AI1017 Clausal Form (2) Gebruik vereenvoudigingsregels: – p p) = p p) = p = p – p q) = q p), p q) = q p) – p q) r = p (q r), p q) r = p (q r) Regels herhaald toepassen op resultaat: – p (q r) = p (q r) = p ( q r) = p ( q r) Soms meerdere mogelijkheden met zelfde resultaat ((p q) r) s= ((p r) (q r)) s= ((p r s) (q r s)) ((p q) r) s= ((p q) (r s) = ((p r s) (q r s))
AI1018 Zoekstrategiën voor resolutie Unit resolution strategy: Minstens één van de ouders moet een unit clause zijn (= clause van lengte 1) Door unit-resolutie worden clauses “kleiner” gebruik aantal literals als heuristische functie
AI1019 Unit Resolution Strategie, Vb gelukkig(x) tevreden(x) tevreden(y) gelukkig(x) slim(z) rijk(z) gelukkig(z) slim(x) rijk(x) rijk(lynda) slim(lynda) leest(w) slim(w) leest(lynda) incomplete strategie! !
AI1020 Zoekstrategieën voor resolutie (2) Linear Input Form = gebruik alleen: doel (of afstammeling) + axioma gebruik niet:twee afstammelingen of twee axioma’s Axioma Doel wel toegestaan niet toegestaan backwards, goal-driven
AI1021 Volgende keer Machinaal leren: