De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn.

Verwante presentaties


Presentatie over: "AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn."— Transcript van de presentatie:

1 AR: clausale logica De stap naar: resolutie

2 2 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.

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

4 4 Moore’s probleem (2): Dit zou een geval-analyse vereisen!  In clausale vorm: 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)

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

6 6 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

7 7 Het resolutie principe A1  A2  …  Am  B1  …  B  …  Bn C1 ...  B  …  Ck  D1  D2  …  Dl A1  A2  …  Am  C1 ....  Ck  B1 ....  Bn  D1  D2  …  Dl B1 ....  Bn  D1  D2  …  Dl  Propositie geval:  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.

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

9 9 Kan ook in andere vormen:  In conjunctieve normaal vorm:  met  = mgu(B,B’). A1  A2  …  Am  ~B1  …  ~B  …  ~Bn C1 ...  B’  …  Ck  ~D1  ~D2  …  ~Dl (A1  A2  …  Am  C1 ....  Ck)   (~B1 ....  ~Bn  ~D1  ~D2  …  ~Dl)  (~B1 ....  ~Bn  ~D1  ~D2  …  ~Dl) 

10 10 Opnieuw Moore’s voorbeeld blauw(Blok2)  rood(Blok2) rood(Blok2)  naast(Blok2,b2)  rood(b2) blauw(Blok1)rood(Blok3) blauw(Blok2)  rood(Blok2) naast(Blok1,Blok2)naast(Blok2,Blok1)naast(Blok2,Blok3)naast(Blok3,Blok2) 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) false  naast(b1,b2)  blauw(b1)  rood(b2)

11 11 Phd voorbeeld rijk(x) false  rijk(Ik) false  factoring vroeg_verdienen(x)  hoog_gequal(x) rijk(y)  hoog_gequal(y) rijk(x)  rijk(x) vroeg_verdienen(x)  rijk(x) rijk(y)  vroeg_verdienen(y) hoog_gequal(y)  phd(y) vroeg_verdienen(x)  phd(x) 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)

12 12 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) 

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

14 14 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)  (B1 ....  Bn  D1  D2  …  Dl) LengteNM N + M - 2  In het vorige voorbeeld hadden alle formules lengte 2 Je kan NOOIT false  (lengte 0) krijgen !

15 15 De resolutie procedure :=initial theory (inconsistent te bewijzen); 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 yet resolved Then Consistent:= true Then Consistent:= true Else SELECT a pair (F,G) from S, resolvable and not yet resolved; and not yet resolved; H:= factor( resolvent (F,G) ); H:= factor( resolvent (F,G) ); S:= S  H S:= S  H End-while

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

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

18 18 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.

19 19 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???

20 20 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

21 21 … ... Correctheid / Volledigheid (2) ?  Als de procedure Consistent teruggeeft:  Dan zijn ALLE MOGELIJKE resolutie stappen uitgevoerd, zonder false  te bereiken.  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 Oorspronkelijke gaf ook false  … ... …  … false 

22 AR voor volledige predicaten logica Normalizatie naar clausale form

23 23 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

24 24 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

25 25 Predicaten geval: hoofd-stappen 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)  Prenix normaal vorm (Q1 x) (Q2 y) …(Qn z) F  or  heeft geen quantoren!  Conjunctieve normaal vorm: (Q1 x) (Q2 y) …(Qn z) (.. .. )  (.. .. ) ..  (.. .. )  Die 2 stappen worden vermengd.

26 26 Predicaten geval: vervolg Skolem functies: zoveel argumenten als omsluitende  -variabelen  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))

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

28 28 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.

29 29 Marcus voorbeeld:  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)  x loyaalaan(x,f(x)) loyaalaan(x,f(x))  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)  7.  x  y man(x)  heerser(y)  probeerverm(x,y)  ~loyaalaan(x,y)

30 30 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)

31 31 Resolutie bewijs (1): 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.

32 32 Resolutie bewijs (2) 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.{}

33 33 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)   is associatief:(x  y)  z = x  (y  z) uv  x  y  z  u  v  w (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) (1) (2)

34 34 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)  De stelling: er bestaat ook een rechter-invers ! (3)  x (  y p(x,y,y)   y  z p(y,z,x) (4)  Automatisch te bewijzen met resolutie.

35 35 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))

36 36 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))) ((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))) ((~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))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))

37 37 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))) ((~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))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))  Stap 2: breng negaties naar binnen:  Stappen: 3,4,5 o.k.  Stap 6: breng disjuncties naar binnen:  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  C) A  (B  C) = (A  B)  (A  C) A  B A  C

38 38 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(x,v,w)  p(u,z,w) ~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w)


Download ppt "AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn."

Verwante presentaties


Ads door Google