1 / 47

Metody wnioskowania

Metody wnioskowania. Tomasz Kaczmarek. Schematy formalne wnioskowań. Schemat: Przykład: Każdy student jest młodym człowiekiem Jan jest studentem Jan jest młodym człowiekiem. Sposoby wnioskowania. Dedukcja (sound) – wnioski muszą wypływać z przesłanek; metoda wnioskowania w logice

edna
Download Presentation

Metody wnioskowania

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Metody wnioskowania Tomasz Kaczmarek

  2. Schematy formalne wnioskowań • Schemat: Przykład: Każdy student jest młodym człowiekiem Jan jest studentem Jan jest młodym człowiekiem

  3. Sposoby wnioskowania • Dedukcja (sound) – wnioski muszą wypływać z przesłanek; metoda wnioskowania w logice • Indukcja (unsound) – wyciąganie ogólnych wniosków na podstawie jednostkowych przypadków • Abdukcja (unsound) – od prawdziwych wniosków dochodzimy do przesłanek które mogły je spowodować • Rezolucja (sound) - ... • Metoda prób i błędów (unsound) – wygeneruj przypuszczalne rozwiązanie i sprawdź je • Wnioskowanie z wartościami domyślnymi (unsound) – wartości domyślne (wiedza ogólna) są zakładane gdy brak szczególowej wiedzy • Analogia (unsound) – wniosek na podstawie podobieństwa do poprzednich sytuacji • Heurystyki (unsound) – reguły oparte na doświadczeniu • Wnioskowanie niemonotoniczne (unsound) – nowe fakty mogą uczynić poprzednie nieprawdziwymi

  4. Metoda założeniowa • Poprzednik przyjmuje się jako założenie i Wyprowadza się z niego następnik • Cały System może Być zbudowany metodą założeniową bez przyjmowania jakichkolwiek aksjomatów • Budując system logiczny metodą założeniową przyjmujemy 2 rodzaje reguł pierwotnych: • Dołączania nowych wierszy do dowodu • Tworzenia dowodów

  5. Reguły wnioskowania w rachunku zdań

  6. Reguły wnioskowania w rachunku zdań

  7. Problemy z wnioskowaniem • Można posługiwać się tablicami prawdy • Niestety złożoność wykładnicza (2n) • Jednak kiedy dowód jakiegoś zdania wymaga odwołania się do niewielkiej części bazy wiedzy może być wykonany szybko • Reguła odrywania wymaga odwołania się tylko do niewielkiej części bazy wiedzy i pozostała część nie wpływa na poprawność wnioskowania • Wnioskowanie tylko z regułą odrywania byłoby szybsze • Gdyby tak móc zapisać wszystkie zdania tak żeby pasowały do reguły odrywania...

  8. Klauzule Horna Jeżeli bazę wiedzy można zapisać w postaci klauzul Horna To wnioskowanie polega na zastosowaniu reguły odrywania tyle razy ile to konieczne / możliwe Niestety nie każdą bazę wiedzy można zapisać w postaci klauzul Horna Prolog pozwala zapisać bazę wiedzy tylko przy pomocy klauzul Horna.

  9. Reguły wnioskowania w FOL

  10. Reguły wnioskowania w FOL

  11. Przykład • Prawo amerykańskie mówi że sprzedawanie broni nieprzyjaznemu państwu jest przestępstwem • państwo Irak jest (był? ;) wrogiem USA, posiada rakiety, które zostały sprzedane przez pułkownika Westa, który jest Amerykaninem • Czy West jest przestępcą?

  12. Przykład • ... sprzedawanie broni nieprzyjaznemu państwu jest przestępstwem X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) • wróg USA jest nieprzyjacielem X wróg(X,ameryka)=>nieprzyjaciel(X) • Irak posiada rakiety X posiada(irak,X) rakieta(X) • Rakiety zostały sprzedane przez pułkownika Westa X posiada(irak,X) rakieta(X) =>sprzedaż(west,X,irak) • West jest Amerykaninem amerykanin(west) • Rakiety są bronią X rakieta(X)=>broń(X) • Irak jest państwem państwo(irak) • Ameryka jest państwem państwo(ameryka) • Irak jest wrogiem Ameryki wróg(irak,ameryka)

  13. Baza wiedzy X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) X posiada(irak,X) rakieta(X) X posiada(irak,X) rakieta(X) =>sprzedaż(west,X,irak) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka)

  14. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) X posiada(irak,X) rakieta(X) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(Irak,ameryka) Opuszczenie kwantyfikatora szczegółowego

  15. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) X posiada(irak,X) rakieta(X) X posiada(irak,X) rakieta(X) =>sprzedaż(West,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  16. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Opuszczenie koniunkcji

  17. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  18. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Opuszczenie kwantyfikatora ogólnego

  19. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) X rakieta(X)=>broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) rakieta(m1)=>broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzY

  20. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) rakieta(m1)=>broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Reguła odrywania

  21. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) rakieta(m1)=>broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  22. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Opuszczenie kwantyfikatora ogólnego

  23. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) X posiada(irak,X) rakieta(X) =>sprzedaż(west,irak,X) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) posiada(irak,m1) rakieta(m1) =>sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  24. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) posiada(irak,m1) rakieta(m1) =>sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Reguła odrywania

  25. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) posiada(irak,m1) rakieta(m1) =>sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  26. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Opuszczenie kwantyfikatora ogólnego

  27. X,Y,Z amerykanin(X) broń(Y) państwo(Z)  nieprzyjaciel(Z) sprzedaż(X,Y,Z) =>przestępca(X) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  28. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Opuszczenie kwantyfikatora ogólnego

  29. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) X wróg(X,ameryka)=>nieprzyjaciel(X) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka)=>nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  30. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) =>nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Reguła odrywania

  31. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) =>nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) rakieta(X) broń(X) państwo(irak) państwo(ameryka) wróg(irak,ameryka) amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Baza wiedzy

  32. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) wróg(irak,ameryka) Dołączenie koniunkcji

  33. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) nieprzyjaciel(irak) posiada(irak,m1) rakieta(m1) sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak) państwo(ameryka) amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) posiada(irak,m1) rakieta(m1) państwo(ameryka) amerykanin(west) broń(m1)  państwo(irak) nieprzyjaciel(irak)  sprzedaż(west,irak,m1) Baza wiedzy

  34. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) posiada(irak,m1) rakieta(m1) państwo(ameryka) amerykanin(west) broń(m1)  państwo(irak) nieprzyjaciel(irak)  sprzedaż(west,irak,m1) Reguła odrywania

  35. amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) =>przestępca(west) wróg(irak,ameryka) posiada(irak,m1) rakieta(m1) państwo(ameryka) amerykanin(west) broń(m1)  państwo(irak) nieprzyjaciel(irak)  sprzedaż(west,irak,m1) amerykanin(west) broń(m1) państwo(irak)  nieprzyjaciel(irak) sprzedaż(west,m1,irak) przestępca(west) wróg(irak,ameryka) posiada(irak,m1) rakieta(m1) państwo(ameryka) amerykanin(west) broń(m1)  państwo(irak) nieprzyjaciel(irak)  sprzedaż(west,irak,m1) Baza wiedzy Uwaga! W rzeczywistości do bazy wiedzy są dołączane nowe fakty Niczego się nie usuwa!

  36. Zadanie • Zapisać bazę wiedzy z początku wnioskowania w Prologu i sprawdzić czy West jest przestępcą • 10 faktów i reguł • Prolog nie używa kwantyfikatorów: • Każdy fakt ze zmiennymi ma kwantyfikator ogólny • Kwantyfikatory szczegółowe usunąć używając reguły opuszczania (zamienić zmienne na nazwy) • Implikacja jest odwrócona (konkluzja :- przesłanki)

  37. Kłopotów z wnioskowaniem c.d. • Baza wiedzy rośnie po każdym kroku • Więc trzeba szukać wśród większej ilości faktów • Opuszczanie kwantyfikatora ogólnego dodatkowo problematyczne -> można podstawić dowolne Symbole podstawowe (skąd wiedzieć jakie?) • Skąd wiedzieć jakie fakty powiązać przy pomocy koniunkcji?

  38. posiada(irak,m1) rakieta(m1) X posiada(irak,X)rakieta(X) =>sprzedaż(west,irak,X) sprzedaż(west,irak,m1) Istnieje takie podstawienie zmiennych do faktów i implikacji które pozwala Wywnioskować konkluzję z odpowiednim podstawieniem Uogólniona reguła odrywania

  39. Wnioskowanie z URO • Uogólniona reguła odrywania jest bardziej efektywna – robi kilka kroków wnioskowania za jednym razem • Podstawienie za zmienne jest „rozsądne” tzn. gwarantuje dodanie istotnych faktów, nie jest losowe – tak jak opuszczenie kwantyfikatora ogólnego • Wykorzystuje prekompilowaną postać kanoniczną zdań (klauzule Horna) – dzięki temu nie trzeba dokonywać konwersji w trakcie dowodzenia • Kwantyfikator ogólny jest pomijany • Koniunkcja jest usuwana przy pomocy reguły opuszczania koniunkcji • Kwantyfikator szczegółowy jest zamieniany na nazwy obiektów

  40. Przykład • X posiada(irak,X)rakieta(X) • posiada(irak,m1)rakieta(m1) • posiada(irak,m1) • rakieta(m1)

  41. Wnioskowanie wprzód(Forward chaining) • U. R. Odrywania na początkowej bazie wiedzy pozwala dołożyć do niej kolejne fakty (wywnioskowane) • Te z kolei pozwalają na dalsze wnioskowanie P Q PQ=>Z P Q PQ=>Z P Q PQ=>Z

  42. Wnioskowanie wstecz(Backward chaining) • Zaczynamy od tego co chcemy udowodnić • Szukamy implikacji, które pozwalają to wywnioskować • Próbujemy odszukać w bazie wiedzy lub wywnioskować przesłanki tych implikacji • Wnioskowanie wstecz jest używane kiedy znamy cel P Q PQ=>Z P Q PQ=>Z P Q PQ=>Z

  43. Kompletność wnioskowania • Baza wiedzy X P(X)=>Q(X) X ~P(X)=>R(X) X Q(X)=>S(X) X R(X)=>S(X) • Chcemy wywnioskować S(X) ponieważ albo P(X) albo ~P(X) jest prawdą

  44. Kompletność wnioskowania • X ~P(X)=>R(X) – nie da się przedstawić w postaci klauzuli Horna • Zatem: • Wnioskowanie przy pomocy U.R. odrywania jest niekompletne • Istnieją takie bazy wiedzy które nie pozwalają udowodnić prawdziwych twierdzeń przy pomocy wnioskowania wprzód czy wstecz

  45. Rezolucja • wnioskowanie przez przypadki • wnioskowanie przez „przechodniość” implikacji • Rezolucja pozwala tworzyć nowe implikacje więc jest „silniejsza” niż reguła odrywania • Wykorzystanie rezolucji we wnioskowaniu wprzód i wstecz nie daje kompletności ...

  46. Rezolucja a reguła odrywania • Rezolucja jest uogólnioną regułą odrywania jest równoważne

  47. Dowód nie wprost (przez zaprzeczenie, reductio ad absurdum) • Wnioskowanie wprzód i wstecz nie daje kompletności nawet z użyciem rezolucji, np. nie można z pustej bazy wiedzy udowodnić p~p • Aby udowodnić p uznajemy że ~p jest prawdą (dodajemy ~p do bazy wiedzy) i próbujemy osiągnąć sprzeczność. Wtedy p jest udowodnione • W ten sposób otrzymujemy pewną formę kompletności (refutation completeness)

More Related