De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

De stap naar: resolutie

Verwante presentaties


Presentatie over: "De stap naar: resolutie"— Transcript van de presentatie:

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

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 Voorbeeld: Moore’s probleem
Gegeven 3 blokken: Blauw of Rood Bewijs dat er een blauw blok naast een rood blok staat!

4 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!

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

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

8 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

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

10 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 

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

12 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 !!!!

13 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 !

14 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

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

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

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

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

19 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

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

21 AR voor volledige predicaten logica
Normalizatie naar clausale form

22 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

23 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

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

25 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

26 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:

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

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

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

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

31 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. {}

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

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

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

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

36 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

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

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


Download ppt "De stap naar: resolutie"

Verwante presentaties


Ads door Google