Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna Procedura decyzyjna 2 Reguły α i β Podstawowe pojęcia Reguły α Reguły β 3 - algorytm Algorytm MTS Tabela semantyczna a spełnialność Problem spełnialności Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji Zdefiniowaliśmy pewien język formalny: rachunek zdań. 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. 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 Niech U = {p q, p} i A = {p q} Interpretacja v(p) = 1, v(q) = 1 jest jedynym modelem U. v(a) = 1, a zatem A jest logiczną konsekwencją U.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Własności logicznej konsekwencji Teoria 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. 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. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Teoria aksjomatyzowalna Przykład 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. Teoria Niech U = {p q, p}. T = {p q, p, q, p q, p q, p q...}
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Jeszcze raz Sherlock Holmes Procedura decyzyjna 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. 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. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Przykład Podstawowe pojęcia Czy formuła A = p p należy do zbioru formuł spełnialnych? Można zastosować metodę tablic logicznych. p p p 1 0 0 0 Formuła A nie należy do zbioru formuł spełnialnych. Dopełnienie, komplementarność Literał: atom oraz negacja atomu (pozytywny, negatywny). (p, p): 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.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Na zdrowy rozum 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. Czy formuła A = (((p q) p) p) jest spełnialna? Szukamy modelu formuły A. Kiedy v( (((p q) p) p)) = 1? v((p q) p) = 1 i v(p) = 0 v(p q) = 0 i v(p) = 0 lub v(p) = 1 i v(p) = 0 v(p) = 1 i v(q) = 0 i v(p) = 0 A 1 A 2 A 1 A 2 (A 1 A 2 ) 0 1 0 0 Formuła A jest niespełnialna. v( (((p q) p) p)) = 1 v((p q) p) = 1 i v(p) = 0 v(p q) = 0 i v(p) = 0 lub v(p) = 1 i v(p) = 0 v(p) = 1 i v(q) = 0 i v(p) = 0 v( (((p q) p) p)) = 1 v((p q) p) = 1 i v( p) = 1 v( (p q)) = 1 i v( p) = 1 lub v(p) = 1 i v( p) = 1 v(p) = 1 i v( q) = 1 i v( p) = 1 (((p q) p) p) (p q) p i p (p q) i p lub p i p p i q i p 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 atomy. Para literałów komplemetarnych w liściu wskazuje, że w tej ścieżce nie ma Joanna modelu Józefowska formuły A. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Obserwacja Warunek postaci v(a 1 ) = x i v(a 2 ) = y, x, y {0, 1} A 1 1-0 0-1 A 1 A 2 A 1 A 2 A 1 A 2 1 0 0 A 1 A 2 A 1 A 2 A 1 A 2 A 1 A 2 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 A 1 1-0 0-1 A 1 A 2 A 1 A 2 A 1 A 2 1 0 0 A 1 A 2 A 1 A 2 A 1 A 2 A 1 A 2 1-1 A 1 0-0 (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 ) 1 0 1 (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 )
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Reguły α Warunek postaci v(a 1 ) = x lub v(a 2 ) = y, x, y {0, 1} α α 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 A 1 1-0 0-1 A 1 A 2 A 1 A 2 A 1 A 2 1 0 0 A 1 A 2 A 1 A 2 A 1 A 2 A 1 A 2 1-1 A 1 0-0 (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 ) 1 0 1 (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 ) (A 1 A 2 ) Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Reguły β Co to jest metoda tabel semantycznych? β β 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 ) Algorytm do badania spełnialności (prawdziwości) formuł rachunku zdań. 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.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Algorytm konstrukcji tabeli semantycznej Algorytm c.d. Tabela semantyczna T dla formuły A jest drzewem, którego każdy wierzchołek n zawiera zbiór formuł U(n). Początkowo T składa się z pojedynczego wierzchołka (korzenia) zawierającego zbiór jednoelementowy {A}. A = [(p q) ( p q)] n { [(p q) ( p q)]} Tworzenie tabeli semantycznej przebiega iteracyjnie przez wybór nieoznakowanego liścia n, zawierającego U(n) i wykonanie jednego z następujących kroków algorytmu. Jeżeli U(n) nie jest zbiorem literałów, to wybierz dowolną formułę A z tego zbioru, niebędącą literałem. Jeśli A jest typu α, to utwórz nowy wierzchołek n, będący potomkiem wierzchołka n i umieść w nim U(n ) = ((U(n) {A}) {α 1, α 2 }). (Jeśli formuła A jest postaci (A 1 ), to nie ma formuły α 2.) Formuła typu α [(p q) ( p q)] n n {(p q), ( p q)} Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Algorytm c.d. Algorytm c.d. {(p q), ( p q)} Jeśli A jest typu β, utwórz dwa nowe wierzchołki n oraz n jako następniki wierzchołka n. W wierzchołku n umieść U(n ) = (U(n) {A}) {β 1 }, a w wierzchołku n umieść U(n ) = (U(n) {A}) {β 2 }. Formuła typu β {(p q), ( p q)} n n n { p, ( p q)} {q, ( p q)} Jeżeli U(n) (zbiór formuł w wierzcholku n) jest zbiorem literałów, to sprawdź, czy zawiera on parę literałów komplementarnych. Jeżeli tak, to oznakuj go jako domknięty, jeżeli nie, to oznakuj go jako otwarty. n n n { p, p, q} {q, p, q}
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Domknięta i otwarta tabela semantyczna MTS jako procedura decyzyjna Tabele semantyczna, której tworzenie zakończono (w liściach są tylko literały) nazywamy zakończoną. Tabelę zakończoną nazywamy domkniętą, jeśli wszystkie liście są oznakowane jako domknięte. Jeżeli istnieje liść otwarty, to tabelę nazywamy otwartą. Algorytm tworzenia tabeli semantycznej zatrzymuje się. Formuła A jest niespełnialna wtw, gdy zakończona tabela T dla formuły A jest domknięta. Formuła A jest spełnialna wtw, gdy T jest otwarta. Formuła A jest prawdziwa wtw tabela semantyczna dla formuły A jest domknięta. jest procedurą decyzyjną rozstrzygającą prawdziwość formuł rachunku zdań. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm - Przykład Problem spełnialności { [(p q) ( p q)]} α(4) {p q, ( p q)} { p, ( p q)} β(3) α(3) α(3) {q, ( p q)} Sformułowanie Problem spełnialności to pytanie: Czy dla danej formuły rachunku zdań istnieje model? Odpowiedź NIE jest równoważna odpowiedzi TAK na pytanie: Czy negacja tej formuły jest formułą prawdziwą? { p, p, q} α(1) α(1) {q, p, q} { p, p, q} {q, p, q}
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Złożoność obliczeniowa problemu spełnialności Przykładowe zadania Dla formuły zawierającej n zmiennych tablica logiczna ma 2 n wierszy. Można wykazać (Cook, 1971), że problem spełnialności w rachunku zdań jest NP-zupełny. nie spowoduje zmniejszenia złożoności w najgorszym wypadku, ale średnio zachowuje się lepiej niż tablice logiczne. 1 Wykazać równoważność logiczną formuł rachunku zdań metodą tabel semantycznych: Zbudować odpowiednią formułę za pomocą operatora równoważności. Zanegować otrzymaną formułę. Zastosować metodę tabel 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ć!).