Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β, δ i γ Podstawowe pojęcia Reguły α Reguły β Reguły γ i δ 3 Metoda tablic semantycznych Inicjalizacja Budowa drzewa Tablica semantyczna a spełnialność MTS jako procedura dowodowa Algorytm
Dedukcja drogi Watsonie, dedukcja... Zdefiniowaliśmy pewien język formalny: rachunek predykatów. A właściwie po co? Sherlock Holmes stosował metodę dedukcji bez specjalnych formalizmów. A komputer? Jednym z zastosowań języków programowania w logice jest automatyczne wnioskowanie (sztuczna inteligencja). Wnioskowanie odbywa się na ogół na podstawie pewnych przesłanek, założeń. Np.: Pan Brown leżał koło biurka i trzymał pistolet w prawej ręce. To sugeruje, że został zamordowany, ponieważ był mańkutem i z pewnością sam strzelałby lewą ręką. Ktoś go zastrzelił, a potem włożył mu pistolet do ręki. Kiedy formuły są równoznaczne? Definicja Niech A 1 i A 2 będą formułami zamkniętymi. Jeśli v I (A 1 ) = v I (A 2 ) dla wszystkich interpretacji I, to A 1 jest logicznie równoważna A 2, co oznaczamy A 1 A 2.
Przykład Wykażemy, że (p(a) q(a)) ( p(a) q(a)) v I1 (p(a)) = 1 v I1 (q(a)) = 1 v I2 (p(a)) = 0 v I2 (q(a)) = 1 v I3 (p(a)) = 1 v I3 (q(a)) = 0 v I4 (p(a)) = 0 v I4 (q(a)) = 0 v I1 (p(a) q(a)) = 1 v I1 ( p(a) q(a))) = 1 v I2 (p(a) q(a)) = 1 v I2 ( p(a) q(a))) = 1 v I3 (p(a) q(a)) = 0 v I3 ( p(a) q(a))) = 0 v I4 (p(a) q(a)) = 1 v I4 ( p(a) q(a))) = 1 Definicja logicznej konsekwencji Definicja Niech U będzie zbiorem formuł, A zaś formułą. Jeśli w każdym modelu U wartością A jest 1, to A nazywamy konsekwencją logiczną U, co zapisujemy U = A. Jesli zbiór U jest pusty, to pojęcie konsekwencji logicznej jest tożsame z pojęciem prawdziwości ( = A).
Przykład Przykład Niech U = {p(a) q(a), p(a)} i A = {p(a) q(a))} Interpretacja I : v(p(a)) = 1, v(q(a)) = 1 jest jedynym modelem zbioru U. W interpretacji I v(a) = 1, a zatem A jest logiczną konsekwencją U. Warunek konieczny i dostateczny Twierdzenie A B wtw gdy = A B. Niech U = {A 1,... A n } U = A wtw gdy = (A 1... A n ) A.
Własności logicznej konsekwencji Twierdzenie Niech U = {A 1, A 2,..., A n }. Wtedy U = A wtw, gdy = (A 1... A n A). Twierdzenie Jeśli U = A, to dla dowolnej formuły B zachodzi U {B} = A. Twierdzenie Jeśli U = A, B zaś jest formułą prawdziwą, to U \ {B} = A. Teoria Definicja Zbiór formuł T nazywamy teorią wtw, gdy jest on zamknięty ze względu na konsekwencje logiczne. Zbiór T jest zamknięty ze względu na konsekwencje logiczne wtw, gdy dla wszystkich formuł A zachodzi zależność: jeśli T = A, to A T. Elementy zbioru T nazywamy twierdzeniami.
Teoria aksjomatyzowalna Definicja Niech U będzie zbiorem formuł. T (U) = {A U = A} nazywamy teorią zbioru formuł U. Formuły ze zbioru U nazywamy aksjomatami, a o teorii T (U) mówimy, że jest aksjomatyzowalna. Przykład Teoria Niech U = {p(a) q(a), p(a)}. T = {p(a) q(a), p(a), q(a), p(a) q(a), p(a) q(a), p(a) q(a)...}
Jeszcze raz Sherlock Holmes Dedukcja Czy fakt, że pan Brown został zamordowany jest logiczną konsekwencją faktów, że był mańkutem i trzymał pistolet w prawej ręce? Jak ustalić, że formuła jest elementem pewnego zbioru formuł (np. teorii)? Dedukcja i nie tylko. Procedura decyzyjna Definicja Niech U będzie zbiorem formuł. Procedurą decyzyjną dla zbioru U nazywamy algorytm, który dla dowolnej formuły A F kończy działanie oraz udziela odpowiedzi TAK, jeśli A U, a odpowiedzi NIE, jeśli A U.
Przykład Czy formuła A = p(a) p(a) należy do zbioru formuł spełnialnych? Można zastosować metodę tablic logicznych i srawdzić wszystkie interpretacje... p(a) p(a) p(a) 1 0 0 0 Formuła A nie należy do zbioru formuł spełnialnych. Zbiór {p(a), p(a)} nie jest spełnialny. Podstawowe pojęcia Dopełnienie, komplementarność Literał: atom oraz negacja atomu (pozytywny, negatywny). (p(a), p(a)): para literałów komplementarnych. (A, A): para formuł komplementarnych. A jest dopełnieniem formuły A, a A jest dopełnieniem formuły A. Zbiór jest spełnialny, gdy nie zawiera pary literałów komplementarnych.
Na zdrowy rozum Czy formuła A = (((p(a) q(a)) p(a)) p(a)) jest spełnialna? Szukamy modelu formuły A. Kiedy v( ((p(a) q(a)) p(a)) p(a)) = 1? v((p(a) q(a)) p(a)) = 1 i v(p(a)) = 0 v(p(a) q(a)) = 0 lub v(p(a)) = 1 i v(p(a)) = 0 i v(p(a)) = 0 v(p(a)) = 1 i v(q(a)) = 0 i v(p(a)) = 0 Formuła A jest niespełnialna. A 1 A 2 A 1 A 2 (A 1 A 2 ) 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 Jak z tego zrobić algorytm? Korzystając z faktu, że v(a) = 0 wtw v( A) = 1 zapiszmy nasze rozumowanie tak, żeby usunąć wartość zero. v( (((p(a) q(a)) p(a)) p(a))) = 1 v((p(a) q(a)) p(a)) = 1 i v(p(a)) = 0 v(p(a) q(a)) = 0 i v(p(a)) = 0 lub v(p(a)) = 1 i v(p(a)) = 0 v(p(a)) = 1 i v(q(a)) = 0 i v(p(a)) = 0 v( (((p(a) q(a)) p(a)) p(a))) = 1 v((p(a) q(a)) p(a)) = 1 i v( p(a)) = 1 v( (p(a) q(a))) = 1 i v( p(a)) = 1 lub v(p(a)) = 1 i v( p(a)) = 1 v(p(a)) = 1 i v( q(a)) = 1 i v( p(a)) = 1 (((p(a) q(a)) p(a)) p(a)) (p(a) q(a)) p(a) i p(a) (p(a) q(a)) i p(a) lub p(a) i p(a) p(a) i q(a) i p(a) Teraz możemy opuścić funkcję interpretacji, a zachować tylko postać formuły, która ma być spełniona. Zatem rozwijamy drzewo tak długo, aż w liściach mamy tylko literały. Para literałów komplemetarnych w liściu wskazuje, że w tej ścieżce nie ma modelu formuły A.
Obserwacja A v(a 1 ) v(a 2 ) v(a) A 1 1-0 0-1 A 1 A 2 1 1 1 A 1 A 2 0 0 0 A 1 A 2 1 0 0 A 1 A 2 1 1 0 A 1 A 2 0 0 1 A 1 A 2 v(a 1 ) = v(a 2 ) 1 A 1 A 2 v(a 1 ) = v(a 2 ) 0 Zauważmy, że dla każdej formuły postaci A 1 opa 2 możemy podać warunek spełnialności w jednej z następujących postaci: v(a 1 ) = 1 i v(a 2 ) = 1 v(a 1 ) = 1 i v( A 2 ) = 1 v( A 1 ) = 1 i v(a 2 ) = 1 v( A 1 ) = 1 i v( A 2 ) = 1 v(a 1 ) = 1 lub v(a 2 ) = 1 v(a 1 ) = 1 lub v( A 2 ) = 1 v( A 1 ) = 1 lub v(a 2 ) = 1 v( A 1 ) = 1 lub v( A 2 ) = 1 Warunek postaci v(a 1 ) = x i v(a 2 ) = y, x, y {0, 1} A v(a 1 ) v(a 2 ) v(a) A 1 1-0 0-1 A 1 A 2 1 1 1 A 1 A 2 0 0 0 A 1 A 2 1 0 0 A 1 A 2 1 1 0 A 1 A 2 0 0 1 A 1 A 2 v(a 1 ) = v(a 2 ) 1 A 1 A 2 v(a 1 ) = v(a 2 ) 0 A v(a 1 ) v(a 2 ) v(a) 1-1 A 1 0-0 (A 1 A 2 ) 1 1 0 (A 1 A 2 ) 0 0 1 (A 1 A 2 ) 1 0 1 (A 1 A 2 ) 1 1 1 (A 1 A 2 ) 0 0 0 (A 1 A 2 ) v(a 1 ) = v(a 2 ) 0 (A 1 A 2 ) v(a 1 ) = v(a 2 ) 1
Reguły α α α 1 α 2 A 1 A 1 A 1 A 2 A 1 A 2 (A 1 A 2 ) A 1 A 2 (A 1 A 2 ) A 1 A 2 (A 1 A 2 ) A 1 A 2 A 1 A 2 A 1 A 2 A 1 A 2 A 1 A 2 A 2 A 1 (A 1 A 2 ) A 1 A 2 A 2 A 1 Warunek postaci v(a 1 ) = x lub v(a 2 ) = y, x, y {0, 1} A v(a 1 ) v(a 2 ) v(a) A 1 1-0 0-1 A 1 A 2 1 1 1 A 1 A 2 0 0 0 A 1 A 2 1 0 0 A 1 A 2 1 1 0 A 1 A 2 0 0 1 A 1 A 2 v(a 1 ) = v(a 2 ) 1 A 1 A 2 v(a 1 ) = v(a 2 ) 0 A v(a 1 ) v(a 2 ) v(a) 1-1 A 1 0-0 (A 1 A 2 ) 1 1 0 (A 1 A 2 ) 0 0 1 (A 1 A 2 ) 1 0 1 (A 1 A 2 ) 1 1 1 (A 1 A 2 ) 0 0 0 (A 1 A 2 ) v(a 1 ) = v(a 2 ) 0 (A 1 A 2 ) v(a 1 ) = v(a 2 ) 1
Reguły β β β 1 β 2 (B 1 B 2 ) B 1 B 2 B 1 B 2 B 1 B 2 B 1 B 2 B 1 B 2 B 1 B 2 B 1 B 2 (B 1 B 2 ) B 1 B 2 (B 1 B 2 ) (B 1 B 2 ) (B 2 B 1 ) B 1 B 2 (B 1 B 2 ) (B 2 B 1 ) Reguły γ i δ Co z kwantyfikatorami? γ x A(x) x A(x) γ(a) A(a) A(a) δ x A(x) x A(x) δ(a) A(a) A(a)
Co to jest metoda tablic semantycznych? Algorytm do badania spełnialności (prawdziwości) formuł rachunku predykatów. Polega na systematycznym poszukiwaniu modelu. Wykorzystuje reguły α, β, γ i δ. Reguła α definiuje jedną ścieżkę: wszystkie powstające formuły muszą być spełnione równocześnie. Reguła β definiuje dwie ścieżki, z których każdą trzeba sprawdzić oddzielnie. W ten sposób powstaje drzewo przeszukiwania. Metoda tablic semantycznych Tablica semantyczna T dla formuły A jest drzewem, którego każdy wierzchołek zawiera parę W (n) = (U(n), C(n)), gdzie U(n) = {A 1,..., A k } jest zbiorem formuł, C(n) = {a 1,..., a m } jest zbiorem stałych występujących w formułach należących do U(n).
Metoda tablic semantycznych Początkowo T składa się z pojedynczego wierzchołka (korzenia) zawierającego parę (A, {a 1,..., a k }), gdzie {a 1,..., a k } jest zbiorem stałych występujących w A. Jeśli formuła A nie zawiera stałych, to należy wybrać dowolną stałą a, wówczas korzeń będzie zawierał parę postaci ({A}, {a}). A = (p(a, b) r(a, b)) l (p(a, b) r(a, b), {a, b}) Metoda tablic semantycznych Tworzenie tablicy semantycznej przebiega iteracyjnie przez wybór nieoznakowanego liścia l, zawierającego W (l) = (U(l), C(l)) i zastosowanie jednej z nastepujących reguł w podanej kolejności.
Metoda tablic semantycznych Jeśli U(l) jest zbiorem literałów i formuł typu γ, zawierającym parę literałów komplementarnych {p(a 1,..., a k ), p(a 1,..., a k )}, to oznacz ten liść jako domknięty. Liść domknięty l ({p(a, b), p(a, b), q(c)}, {a, b, c}) Metoda tablic semantycznych Jeśli U(l) nie jest zbiorem literałów wybierz dowolną formułę A typu α, β, δ. Jeśli A jest typu α, utwórz nowy wierzchołek l, będący Formuła typu α potomkiem wierzchołka l i (p(a, b) r(a, b), {a, b}) umieść w nim l W (l ) = (U(l ), C(l )) = ((U(l) \ {A}) {α 1, α 2 }, C(l)). (Jeśli formuła A jest postaci l (A 1 ), to nie ma formuły α 2.) ({p(a, b), r(a, b)}, {a, b})
Metoda tablic semantycznych Jeśli A jest typu β, utwórz dwa nowe wierzchołki l oraz l jako następniki wierzchołka l. W wierzchołku l umieść W (l ) = (U(l ), C(l )) = ((U(l) \ {A}) {β 1 }, C(l)), a w wierzchołku l umieść W (l ) = (U(l ), C(l )) = ((U(l) \ {A}) {β 2 }, C(l)). Formuła typu β (p(a) x (q(x) r(a, b, y)), {a, b}) ({ p(a)}, {a, b}) l l l ({ x (q(x) r(a, b, y))}, {a, b}) Metoda tablic semantycznych Jeśli A jest typu δ, to twórz nowy wierzchołek l będący potomkiem wierzchołka l i umieść w nim W (l ) = (U(l ), C(l )) = ((U(l) \ {A}) δ(a), C(l) {a}) gdzie a jest pewną stałą niewystepującą w U(l). Formuła typu δ ({ x (q(x) r(a, b, y))}, {a, b}) l l ({(q(c) r(a, b, y))}, {a, b, c})
Metoda tablic semantycznych Niech {γ 1,..., γ m } U(l) będą wszystkimi formułami typu γ występującymi w U(l) i niech C(l) = {a 1,..., a k }. Utwórz nowy wierzchołek l będący potomkiem wierzchołka l i umieść w nim W (l ) = (U(l ), C(l )) = (U(l) i=m,j=k i=1,j=1 {γ i(a j )}, C(l)) Jeśli U(l) składa się wyłącznie z literałów oraz formuł typu γ oraz U(l ) = U(l), to oznacz ten liść jako otwarty. Liść otwarty l l l ({ x q(x), y r(y)}, {a}) ({ x q(x), y r(y), q(a), r(a)}, {a}) ({ x q(x), y r(y), q(a), r(a)}, {a}) Domknięta i otwarta tablica semantyczna Tablica semantyczna, której tworzenie zakończono (w liściach są tylko literały) nazywamy zakończoną. Tablicę zakończoną nazywamy domkniętą, jeśli wszystkie liście są oznakowane jako domknięte. Jeżeli istnieje liść otwarty, to tablicę nazywamy otwartą. Gałąź tablicy semantycznej nazywamy domkniętą, jeśli jest zakończona liściem oznakowanym jako domknięty. W przeciwnym razie, czyli gdy gałąź jest nieskończona lub zakończona liściem oznakowanym jako otwarty nazywamy ją otwartą.
Poprawność metody tablic semantycznych Poprawność MTS Niech A będzie formułą rachunku predykatów, a T tablicą semantyczną dla A. Jeśli T jest domknięta, to formuła A jest niespełnialna. Nierozstrzygalność Pełność MTS Niech A będzie formułą prawdziwą. Wówczas algorytm systematycznego tworzenia tablic semantycznych utworzy dla formuły A tablicę domkniętą. Dla dowolnej formuły nie można rozstrzygnąć, czy jest ona prawdziwa. Może się zdarzyć, że algorytm budowy tablicy semantycznej formuły rachunku predykatów się nie kończy!
Problem spełnialności Sformułowanie Problem spełnialności to pytanie: Czy dla danej formuły rachunku predykatów istnieje model? Odpowiedź NIE jest równoważna odpowiedzi TAK na pytanie: Czy negacja tej formuły jest formułą prawdziwą? Metoda tablic semantycznych - przykład { ( x (p(x) q(x)) ( x p(x) x q(x)))}, {a} α { x (p(x) q(x)), ( x p(x) x q(x))}, {a} α { x (p(x) q(x)), x p(x), ( x q(x))}, {a} δ { x (p(x) q(x)), x p(x), q(b)}, {a, b}
Metoda tablic semantycznych - przykład c.d. { x (p(x) q(x)), x p(x), q(b)}, {a, b} γ { x (p(x) q(x)), x p(x), q(b)} {p(a) q(a), p(b) q(b), p(a), p(b)}{a, b} β { x (p(x) q(x)), x p(x), q(b)} { x (p(x) q(x)), x p(x), q(b)} {p(a) q(a), p(b), p(a), p(b)}{a, b} {p(a) q(a), q(b), p(a), p(b)}, {a, b} Przykładowe zadania 1 Wykazać równoważność logiczną formuł rachunku zdań metodą tablic semantycznych: Zbudować odpowiednią formułę za pomocą operatora równoważności. Zanegować otrzymaną formułę. Zastosować metodę tablic semantycznych w celu wykazania, że zanegowana formuła jest niespełnialna. 2 Znaleźć model formuły (może się zdarzyć, że modelu nie będzie wtedy trzeba to wykazać!).