410 likes | 554 Views
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.
E N D
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
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
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)
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.
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 ( ) ,
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,…..,tnT, akkor p(t1, t2,…..,tn)F. Az ilyen formulákat nevezzük atomi formuláknak (atomok). • ha F,G F, akkor (F) ,(FG), (FG), (F G), (FG) F . • ha F F és X A változó, akkor (XF), (XF) F. • Atom mást jelent mint Prologban!
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.
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 :DnD 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. • [Xt] jelentése: ugyanaz, mint , kivétel hogy X-hez t-t rendeli.
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
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
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.
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.
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)
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...)
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.
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é)
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.
Helyesség és teljesség Predikátum logika
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
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)) )
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 (n0), 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
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 (n0) 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.
szándékolt modell modell modell Logikai programozás áttekintése Definite Logic Programs P P F
szándékolt modell modell modell Logikai programozás áttekintése Definite Logic Programs F
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.
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 ) =
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))), ...}
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.
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.
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}.
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)
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
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.
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.
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.
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).
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… :)