Wprowadzenie do Sztucznej Inteligencji Wykład 2 Informatyka Studia InŜynierskie Konsekwencje logiczne Formuła A jest konsekwencją logiczną zbioru formuł U, co zapisujemy U A, jeŝeli kaŝda interpretacja, która spełnia U (tzn. jest jego modelem) spełnia takŝe A. JeŜeli zbiór formuł U jest pusty, to pojęcie konsekwencji logicznej jest toŝsame z pojęciem prawdziwości, co zapisujemy A. Niech U={A 1,A 2,,A n } będzie zbiorem formuł, zaś A będzie pojedynczą formułą. Zachodzi wówczas: U A wtedy i tylko wtedy, gdy A 1 A n A. Automatyczne dowodzenie twierdzeń O teoriach formalnie System Logic Theorist System General Problem Solver (GPS) Strategie rezolucyjne - heurystka w procesie dowodzenia Podstawowe pojęcia dotyczące teorii Teoria Zbiór formuł T nazywamy teorią wtw, gdy jest on zamknięty ze względu na konsekwencje logiczne. Zbiór formuł T jest zamknięty ze względu na konsekwencje logiczne wtw, gdy dla wszystkich formuł A zachodzi zaleŝność: jeŝeli T A, to A T. Elementy zbioru T nazywamy twierdzeniami. Niech U będzie zbiorem formuł. Zbiór T(U)={A U A } nazywamy teorią zbioru formuł U, zaś formuły naleŝące do U nazywamy aksjomatami. 1
Wnioskowanie (dowód) Wnioskowaniem ze zbioru formuł U (przesłanek) formuły A (wniosku) nazywamy skończony ciąg formuł W=W 1,...,W n, taki, Ŝe W n =A oraz kaŝda z formuł W i (1 i n) jest elementem zbioru U (aksjomatem) bądź wnioskiem wyprowadzonym za pomocą pewnej reguły wnioskowania z wcześniejszych przesłanek W j. JeŜeli dla danej formuły A oraz zbioru U istnieje wnioskowanie, to piszemy U A. Własności teorii Teoria jest niesprzeczna - to znaczy Ŝadne zdanie i jego negacja nie mogą być jednocześnie twierdzeniami tej teorii. Teoria T (U) jest zupełna, wtedy i tylko wtedy, gdy dla kaŝdego zdania A, albo U A, albo U A. Poprawność i pełność wnioskowania Procedura wnioskowania (procedura dowodowa) jest poprawna, jeŝeli kaŝda formuła produkowana przez tą procedurę ze zbioru formuł U jest równieŝ logiczną konsekwencją zbioru U. Procedura wnioskowania jest pełna, jeŝeli moŝe wygenerować kaŝdą (dowolną) formułę będącą logiczną konsekwencją zbioru formuł U. Dzięki twierdzeniu o pełności i poprawności problem stwierdzenia, czy formuła A jest logiczną konsekwencją zbioru formuł U moŝna sprowadzić do zagadnienia poszukiwania wnioskowania formuły A ze zbioru U, co jest o tyle istotne, Ŝe konstrukcja wnioskowania ma charakter wyłącznie syntaktyczny i poddaje się automatyzacji. Twierdzenie o niezupełności Twierdzenie Gödla (1931) Niech NT będzie zbiorem aksjomatów teorii liczb naturalnych. Jeśli teoria T (NT) jest niesprzeczna, to nie jest zupełna. Teoria T jest rozstrzygalna wtw, gdy istnieje algorytm, który dla kaŝdego zdania A pozwala stwierdzić, czy A T, czy A T. Większość teorii matematycznych, to teorie nierozstrzygalne. 2
Nierozstrzygalność rachunku predykatów Twierdzenie Church a (1936) Logika pierwszego rzędu nie jest rozstrzygalna, ale jest częściowo rozstrzygalna, tzn. nie istnieje algorytm, który dla dowolnej formuły rozstrzyga czy jest ona tautologią, czy nie; istnieje jednak algorytm, który dla dowolnej formuły, która jest tautologią pozwala to stwierdzić. Wniosek: Maksimum tego, czego moŝna oczekiwać od systemów automatycznego dowodzenia twierdzeń, jest konstrukcja dowodu dla formuły będącej twierdzeniem rozwaŝanej teorii rachunku predykatów. Dedukcja Dedukcja jest wnioskowaniem, w której podstawową regułą wnioskowania (dowodową) jest reguła odrywania: A, A B albo A, A B B B Reguła odrywania wymaga aby formuły miały postać atomową lub były klauzulami Horna. Pełność procedury dowodowej - dlaczego? Istnienie pełnej procedury dowodowej: zredukowałoby proces dowodzenia jedynie do mechanicznych manipulacji składnią formuł logicznych oznaczałoby, iŝ wszystkie wnioski i twierdzenia logiki są zawsze i jedynie pochodną przyjętego zbioru aksjomatów i umoŝliwiłoby tym samym automatyzację procesu rozwiązywania kaŝdego problemu sformułowanego w języku logiki (pomijamy problem złoŝoności obliczeniowej takiego procesu!) Logic Theorist (LT) Reprezentacja wiedzy: rachunek zdań i predykatów Mechanizmy wnioskowania: podstawienie zastąpienie reguła odrywania reguła łańcucha Sterowanie wnioskowaniem: przeszukiwanie począwszy od celu we wszystkich moŝliwych kierunkach 3
Logic Theorist (LT): wnioskowanie Podstawienie W kaŝdym twierdzeniu, o którym wiemy, Ŝe jest prawdziwe moŝna podstawić za zmienną dowolne wyraŝenie (w kaŝdym wystąpieniu tej zmiennej). Przykład (B B) B... aksjomat A za B... podstawienie ( A A) A... wynik Logic Theorist (LT): wnioskowanie Reguła odrywania (modus ponens) Z prawdziwości implikacji i jej przesłanek moŝemy wnioskować o prawdziwości jej konkluzji: [(A B) A ] B albo: A B, A B Reguła łańcucha JeŜeli mamy A B oraz B C, to mamy nowy problem (podcel): A C Logic Theorist (LT): wnioskowanie Zastąpienie Operator wyraŝenia moŝna zastąpić wyraŝeniem logicznie równowaŝnym lub jego definicją. Przykład ( A B) (A B)... Definicja ( A A) A... WyraŜenie (A A) A... Zastąpienie Logic Theorist (LT): sterowanie Funkcjonowanie systemu LT opiera się na następującej sekwencji działań: Po pierwsze, wykonanie wszystkich moŝliwych zmian w bieŝącym celu z wykorzystaniem operacji podstawienia, Po drugie, jeŝeli to nie prowadzi do dowodu, stosujemy wszystkie moŝliwe oderwania i zastąpienia do naszego celu; jeŝeli nie doprowadzi to Ŝadnego z wyraŝeń do aksjomatu, wyniki dodawane są do listy podcelów, Po trzecie, stosujemy regułę łańcucha, Po czwarte, jeŝeli Ŝadne z trzech powyŝszych działań nie doprowadziło do dowodu, przechodzimy do listy podcelów i wybieramy kolejny nie rozwaŝany dotąd podcel 4
Logic Theorist (LT): sterowanie Warunki stopu systemu LT: znaleziono dowód lista podcelów jest pusta (tzn. nie moŝna wywieść z posiadanych przesłanek) dostępny czas i/lub pamięć zostały wyczerpane Logic Theorist (LT): podsumowanie Program napisany przez Newella, Simona i Shawa w roku 1956, który dowodził podstawowe twierdzenia pierwszego rozdziału Principia Mathematica Wnioskowanie: dedukcja Procedura pomocnicza: unifikacja wyraŝeń Problemy: złoŝoność, sterowanie wnioskowaniem Logic Theorist (LT): przykłady cel p (q p) nie jest aksjomatem zastąpienie (q p) ( q p) wynik: p ( q p) podcel p ( q p) podstawienie q za q p (q p) to aksjomat c.b.d.u. cel (p p) p nie jest aksjomatem zastąpienie (p p) ( p p) wynik: ( p p) p podcel ( p p) p podstawienie p za p (p p) p to aksjomat c.b.d.u. Means Ends Analysis: system GPS Architektura systemu GPS (General Problem Solver) Lista operatorów Mechanizm porównywania opisów stanów i wykrywania róŝnic Tablica połączeń (tablica operator-róŝnica) Sterowanie: algorytm Means Ends Analysis (MEA) Budowa operatora: warunki początkowe (stosowalności) funkcja transformacji, czyli realizowana operacja, opisana przez rezultaty jej zastosowania redukowane róŝnice (z tablicy połączeń) 5
Means Ends Analysis: algorytm procedure MEA(s bieŝący, s cel ) Porównaj s bieŝący i s cel ; jeśli nie ma róŝnic, to koniec(sukces) w przeciwnym przypadku: a. Wybierz najbardziej istotną róŝnicę b. Wybierz nie analizowany dotąd operator Op, który ma zastosowanie do wykrytej róŝnicy; jeŝeli brak takich operatorów, to koniec(poraŝka) c. Zastosuj operator Op do stanu s bieŝący : wygeneruj opisy dwóch stanów: Start(Op) - stan, w którym spełnione są warunki początkowe Op, Rezultat(Op) - stan, będący rezultatem zastosowania Op d. JeŜeli Część1 MEA(s bieŝący, Start(Op)) Część2 MEA(Rezultat(Op), s cel ) zakończą się sukcesem, to koniec(sukces); zwróć wynik w postaci konkatenacji: Część1, Op, Część2 w przeciwnym przypadku koniec(poraŝka) end Means Ends Analysis: przykład Tablica operatorów: OPERATOR Warunek Rezultat PUSH at(robot, obiekt) at(obiekt, miejsce) (obiekt, miejsce) large(obiekt) at(robot, miejsce) clear(obiekt) armempty CARRY at(robot, obiekt) at(obiekt, miejsce) (obiekt, miejsce) small(obiekt)) at(robot, miejsce) armempty GO at(robot, miejsce) (miejsce) ---- PICKUP at(robot, obiekt) holding(obiekt) (obiekt) armempty PUTDOWN holding(obiekt) armempty (obiekt) STACK at(robot, obiekt2) on(obiekt1, obiekt2) (obiekt1, obiekt2) holding(obiekt1) armempty Means Ends Analysis: algorytm (uwagi) Uwagi do algorytmu: Mechanizm wyboru (kolejność) róŝnic duŝy wpływ na efektywność Mechanizm wyboru operatora usunięcie jednej róŝnicy moŝe wygenerować więcej innych (nowych!) róŝnic Means Ends Analysis: przykład Tablica operator-róŝnica: Przemieść obiekt Przemieść PUSH CARRY GO PICKUP PUTDOWN STACK robota Oczyść obiekt obiekt PołóŜ obiekt PołóŜ obiekt na obiekt na obiekt OpróŜnij OpróŜnij ramię ramię Trzymaj obiekt 6
Means Ends Analysis: przykład Start Cel on(ksiąŝka, biurko) on(ksiąŝka, biurko) at(biurko, pokój1) large(biurko) at(biurko, pokój2) small(ksiąŝka) at(biurko,pokój2) A B C D...... Start PUSH Cel at(robot,biurko) at(robot,biurko) clear(biurko) at(biurko,pokój2) A B C D...... Start GO PUSH Cel... Means Ends Analysis: przykład... at(robot,biurko) clear(biurko) clear(biurko) holding(ksiaŝka) A at(robot,biurko) armepmty at(biurko,pokój2) on(ksiąŝka,biurko)... Start GO PICKUP PUTDOWN PUSH STACK Cel at(robot,biurko) clear(biurko) clear(biurko) at(robot,ksiąŝka) holding(ksiąŝka) A at(robot,biurko) armepmty at(biurko,pokój2) on(ksiąŝka,biurko). Start GO PICKUP PUTDOWN PUSH PICKUP STACK Cel itd. (jeszcze dwa kroki) Means Ends Analysis: przykład Start Cel on(ksiąŝka, biurko) on(ksiąŝka, biurko) at(biurko, pokój1) large(biurko) at(biurko, pokój2) small(ksiąŝka) at(robot,biurko) clear(biurko) clear(biurko) A at(robot,biurko) armepmty at(biurko,pokój2) on(ksiąŝka,biurko)...... Start GO PICKUP PUSH Cel at(robot,biurko) clear(biurko) clear(biurko) A at(robot,biurko) armepmty at(biurko,pokój2) on(ksiąŝka,biurko)... Start GO PICKUP PUTDOWN PUSH Cel... Means Ends Analysis: podsumowanie Słabości MEA: trudna do zdefiniowania w niektórych dziedzinach tablica operator-róŝnica duŝy rozmiar tablicy operator-róŝnica dla realnych problemów trudno z rozwiązań opartych na częściowych sukcesach wnioskować o globalnej strategii rozwiązywania problemu (niejawne konflikty między operatorami) 7
Reguła modus ponens: niepełność Przykładowy zbiór aksjomatów X p(x) q(x) X p(x) r(x) X q(x) s(x) X r(x) s(x) Dowód nieformalny dla s(a): s(a) jest prawdziwe, gdy q(a) lub r(a) jest prawdziwe; q(a) lub r(a) musi być prawdziwe, bo p(x) lub p(x) jest prawdziwe (zawsze!). Zatem s(a) z pewnością jest prawdziwe! Modus Ponens: X p(x) r(x) nie moŝna przekształcić do postaci Horna (byłoby wtedy p(x) r(x)) i tym samym nie moŝna skorzystać z reguły odrywania by dowieść prawdziwości s(a). Wniosek: Istnieją twierdzenia (konsekwencje logiczne) prawdziwe w logice predykatów, których nie moŝna dowieść za pomocą modus ponens. Rezolucja: pojęcia podstawowe literały komplementarne przesłanka przesłanka A B, B C A C rezolwenta Rezolucja ma charakter binarny tzn. dotyczy dokładnie dwóch klauzul, a rezolwenta jest wyprowadzana z jednej pary literałów komplementarnych. Reguła rezolucji: zasada Zasada rezolucji: A B, B C albo A B, B C A C A C Interpretacja (dysjunkcji): Jeśli B jest fałszywe, to w pierwszej dysjunkcji A musi być prawdziwe (skoro cała alternatywa jest prawdziwa); ale jeśli B jest prawdziwe, to wtedy w drugiej dysjunkcji C musi być prawdziwe (skoro ta alternatywa teŝ jest prawdziwa); zatem, A lub C są prawdziwe. Interpretacja (implikacji): poprawność zasady rezolucji wynika z przechodniości implikacji Rezolucja: wywód rezolucyjny oraz dowód Wywodem rezolucyjnym klauzuli C ze zbioru klauzul U nazywamy ciąg klauzul W=W 1,...,W n, którego elementami są wyłącznie elementy zbioru U oraz rezolwenty klauzul występujących wcześniej w tym ciągu, zaś W n =C. Wywód rezolucyjny klauzuli pustej ze zbioru U nazywamy dowodem niespełnialności (sprzeczności) dla U. 8
Zasada rezolucji: pełność czy niepełność? Zasada rezolucji nie jest pełna, gdyŝ nie jest moŝliwe wywiedzenie formuły P P(będącego tautologią) dla pustego zbioru klauzul początkowych (aksjomatów). Zasada rezolucji jest jednak pełna w sensie refutacji tzn. zawsze umoŝliwia wyprowadzenie klauzuli pustej (fałszywej w kaŝdej interpretacji!), jeśli dany zbiór klauzul jest niespełnialny. Refutacja (reductio ad absurdum) - dowód nie wprost Aby dowieść, Ŝe klauzula P jest logiczną konsekwencją zbioru klauzul S wystarczy wykazać, Ŝe zbiór {S P} jest sprzeczny. Rezolucja: drzewo wywodu (przykład) p p q p r r q r p Rezolucja: graf wywodu (przykład) p p q p r r p Rezolucja: procedura dowodowa Przekształć przesłanki lub aksjomaty w formę klauzul Dodaj do zbioru aksjomatów zaprzeczenie twierdzenia, które ma być udowodnione (w formie klauzuli) Generuj nowe klauzule (rezolwenty), wynikające z tego zbioru (zgodnie z zasadą rezolucji) i powiększaj o nie zbiór Szukaj sprzeczności, podąŝając ku klauzuli pustej Warunki uŝyte do wygenerowania pustej klauzuli są tymi, w których twierdzenie (zaprzeczone) jest prawdziwe Faktoryzacja - w rachunku predykatów - usuwanie z klauzul literałów powtarzających się 9
Faktoryzacja: znaczenie dla pełności rezolucji Przykładowy zbiór klauzul (niespełnialny) p(u) p(v) p(x) p(y) Dowód rezolucyjny: KaŜda rezolwenta tego zbioru klauzul składa się z dwóch literałów, więc nie moŝe być pusta! Dowiedzenie sprzeczności za pomocą rezolucji nie jest moŝliwe. Rozwiązanie: Usunięcie wszystkich powtarzających się w klauzulach literałów: Klauzula p(u) p(v) z podstawieniem {U/V} będzie równa p(u). Klauzula p(x) p(y) z podstawieniem {X/Y} będzie równa p(x). Rezolucja: przykład c.d. die(fido) dog(fido) dog(x) animal(x) animal(y) die(y) {fido/y} {Y/X} dog(y) die(y) die(fido) pusta klauzula Rezolucja: przykład Wszystkie psy są zwierzętami. X ( dog(x) animal(x) ) ❶ Fido jest psem. dog(fido) ❷ Wszystkie zwierzęta umrą. Y ( animal(y) die(y) ) ❸ Fido umrze? die(fido) ❹ Modus Ponens Podstawienie w ❶ i reguła odrywania: animal(fido) Podstawienie {fido/y} w ❸ i reguła odrywania: die(fido) Forma predykatu Forma klauzuli X ( dog(x) animal(x) ) dog(x) animal(x) dog(fido) dog(fido) Y ( animal(y) die(y) ) animal(y) die(y) dowieść: die(fido) zanegowane twierdzenie: die(fido) Rezolucja: strategie dowodzenia Strategie wyboru Strategia liniowa (ang. linear resolution) Strategia źródłowa (ang. input resolution) Strategia preferencji jednostkowej (ang. unit preference resolution) Strategia zbioru podpierającego/zbioru uzasadnień (ang. set of support resolution) Przeszukiwanie wszerz (saturacja) Strategie eliminacji usuwanie klauzul zawierających czyste literały (brak drugiej klauzuli zawierającej literał komplementarny) usuwanie tautologii (klauzul zawierających literały komplementarne) usuwanie klauzul pochłoniętych (np. p qpochłania p q r) 10
Rezolucja: przeszukiwanie wszerz (saturacja) dog(fido) dog(x) animal(x) animal(y) die(y) die(fido) {fido/y} {X/Y} animal(fido) animal(fido) dog(x) die(x) {fido/y} die(fido) die(fido) dog(fido) dog(fido) Rezolucja: strategie zbioru podpierającego (przykład) Sprzeczny zbiór S: Zbiór S\T: p q p r q r r :zbiór T p q q p Rezolucja: strategia zbioru podpierającego Zbiór uzasadnień T - dowolny niepusty podzbiór zbioru S klauzul początkowych (skończonego i niepustego) W kaŝdym kroku wywodu przynajmniej jedna z przesłanek jest klauzulą ze zbioru T bądź klauzulą wyprowadzoną we wcześniejszej fazie wywodu (inaczej: zbiór T jest po wykonaniu kaŝdego kroku wzbogacany o wyprowadzony wniosek/rezolwentę) Strategia zupełna wtedy i tylko wtedy, gdy zbiór S jest sprzeczny, zaś S\T jest spełnialny Istnieją róŝne metody wyboru zbioru T (najczęściej zbiór ten zawiera negację dowodzonego twierdzenia) Rezolucja: strategia liniowa W kaŝdym kroku jedna z przesłanek jest ostatnio wygenerowaną rezolwentą, a druga jednym z wcześniejszych wniosków (rezolwent) lub klauzulą początkową Dowód rozpoczyna się od dowolnie wybranej klauzuli początkowej (choć najlepiej aby było to twierdzenie do udowodnienia) Dowód ma charakter przejrzysty i ciągły - ostatni wniosek jest przesłanką w kolejnym kroku Strategia zupełna MoŜna łączyć ze strategią zbioru uzasadnień 11
Rezolucja: strategia liniowa dog(fido) dog(x) animal(x) animal(y) die(y) die(fido) {fido/y} animal(fido) {fido/y} animal(fido) die(fido) dog(fido) Rezolucja: strategia źródłowa W kaŝdym kroku przynajmniej jedna przesłanka jest klauzulą początkową (a nie rezolwentą) Odmiana strategii liniowej (bardziej rygorystyczna!) Strategia niezupełna! Strategia zupełna w klasie klauzul Horna Rezolucja: strategia liniowa (przykład) p q p r q r r p q q p r r Rezolucja: strategia źródłowa (niezupełność) Zbiór sprzeczny: p q p q p q p q q p gdy liniowa! q p q p p q q itd. 12
Rezolucja: strategia źródłowa (przykład) dog(fido) dog(x) animal(x) animal(y) die(y) die(fido) {fido/y} animal(fido) {fido/y} animal(fido) die(fido) dog(fido) Rezolucja: strategia preferencji jednostkowej dog(fido) dog(x) animal(x) animal(y) die(y) die(fido) {fido/y} animal(fido) {fido/y} animal(fido) die(fido) dog(fido) Rezolucja: strategia preferencji jednostkowej W kaŝdym kroku przynajmniej jedna przesłanka powinna być klauzulą pojedynczą (pojedynczy literał) Strategia zupełna Strategia niezupełna, gdy przynajmniej jedna przesłanka zawsze musi być klauzulą pojedynczą wtedy jest to tzw. strategia jednostkowa (zupełna w klasie klauzul Horna!) Rezolucja: strategie eliminacji Usuwanie klauzul zawierających czyste literały (brak innej klauzuli zawierającej literał komplementarny) p l q l p q r p q r l l q r?? r 13
Rezolucja: strategie eliminacji Usuwanie tautologii (klauzul zawierających parę literałów komplementarnych) Niespełnialny zbiór klauzul pozostaje niespełnialny nawet, jeśli usuniemy z niego wszystkie tautologie Literały tautologii muszą być ściśle komplementarne: p(a) p(x) nie jest tautologią p(a) p(a) jest tautologią KaŜda nowa rezolwenta na dowolnym etapie procesu rezolucji moŝe być tautologią Rezolucja: strategie eliminacji Usuwanie klauzul pochłoniętych c.d. Niespełnialny zbiór klauzul pozostaje niespełnialny nawet, jeśli usuniemy z niego klauzulę pochłonięta przez inną klauzulę KaŜda nowa rezolwenta na dowolnym etapie procesu rezolucji moŝe być pochłonięta przez inną klauzulę Pełność strategii eliminacji tautologii i klauzul pochłoniętych zaleŝy od sposobu usuwania klauzul (np. połączenie z saturacją gwarantuje pełność) Rezolucja: strategie eliminacji Usuwanie klauzul pochłoniętych Pochłanianie: klauzula Cpochłania klauzulę D wtedy i tylko wtedy, gdy istnieje podstawienie σ takie, Ŝe zbiór literałów klauzuli Cσ jest podzbiorem zbioru literałów D Przykład Klauzule: Zbiory literałów: C = p(x) q(y) C = { p(x), q(y) } D = p(a) q(v) r(w) D = { p(a), q(v), r(w) } Podstawienie: Wynik podstawienia: σ = {a/x, V/Y} C σ = {p(a), q(v)} PoniewaŜ C σ D, to C pochłania D. 14