Dr. Jelasity Márk Mesterséges Intelligencia I Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin Elsőrendű logika -Ítéletkalkulus : Az elsőrendű logika egy speciális esete, itt csak nullad rendű pedikátum szimbólumokat használunk. Részei: a) objektumok b) relációk c) függvény d) kvantorok Az ítéletkalkulus atomi ítéletei a relációk, amik vagy teljesülnek, vagy nem. Beleláthatunk az ítélet finomabb szerkezetébe => ha túl sok tény lehet, (pl ), ez fontos, mert kompakt és kifejezőbb. Szintaktika mondat atom (összekötő mondat) kvantor változó mondat mondat atom predikátum (term, ) term = term term függvény (term, ) kvantorok változó összekötő kvantor kvantorok A B C (nagybetűk) változók x y z (kisbetűk) Szemantika Ítéletkalkulus egy lépése : Lehetséges világok közül választunk, ez a modell elsőrendű logika : Lehetséges világ a domain, ami a létező objektumok halmaza ( D ). Ehhez még kell egy interpretáció, ami a következő: Minden kvantorhoz rendel elemet a domainből Minden függvényhez (n változós) rendel egy D n D függvényt Minden predikátumnévhez (n változós) egy D n {igaz / hamis} függvényt Egy fix domain-en, sok különböző interpretáció is lehet.
Kiértékelés (Igaz vagy Hamis a mondat) Kiterjesztett interpretáció: Minden változóhoz rendel egy domain elemet. Kiértékeléshez kiterjesztett interpretáció kell. Term kiértékelés: ( <= egy domain elem) Konstans és változó : <= kiterjesztett interpretáció Függvény F(t 1,...,t n ) : F -hez rendelt függvény kiértékelése a t 1,...,t n termek kiértékeléseit behelyettesítve Atomi mondatok: (<= Igaz / Hamis) P(t 1,..,t n ) : t 1,...,t n kiértékelését behelyettesítjük P kiértékelésébe Komplex mondatok: Mint az ítéletkalkulusban Kvantorok: Legyen f egy mondat, amelyben szerepel az x változó. x szabad változó, ha f atomi mondat <=> f 1 -ben szabad változó <=> f összetett (pl f 1 f 2 ) és x szabad f 1 -ben vagy f 2 -ben f= y f 1 (vagy y f1) és x y x kötött változó, ha x szerepel f-ben és nem szabad legyen f= xf 1 (x) (x kötött változó) ekkor f kiértékelése igaz, akkor és csak akkor, ha az összes kiterjesztett interpretációban, ahol x értéke a domain minden elemét felveszi (míg a többi hozzárendelés nem változik), f 1 (x) igaz. -nél ugyanez, csak elég egy igaz kiterjesztett interpretáció Logikai következmény T és f mondatok. Ekkor T = f akkor és csak akkor, ha minden modellben és minden interpretációban, ahol T igaz értéket vesz fel, f is igaz értéket vesz fel. Megjegyzés: Ítéletkalkulusban lehetett direkt ellenőrizni (összes modell felsorolása vagy kielégíthetőség). Itt már nem lehet, végtelen lehetőség van. Megjegyzés: Az = operátor ugyanúgy működik mint egy predikátum, amiben az azonosság relációt rendeljük, mint interpretáció. Kvantorok kiértékelése xf(x) = x f(x), stb (csak vagy is elég) x y f(x,y) y x f(x,y) (pl f(x,y) : x vezeti y-t)
gyakorlati megjegyzés: Egy elsőrendű logikai adatbázisban általában nem csak egy f(x 1,...,x 2 ) mondat érdekes, hanem, ha igaz, az interpretáció is. Pl xp(x) -nél érdekes, hogy mi az az x? (azaz melyik objektum?) Példák rokonság: a) objektumok : emberek b) predikátumok : férfi, nő (1 változós, nővér, szülő, stb) c) w-ek : Apa, Anya (lehetne kétváltozós predikátum is) tudás, pl x,y Anya(x) = y <=> Nő(y) Szülő (y,x) x,y Nagyszülő(x,y) z (Szülő(x,z) Szülő (z,y)) x,y Unokatestvér(x,y) x y p Szülő (p,x) Szülő (x,y) Férfi (Péter, stb) matematikai példák: a) objektumok : természetes számok b) predikátumok : N(x) : x természetes szám c) függvények : S(x) : x rákövetkezője (x+1) d) kvantorok : nulla Itt a cél az, hogy olyan axiómákat adjunk, amelyeknek lényegében csak a természetes számok a modellje. (izomorfizmus erejéig). Ez nem megy elsőrendű nyelven, mert van megszámlálhatatlan modell is a következő axiómákhoz. N(0) x N(S(x)) x 0 S(x) x,y x y S(x) S(y) x N(x) 0+x = x x,y N(x) N(y) S(m) + n = s(m + n) indukciós axióma: vagy másodrendű nyelven vagy elsőrendűn, de akkor végtelensok axióma Logikai következtetés Hogyan általánosítsuk az ítéletkalkulus módszereit? Van teljes módszer? (igen! Például a rezolúció) ötlet: Ítéletkalkulus következő outputmezőit emeljük át ehhez: a) kvantoroktól megszabadulunk b) következtetési szabályokat felemeljük (lifting) úgy, hogy a finomszerkezete (azaz változó hozzárendelése) figyelünk behelyettesításekkel popelem : a behelyettesítés szintaktikai operáció lesz.
kvantorok : xf(x) => f(c), ahol c skolem konstans szimbólum. Általában : skolemizáció: Ha y kvantorok között, és az x1,...,x n -el kötött változókhoz tartozó kvantorok hatáskörében van, akkor helyettesítünk F(x 1,...,x n ) skolem függvénnyel például: x( yp(x,y)) => x(p(x,f(x))) xf(x) => f(x) elhagyjuk a kvantort és minden szabad változót -nel kötöttnek tekintünk Megjegyzés: Logikai következmény szempontjából ekvivalens, de minden kvantorhoz új változónév kell: (pl xp(x) xr(x) => P(x) R(y)) Ebben az állapotban nincsenek kvantorok, csak predikátumok logikai kombinációi, ahol a termek lehetnek változók is. Lifting: P 1 ',...,P n ', P 1,...,P n : atomok P1',..., Pn ', P1 Pn q helyettesít Θ, q Ahol Θ helyettesítés azon szabad változók helyettesítése olyan termekkel, amelyek más mondatokban előfordulnak. Például: Fekete H, Fekete x Hattyú x Hattyú H ahol Θ = {x/h} Ezzel a helyettesítéssel Fekete(H), Fekete(x) -et azonos alakra hozzuk. Θ megtalálásához adható hatékony algoritmus, mely a legoptimálisabb hozzárendelést adja meg, azaz csak akkor rendel x-hez értéket, ha a másik literálban ugyanott nem változó van, hanem konstans vagy függvény. Rezolúció Itt is ellentmondáshoz jutunk, mint az ítéletkalkulusban 1. Vegyük fel β -t : α β -ból indulunk 2. α β konjuktív normálformája kell -t automatikusan bevisszük csak és marad konstansoktól megszabadulunk literálok klózait hozzuk létre ( -t kivisszük)
egyetlen-szabály : két klózra l 1 l 2, m 1 m n helyettesít(θ, l 1 l i-1 l i+1 l 2 m 1 m j-1 m j+1 m n ) (lifting a rezolúció szabályhoz) ahol helyettesít (Θ, l i ) = helyettesít (Θ, m j ) Tétel A rezolúció cáfolás-teljes, azaz ha β logikai következmény, találunk bizonyítást, de ha nem, akkor nem kell bizonyítani. Bizonyítás Hasonló mint az ítéletkalkulus, de néhány extra lépés : kihagyjuk Gödel tétele Minden ellentmondásmentes, a természetes számok elméletét tartalmazó, formális-axiomatikus elméletben megfogalmazható olyan mondat, mely se nem bizonyítható, se nem cáfolható. Előre-hátra láncolás Horn-hoz hasonló adatbázis formátum. Határozott klóz : f 1 f 2... f k f k+1, ahol f i -k atomok (pozitív literálok) Tények: pozitív literál Literálok paraméterei: ha csak konstans vagy változó, akkor DATALOG formátum (függvényt nem engedünk) Kvantorokat továbbra is úgy kezeljük, ahogy eddig ötlet: Két módus ponens-t használunk a liftingel ugyanaz, mint az ítéletkalkulus, de 1. algoritmus kell, az összes lehetséges helyettesítés megtalálásához 2. akkor van vége, ha egy új formula és a bizonyítandó α közös alakra hozható helyettesítésnek, vagy nincs új formula (ekkor α nem logikai következmény) DATALOG adatbázison mindig megáll, de egyébként nem. Pl.: 1. N(0) 2. N(x) N(S(x)) -ből generálva N(S(0)), N(S(S(0))), stb A logikai következmények száma végtelen, nemtudjuk mikor kell megállni Félig eldönthető, ha α nem következmény, akkor nem áll meg, ha igen, akkor leáll A változók miatt az elsőrendű logikában a modus ponens lehetséges alakjainak előállítása NP nehéz! Példa probléma:
D : különböző D(wa, nt) S(wa, sa) D(nt, q)... stb színezhető tények : D(piros, kék), D(piros, zöld), stb A gyakorlatban nem feltétlenül nehéz heurisztikák: pl egy f 1... f 2 először azt, ami a legnehezebben kielégíthető alapvető probléma: irreleváns következtetések => visszafelé láncolás Ugyanaz, mint az ítéletkalkulus, csak a helyettesítésekre kell figyelni 1. A helyettesítések Θ halmaza kezdetben üres 2. Mélységi bejárással ezt a halmazt fokozatosan bővítjük, hozzáadva az új helyettesítéseket (amíg lehet) 3. A művelet sikeres, ha eljutunk a tényekig, melyek a levelekben vannak, ebben az esetben megkapjuk a behelyettesítést is. 4. A mélyésgi keresés miatt nem teljes és ismétlődő állapotok is lehetnek. Logikai programozás A logikai programozás esetében a programokat relációkkal specifikáljuk. A program futása az logikai következtetésen alapszik. Prolog: Legkiemeltebb környezet Hátrafelé láncolás, határozott klózok a tudásanyag szintaxis pl: A(x,y) B(x) C(x) kb. c(x) :- A(x,y), B(x) Néhány kompromisszummal számolni kell: Pl.: predikátumnak van mellékhatása (input/output, stb) néhány gond például a) (1) path (X,Z) :- link (X,Z) (2) path(x,z) :- path(x,y), link (Y,Z) (nagybetű: változó, kisbetű: konstans) Az A B C gráfon végtelen ciklus következik, ha fordított sorrendben írjuk fel a szabályt ((2),(1)) ( <= mélységi keresés)
Ugyanazt az állapotot többször is elérjük, azonban lehet hatékonysági gond Sok lehetséges útvonal A-ból B-be, ezekből sok a fölösleg Végeredményeket táblázatba lehet tárolni (<= dinamikus programozás) Automatikus tételbizonyítás Nem csak határozott klózok vesznek részt, elsőrendű formulák A :- B,C A:- C,B nem mindegy a sorrend OTTER 4 részre osztjuk a tudásbázist támogató halmaz pontos tények használható axiómák háttértudás Átírók termekhez, pl x+0 = x kontroll info pl heurisztika, keresés szabályozásához működés: rezolúció, ahol a támogató halmaz egy elemét és egy axiómát rezolválunk, a legkönnyebb klózt választjuk. A halmazhoz aztán klózokat adunk alkalmazás: néhány területen, algebra, számelmélet