41
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

Előhang

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

18

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

23

modellmodell

szándékoltmodell

Definite Logic Programs Logikai programozás áttekintése

24

modellmodell

szándékoltmodell

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):( 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

38

39

40

41

’ G