De stap naar: resolutie

Slides:



Advertisements
Verwante presentaties
AR voor Horn clause logica Introductie van: Unificatie.
Advertisements

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
PM zijn de Principia Mathematica. Deze vormen een formeel systeem voor de wiskunde. Ze zijn beschreven door A.N. Whitehead and B. Russell. Gödel bepaalt.
Hogere-ordefuncties nEen lijst langs lopen en met elk element iets doen nEen lijst langs lopen en sommige elementen selecteren map filter.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
VBA en VBS Een introductie.
Automatisch redeneren en stellingen bewijzen
Automatische Redeneer-systemen
Automatisch Redeneren in de praktijk
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn.
 - congruentie -regel:
Fibonacci & Friends Met dank aan Gerard Tel.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
Een workshop over katten, muizen en nadenken in de Informatica
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Assenstelsels en het plotten van Functies in LOGO
LokWeb en LWB 7 maart 2006 door Hilverd en Maarten.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
Inleidend probleem Data structuur (hiërarchie van classes)
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
ProblemenRedeneren met verstekwaarden Gesloten wereld CircumscriptieLogica met verstekwaarden Autoepistemis che logica Redeneren over kennis: herbekeken.
Datastructuren Sorteren, zoeken en tijdsanalyse
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Tellen van Stemmen … FEB, Studiedag Leraren Wiskunde, 6 mei 2010 Luc Lauwers.
Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere.
AI101  Historisch Perspectief Weak Methods Logic Theorist General Problem Solver  Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
Intermezzo: Queries op zoekbomen Datastructuren. Queries: hoe op te lossen We hebben: – Een zoekboom (gewoon, rood-zwart, AVL,…) – Een vraag / querie.
Coordinaten: Tom Tourwé 10F729 Tel: 3492 Organisatie van de oefeningen: * 1 uur bespreking van oplossing vorige les + bespreking opgave.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
MBR AtT1 College 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie werkelijk.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Stelsels van vergelijkingen H5 deel 3 Hoofdstuk 10 Opgave 61, 62, 63.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
1 februari 2016 PHP expressie statement. 1 februari 2010 Titel van de presentatie 2 Boole logica? Definitie De booleaanse operatoren zijn genoemd naar.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
NP-volledigheid Algoritmiek.
Minimum Opspannende Bomen
Openen op 3-4 niveau Een hand met (erg) veel troeven is geschikt om daarmee nogal wat slagen te maken. Het betekent ook dat de tegenpartij daar niet zoveel.
Recursie in de wiskunde
Grafiek van lineaire formule
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
-calculus versus Scheme
De grafiek van een lineair verband is ALTIJD een rechte lijn.
M A R T X I W K U N E D S 2 M31 Bewijs: de eigenschap van de basis- hoeken in een gelijkbenige driehoek © André Snijers.
Bewijs: de eigenschap van de middelloodlijn van een lijnstuk
Modderdorp UNPLUGGED Bron: csunplugged.org.
Implementatie Zoekboom
Small Basic Console deel 2
SQL Les February 2019.
Automatisch redeneren en stellingen bewijzen
Automatische Redeneer-systemen
AR voor Horn clause logica
Welkom!.
Transcript van de presentatie:

De stap naar: resolutie AR: clausale logica De stap naar: resolutie

Clausale vorm Veralgemeende vorm van de formules: x1 … xk A1  A2 …  Am  B1  B2 …  Bn Horn clauses is het bijzonder geval met m = 1 We veronderstellen dat S = T  {~F} alleen bestaat uit clausale formules. Doel: bewijs dat S inconsistent is.

Voorbeeld: Moore’s probleem Gegeven 3 blokken: Blauw of Rood Bewijs dat er een blauw blok naast een rood blok staat!

Moore’s probleem (2): In clausale vorm: Bewijs: blauw(Blok1) rood(Blok3) blauw(Blok2)  rood(Blok2) naast(Blok1,Blok2) naast(Blok2,Blok1) naast(Blok2,Blok3) naast(Blok3,Blok2) Bewijs: of false  naast(b1,b2)  blauw(b1)  rood(b2) is inconsistent. b1 b2 naast(b1,b2)  blauw(b1)  rood(b2) PROBLEEM: Modus ponens is niet geschikt voor blauw(Blok2)  rood(Blok2) Dit zou een geval-analyse vereisen!

Introductie van negatie in bodies is equivalent: Voorbeeld: hoog_gequalificeerd(x)  phd(x) vroeg_verdienen(x)  ~phd(x) rijk(x)  hoog_gequalificeerd(x) rijk(x)  vroeg_verdienen(x) (1) (2) (3) (4) Waarom equivalent? (2) is equivalent met verdienen(x)  phd(x) vanwege A  ~B  A  B Bewijs: rijk(Ik)

