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 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
4 - ö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. Logikai kifejezések
5 Logikai kifejezés: véges szimbólumsorozat Abc, azaz szimbólum osztályok (A alfabeta): Változók: alfanumerikus, nagybetűsX, 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( ), Predikátum logika abc definíciója
6 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 t 1, t 2,…..,t n T, akkor f(t 1, t 2,…..,t n ) 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 t 1, t 2,…..,t n T, akkor p(t 1, t 2,…..,t n ) 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! Predikátum logika Kifejezés, formula definíciója
7 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= X 1 (...( X n F)...), ahol X 1...X n az F változói. ab b a Predikátum logika Megjegyzések, ismétlés b a a 11 b|b|01
8 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 :D n D függvényt minden p/n A predikátum szimbólumhoz egy p D n 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. Predikátum logika Interpretáció, valuáció definíciója
9 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(t 1, t 2,…..,t n ) alakú funktor, akkor (t)=f ( (t 1 ),..., (t n )). 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(t 1, t 2,…..,t n ) (t 1 ),….., ( t n ) 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 Predikátum logika Szemantika, modell
10 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: P j= F Predikátum logika Szemantikai következmény
11 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. Predikátum logika Szemantikai következmény
12 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. Predikátum logika Szemantikai következmény
13 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 X H(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) Predikátum logika Logikai ekvivalencia
14 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...) Predikátum logika Következtetés megfigyelése
15 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. Predikátum logika Következtetési szabályok
16 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é) Predikátum logika Szintaktikus levezethetőség
17 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. Predikátum logika Helyesség és teljesség
18 Predikátum logika Helyesség és teljesség
19 Behelyettesítés (substitution): Kifejezés-párok véges halmaza: {X 1 /t 1,…, X n /t n }, ahol t i egy kifejezés és X i egy változó, úgy, hogy X i t i és X i X k, 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. = {X 1 /t 1,…,X n /t n } behelyettesítés alkalmazása E kifejezésre/formulára: E , t i –t egyidejűleg behelyettesítjük az E-beli X i 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 Predikátum logika - segédeszköz Szubsztitúció
20 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)) ) Definite Logic Programs Tények és szabályok
21 X Y Z (unokaja(X,Y) (gyereke(X,Z) gyereke(Z,Y)) ) Az ilyen alakú formulákat nevezzük definit klózoknak: A 0 A 1 A 2 .... A n (n 0), azaz A 0 A 1 A 2 .... A n ahol A 0,....,A n atomi formulák és minden bennük szereplő változó értelemszerűen univerzálisan kvantált az egész formulán. Ekkor A 0 –t a klóz fejének, A 1 A 2 .... A n -t a klóz törzsének nevezzük. A 0 A 1 A 2 ... A n +A 0 A 1 A 2... A n +rev(nil, nil) +rev(X.L)-rev(L,L1)-app(L1,X.nil,R) Marseille Prolog Definite Logic Programs Klózokra hangolódás
22 Klóz: A klóz egy (L 1 L 2 .... L n ) formula, ahol L i 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: (A 0 A 1 A 2 .... A n ) Definit klóz leírása: A 0 A 1, A 2,...., A n (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. Definite Logic Programs Klóz, program definíciója
23 modell szándékolt modell Definite Logic Programs Logikai programozás áttekintése
24 modell szándékolt modell Definite Logic Programs Logikai programozás áttekintése
25 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): ( A 1 A 2 .... A m ) alakú kérdés. így írjuk le: A 1, A 2,...., A m ahol A i atomi formulák a részcélok (subgoal). Üres cél: m=0, -nak is jelölik. Definit cél jelentése: X 1, X 2,...., X n (A 1 A 2 .... A m ) X 1, X 2,...., X n (A 1 A 2 .... A m ) Erre a kérdésre a rendszer megpróbál ellenpéldát találni. Definite Logic Programs Célsorozat
26 Varázslás a kis négyzetekkel ( ): igaz, hamis. üres törzs: A . üres cél: . definit cél: ( ( A 1 A 2 .... A m ) = Definite Logic Programs
27 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: U A. 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: B A. Pl. P:odd(s(0)). odd(s(s(X))) odd(X) U P = {0, s(0), s(s(0)), s(s(s(0))),...} B P = {odd(0), odd(s(0)), odd(s(s(0))),...} A Legkisebb Herbrand Modell
28 Herbrand interpretáció: P program Herbrand-interpretációja egy olyan interpretáció, melyre | | = U P minden c konstansra: c = c minden f/n funktorra f függvény definíciója: f (x 1, x 2,…..,x n ) := f (x 1, x 2,…..,x n ) minden p/n predikátum szimbólumra p reláció definíciója: p (x 1, x 2,…..,x n ) := p U P n Herbrand modell: Egy zárt formulahalmaz Herbrand modellje egy Herbrand interpretáció, mely minden formulahalmazbeli formulának modellje. Definite Logic Programs A Legkisebb Herbrand Modell
29 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. Definite Logic Programs A Legkisebb Herbrand Modell 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 Tétel: Legyen P egy definit program és G egy definit cél. Ha ’ modellje P {G} - nek, akkor := {A B P | ’ 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 M P legkisebb Herbrand-modellje a program minden tömör és atomi logikai következményeinek halmaza, azaz: M P = {A B P | P j= A }. Definite Logic Programs A Legkisebb Herbrand Modell
31 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) SLD - Rezolúció Kiindulás: példa
32 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] SLD - Rezolúció Kiindulás: példa 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 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álasztott p(s 1, s 2,…..,s n ) atomját illetve a program egy p(t 1, t 2,…..,t n ) ← A 1, A 2,…..,A m alakú klózát használtuk fel. Tehát p(s 1, s 2,…..,s n ) és p(t 1, t 2,…..,t n ) egy közös példányát kerestük, azaz egy behelyettesítést, melyre p(s 1, s 2,…..,s n ) = p(t 1, t 2,…..,t n ) . 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. SLD - Rezolúció Egyesítők
34 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. SLD - Rezolúció Egyesítők
35 SLD – Linear Resolution 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. SLD - Rezolúció Következtetési mechanizmus
36 SLD-levezetés Legyen G 0 egy definit cél, P egy definit program és egy számítási szabály. G 0 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 SLD - Rezolúció Következtetési mechanizmus ← proud(Z). ← parent(Z,Y ), newborn(Y). ← father(Z,Y ), newborn(Y). ← newborn(mary). ← mother(Z,Y ), newborn(Y).
37 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… :) SLD - Rezolúció Következtetési mechanizmus
38
39
40
41 ’ G