MI 2003/7 - 1 Az egyesítési algoritmus Minden kapitalista kizsákmányoló. Mr. Smith kapitalista. Mr. Smith kizsákmányoló.
MI 2003/7 - 2 Formálisan A1. x (Kap(x) Kizs(x)) A2. Kap(Mr. Smith) B. Kizs(Mr. Smith) x/Mr. Smith helyettesítés (illesztés)
MI 2003/7 - 3 Az = { 1 /t 1, …, n /t n } halmazt helyettesítésnek nevezzük, ha 1, …, n egymástól különböző változók, t 1, …, t n termek és t i i (1 i n). Vigyázat, kvantorok jelenléte esetén a hatáskörökre is tekintettel kell lenni - megengedett helyettesítés
MI 2003/7 - 4 Legyen = { 1 /t 1, …, n /t n } egy helyettesítés, A egy logikai formula. Az A formulát az A egy példányának nevezzük, és úgy képezzük, hogy az A-ban a 1, …, n változók minden előfordulását egyidejűleg rendre t 1, …, t n -nel helyettesítjűk. Példa: A = P(x,f(x),y), = {x/y, y/g(a)}
MI 2003/7 - 5 Helyettesítések kompozíciója Az = {x 1 /t 1, …, x n /t n } és = {y 1 /v 1, …, y m /v m } helyettesítések kompozícióját úgy kapjuk, hogy az {x 1 /t 1 , …, x n /t n , y 1 /v 1, …, y m /v m } halmazból töröljük mindazokat a x i /t i elemeket, amelyekre x i =t i , és azokat az y j /v j elemeket, amelyekre y i megegyezik az x 1, …, x n valamelyikével. Példa: = {x/f(y), y/z}, = {x/a, y/b, z/y}
MI 2003/7 - 6 Az A 1, A 2, …, A n formulák egyesíthetők, ha van olyan helyettesítés, amelyre A 1 = A 2 = …= A n . Az A 1, A 2, …, A n legáltalánosabb egyesítőjének nevezünk egy egyesítő helyettesítést, ha bármely egyesítő előállítható -ból egy alkalmas he- lyettesítéssel: -hoz van olyan ’, hogy = ’ (nevektől eltekintve egyértelmű).
MI 2003/7 - 7 Az A 1, A 2, …, A n formulák különbségi halmazát úgy kapjuk meg, hogy először meghatározzuk balról jobbra az első olyan pozíciót, amelyen nem egyezik meg az összes A 1, A 2, …, A n formula, majd vesszük az összes különböző részformulát, amelyek ezen a pozíción kezdődnek. Példa: P(x,g(f(y,z),x), P(x,g(a,g(y,z))), P(x,g(a,b)) {f(y,z),a}
MI 2003/7 - 8 A legáltalánosabb egyesítő meghatározása: 1. Legyen kezdetben az üres helyettesítés. 2. Amíg a formulák nem válnak azonossá, vagy HIBA nincs, addig
MI 2003/7 - 9 a. Képezzük a formulák D különbségi halmazát. b. Ha D-ben van olyan olyan változó, és t term, hogy nem szerepel t-ben, akkor - a kifejezésekre alkalmazzuk a { /t} helyettesítést, - -ra is alkalmazzuk ezt a { /t} helyettesítést, különben HIBA.
MI 2003/ Példa: A1 = Q(f(a),g(x)), A2 = Q(y,y) HIBA Példa: A1 = P(x,u,f(g(x))), A2 = P(a,y,f(y)) Eredmény: P(a,g(a),f(g(a)))
MI 2003/ A rezolúció (alapelv változatlan): 1. Az A 1, A 2, …, A n, B formulákat hozzuk klózformára (kiindulási klózhalmaz). 2. Amíg az üres klózhalmaz nem eleme a klózhalmaznak, a következő lépések: a. Válasszunk két rezolválható klózt, b. Képezzük a két klóz rezolvensét, c. Adjuk a rezolvens klózt a halmazhoz.
MI 2003/ Lényeges különbség a rezolválhatóság megállapításánál és a rezolvensnél (egyesítés)!!! Egy klózban egy literál többször is előfordulhat. A C 1 és C 2 klózokat akkor mondjuk rezolválhatónak, ha található bennük olyan komplemens literálpár (pl. C 1 -ben P, C 2 -ben P), hogy a klózokat
MI 2003/ C 1 = P(t 11, …, t 1n ) ... P(t r1, …, t rn ) C 1 ’ C 2 = P(u 11, …, u 1n ) ... P(u s1, …, u sn ) C 2 ’ alakba írva, a P(t 11, …, t 1n ),…, P(t r1, …, t rn ), P(u 11, …, u 1n ), …, P(u s1, …, u sn ) formulák egyesíthetők. Ha a legáltalánosabb egyesítő, akkor a rezolvens: mindkét klózból elhagyjuk az egyesítésben résztvevő literálokat, a megmaradókat pedig a alkalmazása után diszjunkcióval kapcsoljuk.
MI 2003/ A rezolvens tehát: C 1 ’ C 2 ’ Példa: C 1 = P(x 1,a) P(x 1, y 1 ) P(y 1, x 1 ) C 2 = P(x 2,f(x 2 )) P(x 2,a)
MI 2003/ A rezolúciós algoritmus nemdeterminisztikus: - Melyik két klózt rezolváljuk? - Két klózban több komplemens literálpár szerepelhet, melyiket? - Két klóznak több rezolvense is lehet (C 1 ’ és C 2 ’ is tartalmazhatja P-t) Parciálisan eldönthető Rövidítések (tiszta változó, tautológia…)
MI 2003/ Gyakran kérdésekre kell választ adni, pl.: - Van-e olyan puli, amelyik nem harap? - Ki Péter barátnője? - Melyik folyó mellett van Olaszország fővárosa? - Milyen mozgássorozat oldja meg a Hanoi tornyai problémát?
MI 2003/ Kérdés-felelet probléma. Általános megoldás: egy olyan x elem meghatározása a cél, amelyik kielégít egy bizonyos B(x) állítást. A kérdésből ekkor egy xB(x) bizonyítandó állítást képezünk, és megpróbáljuk belátni, hogy ez következménye az axiómáknak.
MI 2003/ Ha ez sikerült, akkor a rezolúció során alkalmazott egyesítő helyettesítésekből megkapható a keresett elem. Néha nehéz. Jobb: válaszadó eljárás. Itt a célállítás negáltjából származó klózokat kiegészítjük saját negáltjukkal, és így követjük végig az eredeti rezolóciót - a gyökérben megkapjuk a keresett elemet.
MI 2003/ Példa Ha Leona mindenhova követi Jánost, és János a tanyán van, akkor hol van Leona? H(y,x): y az x helyen van (predikátum) 1. x(H(János,x) H(Leona,x)) 2. H(János,tanya) Kérdés: xH(Leona,x)
MI 2003/ Példa Ha x szülője y-nak, és y szülője z-nek, akkor x nagyszülője z-nek. Mindenkinek van szülője. Kérdés: van-e olyan x és z személy, hogy x nagyszülője z-nek? 1. x y z ((S(x,y) S(y,z) N(x,z)) 2. y x S(x,y) 3. x z N(x,z)
MI 2003/ Elsőrendű predikátumkalkulus alkalmazása: PROLOG nyelv. Logikai program elemei: P1. P2. 1 2 ... n , n 1 alakú állítások, valamint P3. ? 1 2 ... m, m 1 alakú kérdés, ahol , 1, 2,... n, , 1, 2,... m nemnegált atomi formulák, P1 és P2 változói univerzálisan, P3 változói egzisztenciális kvantáltak. P1, P2 az axiómák, P3 a bizonyítandó állítás.
MI 2003/ Példa: 1. Az A tárgy kisebb, mint a B tárgy. 2. A B tárgy kisebb, mint a C tárgy. 3. Az A a C mögött van. 4. Ha az x tárgy kisebb, mint az y tárgy, és x takarva van y- nal, akkor x láthatatlan. 5. Ha az u tárgy a v tárgy mögött van, akkor u takarva van v- vel. 6. Van láthatatlan tárgy?
MI 2003/ Logikai program “futása” (interpretálása): Adott a célok egy 1, 2,..., m listája, ezeket egyesével megpróbáljuk levezetni a P1 és P2 premisszák segítségével.
MI 2003/ Definíció. Horn-klóz: legfeljebb egy pozitív literál (nem-negált). Lehetséges alakjai: H1. 1 2 ... n, n 0, H2. 1 2 ... m, m 1, ahol , i, j pozitív literálok. Itt H1 n 1-re P2-vel, n = 0 -ra P1-el, H2 pedig P3 negáltjával ekvivalens.
MI 2003/7 - 25
MI 2003/7 - 26
MI 2003/7 - 27