Disjunctie versus negatie in het algemeen: x1 … xk A1  A2 …  Am  B1  B2 …  Bn is equivalent aan: x1 … xk A1  B1  B2 …  Bn  ~A2  …  ~Am of ook aan: x1 … xk Ai  B1  B2 …  Bn  ~A1 .. ..  ~Am Bewijs: A  ~B  A  B en basis relaties tussen ,  and ~ A  ~B  A  B

Het resolutie principe Propositie geval: A1  A2  …  Am  B1  …  B  …  Bn C1  ...  B  …  Ck  D1  D2  …  Dl A1  A2  …  Am  C1  .. ..  Ck  B1  .. ..  Bn  D1  D2  …  Dl Correctheid: duidelijk want: maak van alle andere disjuncten genegeerde body- atomen, pas dan veralgemeende modus ponens toe, breng al die genegeerde body-atomen terug als disjuncten in het hoofd.

Resolutie: predicaten logica A1  A2  …  Am  B1  …  B  …  Bn C1  ...  B’  …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1  .. ..  Ck)   (B1  .. ..  Bn  D1  D2  …  Dl)  waarbij  = mgu(B,B’). Correctheid: door correctheid van het gegronde geval, toegepast op alle instantiaties van deze regel

Opnieuw Moore’s voorbeeld blauw(Blok1) rood(Blok3) blauw(Blok2)  rood(Blok2) naast(Blok1,Blok2) naast(Blok2,Blok1) naast(Blok2,Blok3) naast(Blok3,Blok2) false  naast(b1,b2)  blauw(b1)  rood(b2) blauw(Blok2)  rood(Blok2) rood(Blok2)  naast(Blok2,b2)  rood(b2) rood(Blok2)  naast(Blok2,Blok3) rood(Blok3) rood(Blok2) naast(Blok2,Blok3) false  naast(b1,Blok2)  blauw(b1) false  naast(b1,b2)  blauw(b1)  rood(b2) false  naast(Blok1,Blok2) blauw(Blok1) false  naast(Blok1,Blok2)

Phd voorbeeld factoring hoog_gequal(x)  phd(x) vroeg_verdienen(x)  phd(x) rijk(x)  hoog_gequal(x) rijk(x)  vroeg_verdienen(x) (1) (2) (3) (4) false  rijk(Ik) hoog_gequal(y)  phd(y) vroeg_verdienen(x)  phd(x) vroeg_verdienen(x)  hoog_gequal(x) rijk(y)  hoog_gequal(y) vroeg_verdienen(x)  rijk(x) rijk(y)  vroeg_verdienen(y) rijk(x)  rijk(x) factoring rijk(x) false  rijk(Ik) false 

Factoring: algemeen Zowel: met:  is mgu(B,B’) A1  A2  …  Am  B1  …  B  …  B’ …  Bn (A1  A2  …  Am  B1  …  B  …  …  Bn)  als: met:  is mgu(A,A’) . A1  …  A  …  A’ …  Am  B1  …  Bn (A1  …  A  …  …  Am  B1  …  Bn) 

De nood aan factoring Zonder factoring is resolutie niet volledig ! Voorbeeld: bewijs {(p  ~p)  (q  ~q)} inconsistent Normalizatie: (p  q)  (p  ~q)  (~p  q)  (~p  ~q) Clausale vorm: p  q p  q false  p  q q  p q  q p  p p  q q  p Je kan nooit false  krijgen !!!!

Reden? De lengte van een formule = het aantal atomen (false niet meegerekend): A1  A2  …  Am  B1  …  B  …  Bn C1  ...  B’  …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1  .. ..  Ck)   (B1  .. ..  Bn  D1  D2  …  Dl)  Lengte N M N + M - 2 In het vorige voorbeeld hadden alle formules lengte 2 Je kan NOOIT false  (lengte 0) krijgen !

De resolutie procedure S:= initial theory (inconsistent te bewijzen); Consistent:= false; Inconsistent:= false; While not(Consistent) and not(Inconsistent) do If false   S Then Inconsistent := true Else If S contains no pair (F,G) resolvable and not yet resolved Then Consistent:= true Else SELECT a pair (F,G) from S, resolvable and not yet resolved; H:= factor( resolvent (F,G) ); S:= S  {H} End-while

Gedrag onder Horn clause resolutie : false  ... …  ... false  ... …  ... false  ... …  ... ... Lineaire resolutie ! false 

