Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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:

Hasonló előadás


Az előadások a következő témára: "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:"— Előadás másolata:

1 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 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 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 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 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 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 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 001 010 101 111 Predikátum logika Megjegyzések, ismétlés b  a a 11 b|b|01

8 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 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 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 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 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 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 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 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 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 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 18 Predikátum logika Helyesség és teljesség

19 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 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 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 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 23 modell szándékolt modell Definite Logic Programs Logikai programozás áttekintése

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

25 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 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 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 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 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 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 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 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 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 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 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 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 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 38

39 39

40 40

41 41   ’ G 


Letölteni ppt "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:"

Hasonló előadás


Google Hirdetések