1 / 41

Előhang

Előhang. Világunk dolgainak leírásához gyakran használunk kijelentő mondatokat. Pl. Minden anya szereti gyerekeit. Júlia anya és Júlia gyereke Máté. Következmény: Júlia szereti Mátét.

devin-orr
Télécharger la présentation

Előhang

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. Előhang Világunk dolgainak leírásához gyakran használunk kijelentő mondatokat. Pl. Minden anya szereti gyerekeit. Júlia anya és Júlia gyereke Máté. Következmény: Júlia szereti Mátét. A fenti kijelentések személyek és ezen egyének között esetlegesen fennálló összefüggések világát írják le. Összefüggések (relációk): … anya, … gyereke …-nak, …. szereti …..-t

  2. Előhang A számítógép számára az előző példában szereplő kijelentések formáját (szintaxisát) előre definiálni kell. Ugyanígy formalizálni kell a használt következtetési szabályokat is. Ezekkel a dolgokkal a matematikai logika foglalkozik. Nulladrendű (propozicionális) logika Elsőrendű (predikátum) logika

  3. Logikai kifejezések • A számítógép számára az előző példában szereplő kijelentések formáját (szintaxisát) előre definiálni kell. Ugyanígy formalizálni kell a használt következtetési szabályokat is. Ezekkel a dolgokkal a matematikai logika foglalkozik. • Első lépés: abc • - konstansok: az egyének (objektumok) jelölésére szolgáló szimbólumok • - predikátum szimbólumok: a relációkat jelölő szimbólumok. Minden predikátumszimbólumhoz tartozik még egy természetes szám is: az aritás, amely azt mutatja meg, hogy a reláció hány db objektum között állhat fenn. • + segéd karakterek: ( ) , • változók: nem meghatározott egyénekre mutató szimbólumok • minden (univerzális kvantor), létezik (egzisztenciális kvantor) • logikai összekötő-karakterek: és (konjunkció), nem (negálás), ha-akkor (implikáció), vagy (diszjunkció), akkor és csak akkor (csakkor)       

  4. Logikai kifejezések - összetett (függvény)kifejezések: összetett objektumok leírására használhatók funktor szimbólumok is vannak az abc-ben: ezek objektum ÉT-ú függvényeket jelölnek, aritásuk van, ami a jelképezett függvény attribútumainak száma: 0,1,2, … A konstansokat 0 aritású funktoroknak tekinthetjük. pl.: család (Rómeó, Júlia, gyerek (Máté, gyerek (Anna, null) _____________________________________________________________ Ezen fogalmakat használja a PREDIKÁTUM (ELSŐRENDŰ) LOGIKA.

  5. abc definíciója Predikátum logika • Logikai kifejezés: véges szimbólumsorozat • Abc, azaz szimbólum osztályok (A alfabeta): • Változók: alfanumerikus, nagybetűs X, Y, Z • Funktorok: kisbetűs alfanumerikus (/ aritás >0) f, g, h • Konstansok: kisbetűs alfanumerikus (/ aritás 0) a, b, c • Predikátum szimbólumok : kisbetűs alfanum (/ aritás≥0) p, q , r • Logikai összekötő jelek     • Kvantorok  • Segédszimbólumok ( ) ,

  6. Kifejezés, formula definíciója Predikátum logika • Kifejezések (terms): s, t • A kifejezések T halmaza A alfabeta felett a legkisebb halmaz, melyre: • minden A-beli változó  T. • minden A-beli konstans  T. • ha f/n A-beli funktor, és t1, t2,…..,tn T, akkor f(t1, t2,…..,tn)  T. • Formulák (wff – well formed formulas): • Adott egy T kifejezés-halmaz A alfabeta felett. A feletti formulák F halmaza a legkisebb halmaz, melyre: • ha p/n predikátum szimbólum A-ban és t1, t2,…..,tnT, akkor p(t1, t2,…..,tn)F. Az ilyen formulákat nevezzük atomi formuláknak (atomok). • ha F,G  F, akkor (F) ,(FG), (FG), (F G), (FG)  F . • ha F  F és X  A változó, akkor (XF), (XF)  F. • Atom mást jelent mint Prologban!

  7. Megjegyzések, ismétlés  Predikátum logika A Prologhoz szintaxisához igazodva a F  G alakú formulákat inkább G  F alakban használjuk. Ismétlés: a  b = b  a =  b  a Kötési sorrend:       Kötött (bound) ill szabad (free) változó fogalma. Tömör (ground) formula: nincsenek benne változók. Lezárt (closed) formula: nincsen benne szabad változók. Formula lezárása: univerzális ill. egzisztenciális lezárt: minden benne szereplő változót lekötünk: F= X1(...(XnF)...), ahol X1...Xn az F változói.

  8. Interpretáció, valuáció definíciója Predikátum logika • Interpretáció: • A alfabeta feletti  interpretáció egy nemüres D= | | értelmezési tartomány és egy leképzés, amely: • minden c  A konstanshoz egy c  D elemet • minden f/n  A funktorhoz egy f :DnD függvényt • minden p/n  A predikátum szimbólumhoz egy p  Dn relációt rendel. • Kiértékelés (valuation): • Adott  interpretáció melletti  kiértékelés az A alfabeta változóihoz az interpretáció értelmezési tartományának elemeit rendelő leképzés. • [Xt] jelentése: ugyanaz, mint , kivétel hogy X-hez t-t rendeli.

  9. Szemantika, modell Predikátum logika • A kifejezések szemantikája (jelentése): • Adott  interpretáció,  kiértékelés és t kifejezés (term). Ekkor a t kifejezés(t) jelentése egy || -beli ( értelmezési tartománya, D-beli) elem, hogy: • ha t = c konstans, akkor (t):= c • ha t = X változó, akkor (t):=(X) • ha t = f(t1, t2,…..,tn) alakú funktor, akkor (t)=f((t1),...,  (tn)). • A formulák szemantikája: • Legyen  egy interpretáció,  egy kiértékelés és Q egy formula. Ekkor a Q formula -re és -re vonatkozó jelentése: •  j= p(t1, t2,…..,tn)  (t1),….., ( tn)  •  j= (F)  j F •  j= (F  G) j= F és  j= G •  j= (F  G) j= F vagy  j= G •  j= (F  G) j= G teljesül, ha  j= F •  j= (F  G) j= (F  G) és  j= (G  F) •  j= (XF) j=[X t] F minden t  ||-re •  j= ( XF) j=[X t] F valamely t  ||-re

  10. Szemantikai következmény Predikátum logika Modell  interpretáció modellje P zárt formulahalmaznak, akkor és csak akkor, ha minden P-beli formula igaz -ben. Kielégíthetetlen formulahalmaz: nincs olyan interpretáció, ami a modellje. Általában egy kielégíthető formulahalmaznak (végtelen) sok modellje lehet. Szemantikai (logikai) következmény (logical consequence): Legyen P zárt formulahalmaz. F lezárt formula a P logikai következménye, akkor és csak akkor, ha F igaz P minden modelljében. Jelölése: Pj= F

  11. Szemantikai következmény Predikátum logika Példa a logikai következtetésre: (1)  X ( Y ((anya(X)  gyermeke (Y,X))  szereti (X,Y))) (2) anya(Júlia)  gyermeke (Máté, Júlia) Legyen  tetszőleges interpretáció. Ha ez modellje (1)-nek és (2)-nek, akkor (4)  j=  X ( Y ((anya(X)  gyermeke (Y,X))  szereti (X,Y))) (5)  j= anya(Júlia)  gyermeke (Máté, Júlia) Hogy (4) igaz legyen, kell hogy bármely kiértékelésre igaz legyen, tehát: (6)  j= anya(X)  gyermeke (Y,X))  szereti (X,Y) ahol: (X)=Júlia , (Y)=Máté Hogyhogynem, ezek az objektumokat Júliának ill. Máténak jelöltük, így: ???? (7)  j= anya(Júlia)  gyermeke (Máté,Júlia))  szereti (Júlia,Máté) Végül, (5) és … miatt: (3) szereti(Júlia,Máté) Tehát (1) és (2) minden modellje modellje (3)-nak is. Tanulság: nehézkes a log. következtetés használata, mert a formulák szemantikáját kell használni azaz a formulák minden modelljével törődni kell.

  12. Szemantikai következmény Predikátum logika P j= F bizonyításának egy lehetséges módja: megmutatjuk, hogy F hamis P minden modelljében vagyis hogy P  {F} kielégíthetetlen (nem létezik modellje) Ezt fogalmazza meg a következő tétel: Tétel (kielégíthetetlenség) Legyen P zárt formulahalmaz és F egy zárt formula. Ekkor P j= F akkor és csak akkor, ha P  {F} kielégíthetetlen.

  13. Logikai ekvivalencia Predikátum logika Logikai ekvivalencia: F és G formulák logikailag ekvivalensek, akkor és csak akkor, ha ugyanazon igazságértékeket adják minden  interpretációra és  helyettesítésre. Jelölése: F ≡ G Megjegyzés: F ≡ G  ha F j= G és G j= F. Azonosságok:  F ≡ F F  G ≡ F  G F  G ≡  G   F F  G ≡ (F  G)  (G  F)  (F  G) ≡F   G  (F  G) ≡F   G   XH(X) ≡ X  H(X)   X H(X) ≡ X  H(X) ha F-ben nincs szabad X-előfordulás:  X(F  H(X)) ≡ F XH(X)

  14. Következtetés megfigyelése Predikátum logika Logikai következtetés: premisszák (1), (2) következmény (konklúzió) (3) A következtetés mechanizmusának formalizálása: következtetési szabályok (inference rules) Helyes következtetés követelménye: Bármely megfigyelt világban, ahol a premisszák igazak, a következtetési szabály által előállított következménynek is igaznak kell lennie. Azaz: valóban logikai következmény álljon elő Ezt a követelményt teljesítő következtetési szabályt nevezzük helyesnek (sound). (Itt térünk át szép lassan a szemantikáról a szintaktikára: a szemantikus következtetésnél megfigyelt gondolatmenetet következtetési szabályokkal leírjuk, ezzel a szintaktikai levezetés szintjére emeljük...)

  15. Következtetési szabályok Predikátum logika • Híres/ismert következtetési szabályok: • modus ponens ( eliminációja) E • premisszák: F ill. F  G • következmény: G • univerzális kvantor eliminációja E • premisszák: X F(X) és t szabad X-re nézve • következmény: F(t) • konjukció bevezetése I • premisszák: F ill. G • következmény: F G • Ezen következtetési szabályok helyessége(soundness) a formulák szemantikájának definíciójából következik.

  16. Szintaktikus levezethetőség Predikátum logika Szintaktikus levezethetőség (derivability): Ha az F következményt formális úton, a következtetési szabályok alkalmazásával állítjuk elő, következtetési lépések sorozatán keresztül növelve a premissza-formulák P halmazát, akkor F levezethető P-ből. Jelölése: P j– F . Példa: (11) X ( Y ((anya(X)  gyermeke (Y,X))  szereti (X,Y))) (12) anya(Júlia)  gyermeke (Máté, Júlia) E szabály alkalmazásával kapjuk: (13)  Y ((anya(Júlia)  gyermeke (Y,Júlia))  szereti (Júlia,Y)) E szabály újabb alkalmazásával kapjuk: (14) (anya(Júlia)  gyermeke (Máté,Júlia))  szereti (Júlia, Máté) E szabállyt alkalmazva (12) és (14)-re végül: (15) szereti (Júlia, Máté)

  17. Helyesség és teljesség Predikátum logika Ha a következtetési szabályok helyesek (sound), akkor ami szintaktikailag levezethető, az szemantikai következmény is. Kérdés, hogy P minden szemantikai következménye szintaktikailag levezethető-e? Ha igen, akkor a következtetési szabályok halmazát teljesnek (complete) nevezzük. Helyesség és teljesség (soundness & completeness) Következtetési szabályok valamely halmaza helyes (sound), ha minden P zárt formulahalmazra és F zárt formulára, ha P j–F, akkor P j= F. Következtetési szabályok valamely halmaza teljes (complete), ha minden P zárt formulahalmazra és F zárt formulára, ha P j= F, akkor P j–F.

  18. Helyesség és teljesség Predikátum logika

  19. Szubsztitúció Predikátum logika - segédeszköz Behelyettesítés (substitution): Kifejezés-párok véges halmaza: {X1/t1,…, Xn/tn}, ahol ti egy kifejezés és Xi egy változó, úgy, hogy Xi tiés Xi  Xk , ha i  k. Üres behelyettesítés: . Megjegyzés: ez nem kötődik egy konkrét interpretációhoz ( kiértékelés (valuáció)) behelyettesítés alkalmazása X változóra: X, hogy X := t, ha X/t  , különben X.  = {X1/t1,…,Xn/tn}behelyettesítés alkalmazása E kifejezésre/formulára: E, ti –t egyidejűleg behelyettesítjük az E-beli Xi minden szabad előfordulásába (1 i  n). E az E példánya. Behelyettesítések kompozíciója Idempotencia  =   Behelyettesítések tulajdonságai

  20. Tények és szabályok Definite Logic Programs Szűkítjük a nyelvet, így hatékonyabbá tesszük a következtetést. Kétféle deklaratív mondatot fogunk használni: tény és szabály. A tény egy egyének/objektumok közti reláció fennállását állapítja meg. A szabály ezen reláció fennállását más relációk fennállásának feltételéhez kötve jelenti ki. Pl. “Aladár Géza gyereke.” gyereke(Aladár, Géza). „Egy ember unokája az ember gyerekének a gyereke” Minden X,Y-ra unokája X Y-nak, ha létezik Z, hogy gyereke X Z-nek és Z Y-nak. X Y (unokaja(X,Y)  Z (gyereke(X,Z)  gyereke(Z,Y)) ) X Y (unokaja(X,Y)   Z (gyereke(X,Z)  gyereke(Z,Y)) ) X Y (unokaja(X,Y)   Z  (gyereke(X,Z)  gyereke(Z,Y)) ) X Y  Z (unokaja(X,Y)   (gyereke(X,Z)  gyereke(Z,Y)) ) X Y  Z (unokaja(X,Y)  (gyereke(X,Z)  gyereke(Z,Y)) )

  21. Klózokra hangolódás Definite Logic Programs X Y  Z (unokaja(X,Y)  (gyereke(X,Z)  gyereke(Z,Y)) ) Az ilyen alakú formulákat nevezzük definit klózoknak: A0  A1  A2  ....  An (n0), azaz A0  A1  A2  ....  An ahol A0,....,An atomi formulák és minden bennük szereplő változó értelemszerűen univerzálisan kvantált az egész formulán. Ekkor A0 –t a klóz fejének, A1  A2  ....  An-t a klóz törzsének nevezzük. A0  A1  A2  ...  An +A0  A1  A2 ... An +rev(nil, nil) +rev(X.L)-rev(L,L1)-app(L1,X.nil,R) Marseille Prolog

  22. Klóz, program definíciója Definite Logic Programs Klóz: A klóz egy (L1  L2  ....  Ln) formula, ahol Li literálok atomi formulák (pozitív literál) vagy atomi formulák negáltjai (negatív literál). Kielégíthetőség szempontjából minden elsőrendű formula klózhalmazzal ekvivalens. Definit klóz: Olyan klóz, amelyben pontosan egy pozitív literál van: (A0  A1  A2  ....  An) Definit klóz leírása: A0  A1 , A2 , .... , An (n0) Ha a törzs üres, a -at elhagyjuk. (Az üres törzs jelölhető -tel, ez minden interpretációban igaz. Párja a , ami mindig hamis.) Definit program: Definit klózok véges halmaza.

  23. szándékolt modell modell modell Logikai programozás áttekintése Definite Logic Programs P P F

  24. szándékolt modell modell modell Logikai programozás áttekintése Definite Logic Programs F

  25. Célsorozat Definite Logic Programs Mivel logikai következményből végtelen sok van, meg kell mondanunk, hogy mit szeretnénk kiszámítani, megkérdezni. Definit cél (célsorozat, definite goal): ( A1  A2  ....  Am) alakú kérdés. így írjuk le:  A1 , A2 , .... , Am ahol Ai atomi formulák a részcélok (subgoal). Üres cél: m=0, -nak is jelölik. Definit cél jelentése:  X1 ,  X2 , .... ,  Xn (A1  A2  ....  Am)  X1 ,  X2 , .... ,  Xn (A1  A2  ....  Am) Erre a kérdésre a rendszer megpróbál ellenpéldát találni.

  26.           Definite Logic Programs Varázslás a kis négyzetekkel (   ):  igaz,  hamis. üres törzs: A  . üres cél: . definit cél: (  ( A1  A2  ....  Am  )    = 

  27. A Legkisebb Herbrand Modell Definite Logic Programs Herbrand univerzum, Herbrand bázis (universe, base) Legyen A alfabetában legalább egy konstans. Herbrand univerzum A felett: A funktoraiból és konstansaiból képzett minden tömör (ground) kifejezést tartalmazó halmaz. Jelölése: UA . Herbrand bázis A felett: A funktoraiból és konstansaiból képzett minden tömör (ground) atomi formulát tartalmazó halmaz. Jelölése: BA . Pl. P: odd(s(0)). odd(s(s(X)))  odd(X) UP = {0, s(0), s(s(0)), s(s(s(0))),...} BP = {odd(0), odd(s(0)), odd(s(s(0))), ...}

  28. A Legkisebb Herbrand Modell Definite Logic Programs • Herbrand interpretáció: • P program Herbrand-interpretációja egy olyan  interpretáció, melyre • || = UP • minden c konstansra: c = c • minden f/n funktorra f függvény definíciója: • f (x1, x2,…..,xn) := f (x1, x2,…..,xn) • minden p/n predikátum szimbólumra p reláció definíciója: • p (x1, x2,…..,xn) := p  UPn • Herbrand modell: • Egy zárt formulahalmaz Herbrand modellje egy Herbrand interpretáció, mely minden formulahalmazbeli formulának modellje.

  29. A Legkisebb Herbrand Modell Definite Logic Programs Miért jó ez nekünk? Megmutatható, hogy: ha valaminek van modellje, akkor van H-modellje. Azaz ha nincs H-modellje, akkor nincs modellje sem. A modellekből nagyon sokféle lehet, nem tudjuk milyenek. H-modelleket meg tudjuk fogni, le tudjuk írni. Tehát elég a logikai programozásban a Herbrand-modellt tekintenünk és nem veszítünk vele semmit. A Herbrand-modellek között van legkisebb. Definit Logikai Programok (Prolog programok) jelentése: a minimális Herbrand-modell.

  30. A Legkisebb Herbrand Modell Definite Logic Programs Tétel: Legyen P egy definit program és G egy definit cél. Ha ’ modellje P  {G} -nek, akkor  := {A  BP | ’ j= A} Herbrand-modellje P  {G} –nek. Tétel: Legyen M a P programhoz tartozó Herbrand-modellek nemüres családja . Ekkor ezek metszete  := M is Herbrand-modellje P-nek. Tétel: P definit program MPlegkisebb Herbrand-modellje a program minden tömör és atomi logikai következményeinek halmaza, azaz: MP= {A BP| P j=A}.

  31. Kiindulás: példa SLD - Rezolúció Program: proud(X) ← parent(X,Y), newborn(Y) parent(X,Y) ← father(X,Y) parent(X,Y) ← mother(X,Y) father(adam, mary). newborn(mary). Kérdés (cél): ← proud(Z) „Who is proud?” Következtetési gondolatmenet:  Z  proud(Z) (indirekt)  Z proud(Z) Meg kell mutatnunk, hogy a negatív válasz hamis P minden modelljében (így a szándékolt modellben is). A kérdésre ekkor igenlő a válasz, mert ekkor P j=  Z proud(Z) igaz. De hogy ne csak igenlő választ kapjunk, hanem értéket is a változóknak, inkább keressünk egy  behelyettesítést, hogy a P  {proud(Z)  } kielégíthetetlen formulahalmaz legyen, azaz P j= proud(Z) 

  32. Kiindulás: példa SLD - Rezolúció Program: proud(X) ← parent(X,Y), newborn(Y)[1] parent(X,Y) ← father(X,Y)[2] parent(X,Y) ← mother(X,Y)[3] father(adam, mary).[4] newborn(mary).[5] Következtetési gondolatmenet: ← proud(Z). G0 [1]-ből:  (proud(X)  (parent(X,Y)  newborn(Y))) Ezekből X – Z átnevezéssel, E-vel, és modus ponenssel: (parent(Z,Y)  newborn(Y)), azaz: ← parent(Z,Y ), newborn(Y). G1 Ez egy új cél, mostantól már a P  {G1} kielégíthetetlenségét akarjuk megmutatni.  Z  Y (parent(Z,Y)  newborn(Y)) [2]-ből:  (parent(X,Y)  father(X,Y)) ← father(Z,Y ), newborn(Y). G2 [4]-ből Z = adam, Y = mary behelyettesítéssel ← newborn(mary). G3 [5]-ből:  newborn(mary)  .  G4

  33. Egyesítők SLD - Rezolúció Egy lépésben egy atomi formulahalmazból (definit célból vagy célsorozatból) egy másik atomi formulahalmazt készítettünk. Ehhez a célsorozat egy kiválasztottp(s1, s2,…..,sn) atomját illetve a program egy p(t1, t2,…..,tn) ← A1, A2,…..,Am alakú klózát használtuk fel. Tehát p(s1, s2,…..,sn) és p(t1, t2,…..,tn) egy közös példányát kerestük, azaz egy  behelyettesítést, melyre p(s1, s2,…..,sn) =p(t1, t2,…..,tn). Az ilyen  behelyettesítést nevezzük egyesítőnek. Választási lehetőségek: ? Mely 2 klózt rezolváljuk? Döntés: megszorítás: mindig egy célsorozatot rezolválunk egy programklózzal (lineáris) ? Mely célhoz keressünk vele rezolválható klózt? Döntés: legyen egy szabály ami megmondja melyiket válasszuk (selection function) Prologban mindig az elsőt választjuk.

  34. Egyesítők SLD - Rezolúció • Egyesítő (unifier) • Ha s és t tetszőleges kifejezések, akkor  behelyettesítést, melyre s = t (identikusak) s és t egyesítőjének nevezzük. • Legáltalánosabb egyesítő (most general unifier – mgu) •  egyesítőt 2 kifejezés legáltalánosabb egyesítőjének nevezzük, ha általánosabb a 2 kifejezés minden más egyesítőjénél.

  35. Következtetési mechanizmus SLD - Rezolúció SLD – LinearResolution for Definite clauses with Selection function (Selection function / computation rule) Ha célsorozat több célja is illeszthető egy programklóz fejével, akkor determinisztikusan kell megoldanunk ezt a választást, erre szolgál a számítási szabály. (Linear) Mindig egy célt és egy programklózt veszünk.

  36. Következtetési mechanizmus SLD - Rezolúció SLD-levezetés Legyen G0 egy definit cél, P egy definit program és  egy számítási szabály. G0 SLD-levezetése véges vagy végtelen célok sorozata, ahol minden következő cél az előzőből és egy (átnevezett) program klózból származik. SLD-fa ← proud(Z). ← parent(Z,Y ), newborn(Y). ← mother(Z,Y ), newborn(Y). ← father(Z,Y ), newborn(Y). ← newborn(mary). 

  37. Következtetési mechanizmus SLD - Rezolúció Tétel Az SLD-rezolúció helyes (sound). Tétel Az SLD-rezolúció teljes (complete). (A tételek bizonyítása házi feladat… :)

  38.  ’G

More Related