Gedrag onder Algemene resolutie : …  ... …  ... …  ... …  ... false  Algemene resolutie !

Lineaire resolutie: De belangrijkste verschillen met Horn clauses: Bij Horn clauses waren de bewijzen altijd LINEAIR ! we starten met de “goal” dan gebruiken we een Horn clause om een nieuwe goal te berekenen enz. Clausale resolutie is NIET lineair Ook: factoring is soms nodig Lineair resolutie (een bewijs is een lineaire opeenvolging van resolutie stappen, startend van de goal) is één van de belangrijkste strategieen om resolutie efficient te maken.

Non-determinisme in de resolutie procedure SELECT a pair (F,G) : maakt het een ERG non-deterministische procedure. Het controle probleem voor resolutie is bijzonder moeilijk. Een bewijs is niet meer 1 (lineaire) tak in een boom, maar een subgraaf van de graaf van alle resoluties. Is het correct? Is het volledig? ? Bestaat er een strategie die volledig is???

Correctheid / Volledigheid ? Volledigheid: Er bestaat een volledige strategie (standaard vb: de Herbrand stellingenbewijzer). Correctheid: Als de procedure Inconsistent teruggeeft: Dan is false  toegevoegd Dan is false  een logisch gevolg van S (want de resolutie stap is correct). Dus in alle modellen van S is ook false  waar Dus S heeft geen modellen

Correctheid / Volledigheid (2) ? Als de procedure Consistent teruggeeft: Dan zijn ALLE MOGELIJKE resolutie stappen uitgevoerd, zonder false  te bereiken. …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  … false  Stel toch inconsistent. Er bestaat een VOLLEDIGE strategie: die levert na eindige tijd wél false  Maar die doet (een deel van) dezelfde resolutie stappen !! Oorspronkelijke gaf ook false 

AR voor volledige predicaten logica Normalizatie naar clausale form

Wat is er meer nodig voor volledige predicaten logica? NIETS! Clausale logica is equivalent aan volledige predicaten logica: elke theorie T in FOL (first order predicate logic) kan automatisch omgezet worden in een clausale theorie T’, zo dat: T is inconsistent asa T’ is inconsistent

Propositioneel: via conjunctieve normal form: Elke formule is equivalent aan een formule van de vorm: (A1  ...  An)  (B1  …  Bm)  …  (C1  …  Ck) waarin alle Ai, Bi, …, Ci ofwel atomair of ~atomair. Idee: p  q p  q breng alle ~ zo ver mogelijk naar binnen gebruik de distributiviteit van  en  p  q  q  p q  ~p Uiteindelijk: p1  …  pn  ~q1  … ~qm p1  …  pn  q1  …  qm

Predicaten geval: hoofd-stappen Prenix normaal vorm (Q1 x) (Q2 y) …(Qn z) F heeft geen quantoren!  or  Dit vereist soms nieuwe namen voor variabelen. Vb.: x p(x)  x q(x) x z p(x)  q(z) Merk: x bewolkt(x)  x zonnig(x) is niet equivalent met x bewolkt(x)  zonnig(x) Conjunctieve normaal vorm: (Q1 x) (Q2 y) …(Qn z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) Die 2 stappen worden vermengd.

Predicaten geval: vervolg Skolem normaal vorm: transformeer naar: ( x) ( y) …( z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) x rich(x) wordt rich(Sk) , met Sk een nieuwe constante (‘skolem constante’) die nog niet in het alphabet voorkomt. Moeilijker: indien  genest voorkomt binnen : ‘Everyone has a heart’ x person(x)  y heart(y)  has(x,y) Niet correct: x person(x)  heart(H)  has(x,H) Correct: x person(x)  heart(H(x))  has(x,H(x)) Skolem functies: zoveel argumenten als omsluitende -variabelen

Predicaten geval: vervolg Disjuncties: x y z (p(x)  ~q(y)  ~r(y))  (r(A)  q(z))  ~s(x,y) S = {x y (p(x)  ~q(y)  ~r(y)) , z (r(A)  q(z)) , x y ~s(x,y) } S = {p(x)  q(y)  r(y) , r(A)  q(z)) , false  s(x,y) } Clausale vorm:

Expliciete Procedure: 1. Elimineer  en  . 2. Breng de negaties naar binnen: ~(~p)  p, ~(p  q)  ~p  ~q, (analoog voor ) ~x  x ~ , ~x  x ~ 3. Standardizeer variabele namen (maak verschillend). PRENEX NORMAAL VORM 4. Breng quantoren naar voor. SKOLEMS INTRODUCEREN 5. Elimineer  . CONJUNCTIEVE VORM 6. Disjuncties naar binnen. VERZAMELING DISJUNC. 7. Laat  weg. 8. Laat  weg. CLAUSALE VORM 9. ~atomen naar andere kant.

