Upload
devin-orr
View
29
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
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őhangA 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ókfunktor 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ű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 ( ) ,
Predikátum logika abc definíciója
6
Kifejezések (terms): s, tA 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) ,(FG), (FG), (F G), (FG) 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 aF 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.
a b b a
0 0 1
0 1 0
1 0 1
1 1 1
Predikátum logika Megjegyzések, ismétlés
b a a
1 1
b| 0 1
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 :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.
[Xt] 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(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
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ébenvagyis 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. EkkorP 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 ≡ FF G ≡ F GF 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 Gkövetkezmény: G
• univerzális kvantor eliminációja Epremisszák: X F(X) és t szabad X-re nézvekövetkezmény: F(t)
• konjukció bevezetése Ipremisszák: F ill. Gkö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
19
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ójaIdempotencia =
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: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
Definite Logic Programs Klózokra hangolódás
22
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.
Definite Logic Programs Klóz, program definíciója
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):( 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 Célsorozat
26
Varázslás a kis négyzetekkel ( ):
igaz, hamis.üres törzs: A .üres cél: .definit cél: ( ( A1 A2 .... Am ) =
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: 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
28
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 Egy zárt formulahalmaz Herbrand modellje egy Herbrand interpretáció, mely minden formulahalmazbeli formulának modellje.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 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 MP legkisebb Herbrand-modellje a program minden tömör és atomi logikai következményeinek halmaza, azaz:
MP = {A BP | 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).
G1Ez 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(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.
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 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
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