Instytut Informatyki Poznań, rok akademicki 2009/2010 1 Postać klauzulowa formu l 2 Regu la rezolucji Regu la rezolucji dla klauzul ustalonych Regu la rezolucji dla klauzul ustalonych a spe lnialność Ogólna regu la rezolucji 3 Ogólna metoda rezolucji Metoda Poprawność i pe lność rezolucji Formu ly ustalone Przedrostkowa koniunkcyjna postać normalna Term oraz atom nazywamy ustalonym wtw, gdy nie zawiera zmiennych. Formu la jest ustalona wtw, gdy nie zawiera ani kwantyfikatorów, ani zmiennych. Formu l e A nazywamy ustalona instancja formu ly A (która nie zawiera kwantyfikatorów), jeśli A można otrzymać z formu ly A przez podstawienie za zmienne formu ly A termów ustalonych. Klauzula C jest klauzula ustalona wtw, gdy jest ustalona instancja klauzuli C, czyli można ja otrzymać z C przez zastapnienie wszystkich zmiennych w C termami ustalonymi. Litera l ustalony jest ustalona instancja litera lu. p(a), f (5) p(a) q(b) A = p(x) q(y) A = p(a) q(b) C = r(x) s(y) C = r(a) s(b) p(a) Formu la jest w koniunkcyjnej postaci normalnej wtw, gdy jest koniunkcja alternatyw litera lów. Klauzula jest w przedrostkowej koniunkcyjnej postaci normalnej wtw, gdy jest postaci: Q 1 x 1 Q 2 x 2... Q n x n M gdzie Q i, i = 1,..., n sa kwantyfikatorami, a M jest formu l a w koniunkcyjnej postaci normalnej, niezawierajac a kwantyfikatorów. Ciag Q 1 x 1 Q 2 x 2... Q n x n jest nazywany przedrostkiem (prefiksem), a M matryca formu ly.
Postać klauzulowa formu l - sprowadzanie formu ly do postaci klauzulowej Formu la zamknieta jest w postaci klauzulowej wtw, gdy jest w przedrostkowej koniunkcyjnej postaci normalnej i jej prefix zawiera wy l acznie kwantyfikatory uniwersalne. x 1 x 2... x n M x y p(x, y) y x p(x, y) Krok 1 Przemianuj zmienne kwantyfikowane w ten sposób, aby żadna zmienna nie wyst epowa la w dwóch kwantyfikatorach. x y p(x, y) w z p(z, w) x y p(x, y) w z p(z, w) Krok 2 Usuń wszystkie binarne operatory logiczne oprócz oraz. x y p(x, y) w z p(z, w) x y p(x, y) w z p(z, w) Krok 3 Przesuń operatory negacji do środka, usuwajac podwójna negacje, tak, aby negacja wystepowa la tylko przy formu lach atomowych. Skorzystaj z równoważnosci: x A(x) x A(x) oraz x A(x) x A(x) x y p(x, y) w z p(z, w)
x y p(x, y) w z p(z, w) Krok 4 (żadna zmienna nie wyst epuje w dwóch kwantyfikatorach!) Wydobadź kwantyfikatory z matrycy stosujac równoważności: A op QxB(x) Qx(A op B(x)) oraz QxA(x) op B Qx(A(x) op B) gdzie op {, }. w( x y p(x, y) z p(z, w)) w z x y ( p(x, y) p(z, w)) w z x y ( p(x, y) p(z, w)) Krok 5 Korzystajac z praw rozdzielczości, przekszta lć matryce formu ly do koniunkcyjnej postaci normalnej. w z x y ( p(x, y) p(z, w)) Notacja w z x y ( p(x, y) p(z, w)) Krok 6 - funkcje Skolema x - kwantyfikator egzystencjalny wystepujacy w formule A, y 1,..., y n zmienne kwantyfikowane uniwersalnie przed x, f nowy symbol funkcyjny o arności n. Usuń x i zastap każde wystapienie zmiennej x termem f (y 1,..., y n ). Jeśli żaden kwantyfikator uniwersalny nie poprzedza x, to zastap x nowa sta l a a (funkcja 0-argumentowa). w x y ( p(x, y) p(g(w), w)) w x ( p(x, f (w, x)) p(g(w), w)) x w ( p(x, f (w, x)) p(g(w), w)) r(a) ( p(x, f (w, x)) p(g(w), w)) r(a) {{ p(x, f (w, x)), p(g(w), w)}, {r(a)}} Formu la jest zbiorem klauzul. Klauzula jest zbiorem litera lów.
Klauzula pusta i pusty zbiór klauzul... Adam i orzeszki Oznaczenia Klauzule pusta oznaczamy przez. Pusty zbiór klauzul oznaczamy. Lemat Klauzula pusta jest niespe lnialna. Formu la pusta jest formula prawdziwa. jedzenie(jab lko) lubi(adam, jab lko), jedzenie(jab lko) lubi(adam, jab lko) Regu la rezolucji dla klauzul ustalonych Terminologia Niech C 1 i C 2 bed a klauzulami ustalonymi, takimi, że l C 1 oraz l C 2. Klauzule C 1 i C 2 nazywamy kolidujacymi i mówimy, że koliduja wzgledem litera lów komplementarnych l i l. Rezolwenta klauzul C 1 i C 2 nazywamy klauzule C postaci C = Rez(C 1, C 2 ) = (C 1 \ {l}) (C 2 \ {l }). Klauzule C 1 i C 2 nazywamy klauzulami macierzystymi dla C. Przypomnienie Klauzula ustalona = klauzula bez kwantyfikatorów i zmiennych. Klauzula = alternatywa litera lów. Litera l = atom lub negacja atomu. Atom = p(lista termów). jedzenie(jab lko) lubi(adam, jab lko), jedzenie(jab lko) lubi(adam, jab lko) Klauzule macierzyste Litera ly kolidujace Rezolwenta
Spe lnialność rezolwenty klauzul spe lnialnych Spe lnialność klauzul macierzystych klauzuli spe lnialnej Twierdzenie Rezolwenta klauzul C 1 i C 2 jest spe lnialna wtedy i tylko wtedy, gdy klauzule C 1 i C 2 sa (równocześnie) spe lnialne. Twierdzenie Rezolwenta klauzul C 1 i C 2 jest spe lnialna wtedy i tylko wtedy, gdy klauzule C 1 i C 2 sa (równocześnie) spe lnialne. Niech I bedzie modelem klauzul C 1 i C 2. Niech l C 1 i l C 2 bed a litera lami kolidujacymi. Jeżeli l jest spe lniony w interpretacji I, to l nie jest spe lniony. Zatem w klauzuli C 2 istnieje inny litera l, który jest spe lniony i wyst epuje w klauzuli C, która jest w ten sposób spe lniona. C 1 = { p(a), r(a, f (a))} C 2 = {p(a), q(a), s(f (a))} C = {q(a), r(a, f (a)), s(f (a))} Niech I bedzie modelem klauzuli C. Niech m C C 1 bedzie litera lem spe lnionym w interpretacji I. Wtedy klauzula C 1 jest spe lniona. Z definicji rezolwenty istnieja klazule kolidujace: l C 1 i l C 2 Rozszerzmy interpretacje I tak, że litera l l nie jest spe lniony w I. Wtedy l jest spe lniony, a zatem również klauzula C 2 jest spe lniona. C 1 = { p(a), r(a, f (a))} C 2 = {p(a), q(a), s(f (a))} C = {q(a), r(a, f (a)), s(f (a))} Ogólna regu la rezolucji Znowu Adam i orzeszki jedzenie(x 1 ) lubi(adam, x 1 ) Niech C 1 i C 2 bed a klauzulami nie majacymi wspólnych zmiennych. Niech l 1 C 1 i l 2 C 2 bed a litera lami takimi, że l 1 i l2 można uzgodnić, a σ niech bedzie ich podstawieniem uzgadniajacym (mgu). Klauzule C 1 i C 2 nazywamy kolidujacymi i mówimy, że koliduja wzgledem litera lów l 1 i l 2. Rezolwenta klauzul C 1 i C 2 nazywamy klauzule postaci: Rez(C 1, C 2 ) = (C 1 σ \ {l 1 σ}) (C 2 σ \ {l 2 σ}) jedzenie(jab lko) jedzenie(kurczak) je(x 1, x 2 ) żyje(x 1 ) jedzenie(x 2 ) je(bogdan, orzeszki) żyje(bogdan) je(bogdan, x 2 ) je(zuzia, x 2 ) σ = {x 1 jab lko } jedzenie(jab lko) lubi(adam, jab lko), jedzenie(jab lko) lubi(adam, jab lko)
Ogólna metoda rezolucji Czy ktoś jeszcze lubi orzeszki? Niech S 0 = S. Za lóżmy, że utworzyliśmy zbiór S i. Wybierz klauzule kolidujace C 1, C 2 S i i niech C = Rez(C 1, C 2 ). Jeśli C jest klauzula pusta, to zakończ: zbiór S jest niespe lnialny. W przeciwnym razie utwórz S i+1 = S i {C}. Jeśli S i+1 = S i dla wszystkich par litera lów kolidujacych, to zakończ wykonywanie: zbiór S jest spe lnialny. jedzenie(x 1 ) lubi(adam, x 1 ) jedzenie(jab lko) jedzenie(kurczak) je(x 2, x 3 ) żyje(x 2 ) jedzenie(x 3 ) je(bogdan, orzeszki) żyje(bogdan) je(bogdan, x 4 ) je(zuzia, x 4 ) lubi(adam, orzeszki) żyje(bogdan) jedzenie(orzeszki) jedzenie(orzeszki) lubi(adam, orzeszki) Adam lubi orzeszki! σ 1 = {x 2 bogdan, x 3 orzeszki} σ 2 = {x 1 orzeszki } Rezolucja - przyk lad Lemat o podnoszeniu p(x 1 ) q(x 1 ) r(x 1, f(x 1 )) p(x 2 ) q(x 2 ) s(f(x 2 )) t(a) p(a) r(a, x 3 ) t(x 3 ) t(x 4 ) q(x 4 ) t(x 5 ) s(x 5 ) q(a) q(a) s(f(a)) s(f(a)) q(a) r(a, f(a)) r(a, f(a)) t(f(a)) s(f(a)) σ 1 = {x 4 a} σ 2 = {x 2 a} σ 3 = {x 1 a} σ 4 = {x 3 f(a)} σ 5 = {x 5 f(a)} σ = {x 1 a, x 2 a, x 3 a, x 4 f(a), x 5 f(a)} Lemat Niech C 1 i C 2 bed a instancjami ustalonymi klauzul C 1 oraz C 2. Niech C bedzie rezolwenta ustalona klauzul C 1 i C 2. Wówczas istnieje rezolwenta C klauzul C 1 oraz C 2 taka, że C jest instancja ustalona C. Rezolucja C 1, C 2 C 1, C 2 C Rezolucja dla klauzul ustalonych C
Przyk lad Poprawność i pe lność rezolucji C 1, C 2 C 1, C 2 Rezolucja C Rezolucja dla klauzul ustalonych C C 1 = p(x) q(x) C 2 = p(f (u)) r(w) σ 1 = {x f (a), u a, w b} C 1 = p(f (a)) q(f (a)) C 2 = p(f (a)) r(b) C = q(f (a)) r(b) σ 2 = {x f (u)} C = q(f (u)) r(w) σ 3 = {u a, w b} Poprawność Jeżeli na podstawie ogólnej metody rezolucji można wyprowadzić klauzule pusta, to zbiór klauzul jest niespe lnialny. Pe lność Jeśli zbiór klauzul jest niespe lnialny, to stosujac ogólna metode rezolucji można wyprowadzić klauzule pusta. Przyk ladowe zadania 1 Wykazać spe lnialność formu ly rachunku predykatów metoda rezolucji. 2 Sprowadzić, podana formu l e rachunku predykatów do postaci klauzulowej.