Marcus voorbeeld: Feiten 1. , 2. , 4. en 8. waren al o.k.: ex.: heerser(Cesar) 3. x Pompeier(x)  Romein(x) : o.k. ! 6. x y loyaalaan(x,y) x loyaalaan(x,f(x)) loyaalaan(x,f(x)) 7. xy man(x)  heerser(y)  probeerverm(x,y)  ~loyaalaan(x,y) xy ~(man(x)  heerser(y)  probeerverm(x,y))  ~loyaalaan(x,y) xy ~man(x)  ~heerser(y)  ~probeerverm(x,y)  ~loyaalaan(x,y) false  man(x)  heerser(y)  probeerverm(x,y)  loyaalaan(x,y)

Axioma’s in Normaal vorm: 1. man(Marcus) 2. Pompeier(Marcus) 3. Romein(x)  Pompeier(x) 4. heerser(Cesar) 5. loyaalaan(x,Cesar)  haat(x,Cesar)  Romein(x) 6. loyaalaan(x,f(x)) 7. false  man(x)  heerser(y)  probeerverm(x,y)  loyaalaan(x,y) 8. probeerverm(Marcus,Cesar) Te bewijzen: haat(Marcus,Cesar) Negatie: ~haat(Marcus,Cesar) Normaal Vorm: false  haat(Marcus,Cesar)

Resolutie bewijs (1): 5. 3. 2. false  haat(Marcus,Cesar) loyaalaan(x,Cesar)  haat(x,Cesar)  Romein(x) loyaalaan(Marcus,Cesar)  Romein(Marcus) {x/Marcus} 5. Romein(x)  Pompeier(x) loyaalaan(Marcus,Cesar)  Pompeier(Marcus) {x/Marcus} 3. Pompeier(Marcus) loyaalaan(Marcus,Cesar) {} 2.

Resolutie bewijs (2) 7. 1. 4. 8. loyaalaan(Marcus,Cesar) false  man(x)  heerser(y)  probeerverm(x,y)  loyaalaan(x,y) false  man(Marcus)  heerser(Cesar)  probeerverm(Marcus,Cesar) 7. {x/Marcus,y/Cesar} man(Marcus) false  heerser(Cesar)  probeerverm(Marcus,Cesar) 1. {} heerser(Cesar) false  probeerverm(Marcus,Cesar) 4. {} probeerverm(Marcus,Cesar) false  8. {}

Een voorbeeld uit groepentheorie: Stel:  een groepsoperatie. Noteer prefix: p(x,y,z)  x  y = z Definitie van een monoide, met linker-neutraal en linker-invers element:  is overal gedefinieerd: xyz p(x,y,z) (1)  is associatief: (x  y)  z = x  (y  z) u v xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) (2)

Een voorbeeld uit groepentheorie (2):  heeft een linker-neutraal en linker-invers element: x (y p(x,y,y)  yz p(z,y,x) (3) De stelling: er bestaat ook een rechter-invers ! x (y p(x,y,y)  yz p(y,z,x) (4) Automatisch te bewijzen met resolutie.

Normalisatie: (1) xyz p(x,y,z) Stappen: 1,2,3,4: o.k. Stap 5: skolemisatie: xy p(x,y,m(x,y)) Stappen: 6,7: o.k. Stap 8: clausale vorm: p(x,y,m(x,y))

Normalisatie (vervolg): (2) xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) Stap 1: elimineer  en  : xyzuvw (p(x,y,u)  p(y,z,v))  ((p(u,z,w)  p(x,v,w))  (p(x,v,w)  p(u,z,w))) xyzuvw (p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) xyzuvw ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))

Normalisatie (vervolg): xyzuvw ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) Stap 2: breng negaties naar binnen: A  (B  C) xyzuvw (~p(x,y,u)  ~p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) Stappen: 3,4,5 o.k. Stap 6: breng disjuncties naar binnen: A  (B  C) = (A  B)  (A  C) xyzuvw ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w))) A  B A  C

Normalisatie (vervolg): xyzuvw ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w))) xyzuvw ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w))) + verwijder redundante haakjes: ( ) xyzuvw (~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w))  (~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w)) Stappen 7,8: elimineer  en  : ~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w) ~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w)

Normalisatie (vervolg): ~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w) ~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w) Stap 9: breng in implicatieve vorm: p(u,z,w)  p(x,y,u)  p(y,z,v)  p(x,v,w) p(x,v,w)  p(x,y,u)  p(y,z,v)  p(u,z,w)