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:

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Predikátumok Dr. György Anna BMF-NIK Szoftvertechnológia Intézet.
Adatbázisrendszerek elméleti alapjai 2. előadás
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Matematikai logika.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Lambda kalkulus.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Műveletek logaritmussal
Euklidészi gyűrűk Definíció.
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Barwise-Etchemendy: Language, Proof and Logic
Kétértékűség és kontextusfüggőség Kijelentéseink igazak vagy hamisak (mindig az egyik és csak az egyik) Kijelentés: kijelentő mondat (tartalma), amivel.
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Kocsisné Dr. Szilágyi Gyöngyi
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Logikai műveletek
MI 2003/5 - 1 Tudásábrázolás (tudásreprezentáció) (know- ledge representation). Mondat. Reprezentá- ciós nyelv. Tudás fogalma (filozófia, pszichológia,
MI 2003/7 - 1 Az egyesítési algoritmus Minden kapitalista kizsákmányoló. Mr. Smith kapitalista. Mr. Smith kizsákmányoló.
Halmazok, relációk, függvények
Logika 5. Logikai állítások Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék március 10.
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Differenciál számítás
Bevezetés a matematikába I
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
LOGIKA (LOGIC).
LOGIKA (LOGIC).
szakmérnök hallgatók számára
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Két kvantitatív változó kapcsolatának vizsgálata
Érvelés, bizonyítás, következmény, helyesség
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Henkin-Hintikka játék (részben ismétlés) Alapfelállás: -Két játékos van, Én és a Természet (TW képviseli). - A játék tárgya egy zárt mondat: P. - Választanom.
Atomi mondatok FOL-ban Atomi mondat általában: amiben egy vagy több dolgot megnevezünk, és ezekről állítunk valamit. Pl: „Jóska átadta a pikk dámát Pistának”
Levezetési szabályok kvantorokra  -bevezetés (egzisztenciális általánosítás, EG)  -kiküszöbölés (univerzális megjelenítés, UI)  -kiküszöbölés (EI):
Nem igaz, hogy a kocka vagy tetraéder. Nem igaz, hogy a kicsi és piros. a nem kocka és nem tetraéder. a nem kicsi vagy nem piros. Általában: "  (A  B)
Függvényjelek (function symbols) (névfunktorok) FOL-ban Névfunktor: olyan kifejezés, amelynek argumentumhelyeire neveket vagy in- változókat lehet írni.
„Házasodj meg, meg fogod bánni; ne házasodj meg, azt is meg fogod bánni; házasodj vagy ne házasodj, mindkettőt meg fogod bánni; vagy megházasodsz, vagy.
A kondicionális törvényei
A logika centrális fogalmai a kijelentéslogikában Propositional logic Nulladrendű logika Általában Logikai igazság Logikai ekvivalencia Logikai következmény.
(nyelv-családhoz képest!!!
Formális bizonyítások Bizonyítások a Fitch bizonyítási rendszerben: P QRQR S1Igazolás_1 S2Igazolás_2... SnIgazolás_n S Igazolás_n+1 Az igazolások mindig.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Lagrange-interpoláció
Határozatlan integrál
A kvantifikáció igazságfeltételei “  xA(x)” akkor és csak akkor igaz, ha van olyan objektum, amely kielégíti az A(x) nyitott mondatot. “  xA(x)” akkor.
Az informatika logikai alapjai
Logika szeminárium Előadó: Máté András docens Demonstrátorok:
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
Henkin-Hintikka-játék szabályai, kvantoros formulákra, még egyszer: Aki ‘  xA(x)’ igazságára fogad, annak kell mutatnia egy objektumot, amire az ‘A(x)’
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
LOGIKA (LOGIC).
Deduktiv adatbázisok. Normál adatbázisok: adat elemi adat SQL OLAP adatbázisok: adat statisztikai adat OLAP-SQL … GROUP BY CUBE(m1,m2,..)
előadások, konzultációk
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Analitikus fa készítése Ruzsa programmal
Analitikus fák kondicionálissal
Logika szeminárium Barwise-Etchemendy: Language, Proof and Logic
Fordítás (formalizálás, interpretáció)
Atomi mondatok Nevek Predikátum
Elméleti probléma: vajon minden következtetés helyességét el tudjuk dönteni analitikus fával (véges sok lépésben)? Ha megengedünk végtelen sok premisszás.
Bevezetés a matematikába I
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
Előadás másolata:

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 