Zarządzanie wiedzą. Reprezentacja wiedzy: logika predykatów pierwszego rzędu



Podobne dokumenty
Reprezentacja wiedzy: logika predykatów pierwszego rzędu

Logika predykatów pierwszego rzędu PROLOG. Zarządzanie wiedzą. Wykład Reprezentacja wiedzy logika predykatów. Joanna Kołodziejczyk.

Systemy ekspertowe. Wykład 3 Reprezentacja wiedzy Rachunek predykatów pierwszego rzędu. Joanna Kołodziejczyk

Systemy ekspertowe. Wykład 3 Reprezentacja wiedzy. Rachunek predykatów pierwszego rzędu. Joanna Kołodziejczyk. 30 marca 2011

Elementy Sztucznej Inteligencji

PODSTAWY SZTUCZNEJ INTELIGENCJI

Programowanie w logice

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Adam Meissner.

Ziemia obraca się wokół Księżyca, bo posiadając odpowiednią wiedzę można stwierdzić, czy są prawdziwe, czy fałszywe. Zdaniami nie są wypowiedzi:

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Programowanie deklaratywne

Wprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Uwagi wprowadzajace do reguł wnioskowania w systemie tabel analitycznych logiki pierwszego rzędu

Rachunek zdań i predykatów

Matematyka ETId Elementy logiki

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

III rok kognitywistyki UAM,

Logika formalna wprowadzenie. Ponieważ punkty 10.i 12. nie były omawiane na zajęciach, dlatego można je przeczytać fakultatywnie.

Konsekwencja logiczna

Logika. Michał Lipnicki. 15 stycznia Zakład Logiki Stosowanej UAM. Michał Lipnicki () Logika 15 stycznia / 37

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

LOGIKA I TEORIA ZBIORÓW

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek

Drzewa Semantyczne w KRZ

Wprowadzenie do Sztucznej Inteligencji

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Języki programowania deklaratywnego

Podstawy Sztucznej Inteligencji (PSZT)

Wprowadzenie do Prologa

Alfred N. Whitehead

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykłady 12 i 13. Dowód i dowodzenie w KRP. Tezy KRP

Rezolucja w rachunku predykatów. Przedrostkowa koniunkcyjna postać normalna. Formu ly ustalone. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Programowanie w Logice Struktury danych (Lista 2)

Laboratorium przedmiotu Paradygmaty Programowania

Adam Meissner STUCZNA INTELIGENCJA

Składnia rachunku predykatów pierwszego rzędu

Adam Meissner SZTUCZNA INTELIGENCJA

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Przykłady zdań w matematyce. Jeśli a 2 + b 2 = c 2, to trójkąt o bokach długości a, b, c jest prostokątny (a, b, c oznaczają dane liczby dodatnie),

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

Wstęp do Techniki Cyfrowej... Algebra Boole a

Wstęp do logiki. Klasyczny Rachunek Zdań II

Język rachunku predykatów Formuły rachunku predykatów Formuły spełnialne i prawdziwe Dowody założeniowe. 1 Zmienne x, y, z...

Notacja. - operator implikacji, - operator koniunkcji v operator alternatywy - operator równoważności ~ operator negacji Duża litera (np.

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Dowody założeniowe w KRZ

1. Składnia. Logika obliczeniowa - zadania 1 SKŁADNIA Teoria

Struktury formalne, czyli elementy Teorii Modeli

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbior

Programowanie w logice Wykład z baz danych dla

SZTUCZNA INTELIGENCJA

Reprezentowanie wiedzy Logika a reprezentacji wiedzy Rachunek zdań Literatura. Systemy ekspertowe. Wykład 2 Reprezentacja wiedzy Rachunek zdań

Dalszy ciąg rachunku zdań

Jak logik przewozi kozę przez rzekę?

Programowanie w Logice

Systemy ekspertowe. Wykład 2 Reprezentacja wiedzy Rachunek zdań. Joanna Kołodziejczyk. Joanna Kołodziejczyk Systemy ekspertowe / 41

Logika stosowana. Ćwiczenia Programowanie w logice i PROLOG. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Twierdzenia Gödla dowody. Czy arytmetyka jest w stanie dowieść własną niesprzeczność?

Michał Lipnicki (UAM) Logika 11 stycznia / 20

PROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd.

Reprezentacja wiedzy i wnioskowanie

Egzamin z logiki i teorii mnogości, rozwiązania zadań

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

Logika. Michał Lipnicki. 18 listopada Zakład Logiki Stosowanej UAM. Michał Lipnicki Logika 18 listopada / 1

LOGIKA Dedukcja Naturalna

Programowanie deklaratywne

Programowanie w logice

Myślenie w celu zdobycia wiedzy = poznawanie. Myślenie z udziałem rozumu = myślenie racjonalne. Myślenie racjonalne logiczne statystyczne

Klasyczny rachunek predykatów

Programowanie deklaratywne

Definicje. Algorytm to:

Programowanie w Logice Przykłady programów. Przemysław Kobylański

Rachunek zdań. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Logika Matematyczna (10)

W planie dydaktycznym założono 172 godziny w ciągu roku. Treści podstawy programowej. Propozycje środków dydaktycznych. Temat (rozumiany jako lekcja)

WSTĘP ZAGADNIENIA WSTĘPNE

Kultura logicznego myślenia

Dedukcyjne bazy danych i rekursja

Języki programowania deklaratywnego

Programowanie w logice Prolog 2

ROZDZIAŁ 1. Rachunek funkcyjny

Elementy logiki i teorii mnogości

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Programowanie logiczne a negacja

Wstęp do logiki. Klasyczny Rachunek Predykatów I

Metoda Karnaugh. B A BC A

Podstawowe Pojęcia. Semantyczne KRZ

Adam Meissner SZTUCZNA INTELIGENCJA Problem spełnialności (SAT)

Rachunek logiczny. 1. Język rachunku logicznego.

Logika pragmatyczna dla inżynierów

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

Dedukcyjne bazy danych i rekursja

Transkrypt:

Zarządzanie wiedzą Reprezentacja wiedzy: logika predykatów pierwszego rzędu 1

Plan wykładu Logika predykatów pierwszego rzędu Metoda rezolucji Unifikacja Przejście od logiki predykatów do Prologu PROgramm ing in LOGic Proceduraprzeglądania bazy wiedzy Predykaty rekurencyjne 2

Rachunku zdań kontra logika predykatów pierwszego rzędu Rachunek zdań: Ograniczona ontologia zakłada że świat składa się tylko z faktów. Logika predykatów pierwszego rzędu Może wyrażać fakty o wszystkich obiektach w mikroświecie. Pozwala na reprezentowanie ogólnych reguł rządzących rzeczywistością. Dowolność reprezentacji faktów. Uniwersalna: może wyrazić wszystko co da się zaprogramować. 3

Składnia syntaksa Symbole stałe np.: A B Jan nazywają dokładnie jeden obiekt. Symbole predykatów np.: okrągły brat szczególna relacja w modelu. brat może reprezentować relację jest bratem. brat jest symbolem predykatu binarnego który zachowuje relację lub nie pomiędzy dwoma obiektami. symbole funkcji np.: cosinus ojciec relacja funkcyjna jest zachowana dla dokładnie jednego obiektu w relacji. Każdy ma jednego ojca a każda wartość kąta ma dokładnie jedną wartość cosinusa. Wybór symboli zależy tylko od użytkownika! 4

Składnia termy Term wyrażenie logiczne odnoszące się do obiektu. Do termów zalicza się: symbole stałe: Jan symbole funkcji: lewa_nogajan jest to złożona nazwa nie zwracamy wartości lewej nogi Jana!!. 5

Składnia zdania atomowe Zdanie atomowe wyraża fakt odnoszący się do obiektów i relacji pomiędzy nimi opisanymi symbolami predykatów. bratryszard Jan małżeństwoojciecryszard matkajan Zdanie atomowe jest true jeżeli relacja opisana symbolem predykatu zachodzi pomiędzy obiektami podanymi jako argumenty relacji. 6

Składnia zdania złożone Aby zbudować zdania złożone stosuje się operatory zdaniotwórcze takie jak w rachunku zdań: negacja nie np.: bratrobin Jan jest true jeżeli Robin nie jest bratem Jana; koniunkcja i np.: bratryszard Jan bratjan Ryszard jest true jeżeli Ryszard jest bratem Jana i Jan jest bratem Ryszarda; alternatywa lub np..: starszyjan 30 młodszyjan 30 jest true jeżeli Jan jest starszy niż 30 lub Jan ma mniej niż 30 lat; implikacja z tego wynika że np..: starszyjan 30 młodszyjan 30 Jeżeli Jan ma więcej niż 30 lat to nie może mieć mniej niż 30; 7

Składnia Kwantyfikator wielki ogólny Pozwala określić własności grupy obiektów np..: Wszystkie koty to ssaki : kot ssak Stosuje się zmienne np.. y oznaczone małymi literami. Zmienna jest termem. Co jeżeli poprzednik implikacji fałszywy? Nie ma to znaczenia bo kwantyfikator ogranicza grupę obiektów do takich dla których poprzednik jest tylko prawdziwy. Błąd w interpretacji: : kot ssak Wszystko jest kotami i wszystko jest ssakami. Nie łączyć i!!!. 8

Składnia Kwantyfikator mały szczególny Pozwala określić własności jakiegoś szczególnego obiektu bez nazywania go np.: Spot ma siostrę która jest kotem : siostra Spot kot Błąd w interpretacji: : siostra Spot kot Nie łączyć i bo rozwinięcie dla przypadków: siostraspot Spot kotspot zadanie z implikacją będzie zawsze prawdziwe jeżeli przesłanka jest fałszywa więc dla każdego dla którego siostra Spot jest fałszywe. W przypadku iloczynu obie relacje muszą być prawdziwe. 9

Zagnieżdżanie kwantyfikatorów y jest równoważne y jest równoważne y y jest równoważne y y nie jest równoważne y y kochay Każdy kogoś kocha y kochay Istnieje ktoś kto wszystkich kocha y kochay Istnieje ktoś kto jest przez wszystkich kochany [kot bratryszard] w takim przypadku znaczenie ma najbardziej wewnętrzny kwantyfikator w niniejszym przypadku nie ma żadnego efektu Każda zmienna musi być związana z jakimś kwantyfikatorem. 10

Dualizm kwantyfikatorów lubilody Każdy lubi lody lubibrokuły lubilody Nie istnieje ktoś kto nie lubi lodów lubibrokuły Istnieje ktoś kto lubi brokuły Nie każdy nie lubi brokuły Prawa De Morgana: : P : P : P : P : P : P : P : P 11

Równość Symbol równości może służyć do budowania zdań. term 1 = term 2 jest prawdziwe w danej interpretacji jeżeli term 1 i term 2 odnoszą się do tego samego obiektu. np.. ojciecjan = Henryk np.. y rodzeństwoy [ = y mf m = f rodzicm rodzicf rodzicmy rodzicfy] 12

Logika predykatów na przykładzie 1. Marcus był człowiekiem. 2. Marcus był mieszkańcem Pompei. 3. Wszyscy mieszkańcy Pompei byli Rzymianami. 4. Cezar był władcą. 5. Wszyscy Rzymianie byli albo lojalni wobec Cezara lub nienawidzili go. 6. Każdy człowiek jest wobec kogoś lojalny. 7. Ludzie starają się zgładzić tylko takiego władcę wobec którego nie są lojalni. 8. Marcus próbował zgładzić Cezara. 13

Logika predykatów na przykładzie manmarcus PompeianMarcus : Pompeian Roman rulercaesar : Roman loyalto Caesar hate Caesar : y : loyalto y : y : person ruler y tryassass y loyalto y tryassass Marcus Caesar 14

Co pominięto w przykładzie Ad 1. Nie uwzględniono czasu przeszłego. W dalszych rozważaniach nie będzie to miało znaczenia. Ad 4. Imiona nie zawsze wskazują na konkretne indywiduum. Dokładność wymaga sporej ilości wiedzy przechowywanej w bazie. Ad 6. Problem zasięgu. Czy dla każdego istnieje ktoś dla kogo jest się lojalnym? Czy są to różne osoby? Czy istnieje ktoś wobec kogo wszyscy są lojalni? Ad 7. Zdanie jest dwuznaczne. Interpretacja przedstawiona: : y : person ruler y tryassass y loyalto y Są ludzie chcący zgładzić władcę zatem są wobec władcy nielojalni. Inna interpretacja: Ludzie chcą zgładzenia władcy wobec którego są nielojalni. : y : person ruler y loyalto y tryassass y Ad 7. Predykat: try to assassinate jest uproszczoną reprezentacją faktu. Predykat dzięki temu ma dwa argumenty. 15

Inżynieria wiedzy w logice predykatów pierwszego rzędu 1. Zidentyfikuj zadnie. 2. Zgromadź wymaganą wiedzę. 3. Wybierz słownik predykatów funkcji i stałych. 4. Zakoduj ogólną wiedzę dotyczącą zadnia. 5. Zakoduj specyficzną wiedzę dotyczącą zadania. 6. Postaw pytania do procedury wnioskowania i otrzymaj odpowiedzi 7. Usuń błędy z bazy wiedzy. 16

Dowodzenie w logice predykatów Dla rachunku zdań przedstawione zostały reguły wnioskowania takie jak modus ponens rezolucji czy eliminacja AND i te reguły są poprawne dla logiki predykatów. Wymaga się jednak dodatkowych reguł które poradzą sobie z kwantyfikatorami. 17

Unifikacja Algorytm unifikacji jest rekurencyjną procedurą porównującą dwa termy i odkrywającą czy istnieje zbiór podstawień które sprawią że termy staną się identyczne. Np. manjohn i manjohn unifikują się natomiast manjohn i manspot nie bo mają różne argumenty. 18

Przykłady unifikacji p q θ KnowsJohn KnowsJohnJane {Jane/}} KnowsJohn KnowsyOJ {OJ/John/y}} KnowsJohn KnowsyMothery {John/yMotherJohn/}} KnowsJohn KnowsOJ {fail} 19

Przykład unifikacji dane: hatey hatemarcusz Unifikacja może zwrócić listę następujących podstawień: 1. Marcus/ z/y 2. Marcus/ y/z 3. Marcus/ Caesar/y Caesar/z 4. Marcus/ Paulus/y Paulus/z jeżeli dane: hatemarcuspaulus hatemarcusjulian hatemarcuscaesar Podstawienia 1 i 2 są bardziej ogólne niż 3 i 4. Ostatecznie do dalszej rezolucji poszukuje się jak najbardziej ogólnego unifikatora mgu. 20

Rezolucja Wersja reguły dla logiki predykatów pierwszego rzędu l 1 l k m 1 m n l 1 l i-1 l i+1 l k m 1 m j-1 m j+1 m n θ gdzie unifikacjal i m j = θ. Regułę stosuję się dla zdań w postaci formy CNF Przykład Rich Unhappy RichKen UnhappyKen z θ = {Ken/} Stosuje się rezolucję do zdań w CNF dla KB α; gdzie α hipoteza cel 21

Konwersja do postaci normalnej koniunkcyjnej CNF - Conjunctive Normal Form. Postać ta to iloczyn sum literałów lub ich negacji Sumy rozdzielone iloczynami w postaci normalnej koniunkcyjnej to klauzule Cel: uzyskuje się mniej zagnieżdżonych komponentów forma jest prostsza. 22

Przykład postaci normalnej Każdy Rzymianin który zna Marcusa albo nienawidzi Cezara albo myśli że każdy kto nienawidzi kogokolwiek jest głupcem. zdanie logiczne :[ Roman know Marcus] [ hate Caesar y : z : hate y z thinkcrazy y] klauzula Roman know Marcus hate Caesar hate y z thinkcrazy y 23

Algorytm konwersji do klauzul Algorytm składa się z dziewięciu kroków. Operuje na złożonym zdaniu logicznym i poprzez przeprowadzanie upraszczających operacji doprowadzi do powstania uproszczonej w formie klauzuli. Zdanie i jego postać CNF są logicznymi ekwiwalentami. 24

Etap 1 Usunięcie implikacji Korzysta z własności a b a b Przykład: : male X man X : male X man X 25

Etap 2 Przesunięcie negacji Krok ten prowadzi do uproszczenia wyrażeń z negacją. Redukuje nawiasy. Korzysta z własności p p a b a a b a b b : P : P : P : P 26

Etap 3 standaryzacja zmiennych Zmienne opisywane przez różne kwantyfikatory otrzymują różne nazwy. Przed: Po: : P : Q : P y : Q y 27

Etap 4 przesunięcie wszystkich Po: kwantyfikatorów Przenosi się wszystkie kwantyfikatory poza wyrażenie. Nie powoduje to zmiany interpretacji wyrażenia. Przed: : mezczyzna y : kobieta y lubi y : y : mezczyzna kobieta y lubi y 28

Etap 5 skolemizacja Usunięcie kwantyfikatora istnienia. Wprowadza się nowe symbole reprezentujące stałe w miejsce zmiennych spod usuwanych kwantyfikatorów. Przypadek pierwszy: Przed: Po: : President Presidents1 Przypadek z wielkim kwantyfikatorem S2 funkcja od zmiennej : Przed: : y : father y Po: : father S2 29

Etap 6 usunięcie wielkiego kwantyfikatora Opuszcza się w wyrażeniu kwantyfikatory wielkie i nie zmienia to znaczenia całego wyrażenia. Przed: Po: : father mark father marek 30

Etap 7 wyprowadzenie i przed lub Konwersja wyrażenia na iloczyn sum. Koniunkcje nie mogą pojawiać się wewnątrz alternatyw. Przed: Po: p q r y p r y q r y 31

Etap 8 stworzenie klauzul Stworzenie niezależnych klauzul dla każdej koniunkcji. Każdy czynnik iloczynu musi mieć wartość logiczną 1. Przed: p q q r y Po: powstały 2 klauzule 1. p 2. q r y r y 32

Etap 9 standaryzacja zmiennych Standaryzacja zmiennych w niezależnych klauzulach. Każdej zmiennej można nadać inną nazwę co nie zmieni znaczenia logicznego a zapobiega myleniu zmiennych podczas dowodzenia. 33

34 Przykład konwersji Przykład konwersji ] : : [ ] [ : y thinkcrazy z y hate z y Caesar hate Marcus know Roman ] : : [ ] [ : y thinkcrazy z y hate z y Caesar hate Marcus know Roman ] : : [ ] :[ y thinkcrazy z y hate z y Caesar hate Marcus know Roman ] [ ] :[ : : y thinkcrazy z y hate Caesar hate Marcus know Roman z y ] [ ] [ y thinkcrazy z y hate Caesar hate Marcus know Roman etap 1 etap 2 etap 4 etap 6 etap 7 y thinkcrazy z y hate Caesar hate Marcus know Roman

Rezolucja w logice predykatów 1. Konwersja aksjomatów F na klauzule. 2. Zaneguj P predykat do udowodnienia i przekształć na klauzulę. Dodaj do zbioru klauzul F. 3. Powtarzaj do osiągnięcia klauzuli pustej lub zatrzymaj gdy nie ma postępu: a. Wybierz 2 klauzule rodzicielskie. b. Porównaj je. Klauzula wynikowa - rezolwenta jest sumą logiczną wszystkich literałów obu klauzuli rodzicielskich z zastosowaniem odpowiednich podstawień z następującymi wyjątkami: Jeżeli istnieje para literałów T1 i T2 takich że jedna z klauzul rodzicielskich zawiera T1 a druga zwiera T2 to zarówno T1 jak i T2 są unifikowane. T1 i T2 to literały komplementarne. Zastosuj zbiór podstawień wynikający z unifikacji do produkcji rezolwenty. Jeżeli liczba literałów komplementarnych jest > 1 to w rezolwencie wybieramy tylko jedną z nich. c. Jeżeli rezolwenta jest klauzulą pustą to dowód zkończono. Jeżeli nie to dodaj klauzulę do zbioru klauzul. 35

36 Przykład 1 Przykład 1 Przekształcenie zdań ze slajdu 15 na klauzule: 8. 7. 1 6. 5. 4. 3. 2. 1. 1 4 1 4 1 4 3 3 2 2 2 1 1 Caesar Marcus tryassasinate y tryassasinate y ruler man y loyalto f loyalto Caesar hate Caesar loyalto Roman Caesar ruler Roman Pompeian Marcus Pompeian Marcus man

37

Przykład 2 z funkcjami 1. manmarcus 2. PompeianMarcus 3. bornmarcus40 1. man1mortal1 2. Pompeian2died279 1. eruptedvolcano79 1. mortal3 born3t1 gtt2-t1150 dead3t2 1. now=2008 2. Predykat 9a i 9b alive4t3 dead4t3 dead5t4 alive5t4 1. died6t5 gtt6t5 dead6t6 38

Prove: alivemarcusnow died 200879 39

Co wiemy Czym jest logika predykatów. Jak działa algorytm rezolucji. Jeżeli teza {A1 A2... An} jest niesprzeczna formuła B jest wnioskiem z {A1 A2... An} wtedy i tylko wtedy gdy teza {A1 A2... B} jest sprzeczna. Czym jest postać klauzulowa. Czym jest unifikacja. 40

41 Interpretacja klauzul Interpretacja klauzul Zakładamy klauzulę Co jest równoważne: Co jest równoważne: Oznaczamy jako jako ; a jako :-. 2 1 2 1 q q q p p p n n 2 1 2 1 q q q p p p n n 2 1 2 1 q q q p p p n n : ; ; ; 2 1 2 1 q q q p p p n n

42 Przykład Przykład Każdego małego zwierzaka można trzymać w mieszkaniu. Po przekształceniu na klauzule: Co daje: : mieszkanie trzymac zwierzak maly : : mieszkanie trzymac zwierzak maly mieszkanie trzymac zwierzak maly mieszkanie trzymac zwierzak maly : zwierzak maly mieszkanie trzymac zwierzak maly mieszkanie trzymac zwierzak maly mieszkanie trzymac

Reguły i Fakty Reguła zawiera znak: :-. Po lewej stronie znaku znajduje się głowa a po prawie treść reguły. Fakty są głowami klauzul bez treści gdyż reprezentują aksjomaty. np.. kobietaala w postaci klauzuli ma taką samą postać co jest równoważne zapisowi: kobietaala :-. 43

44 Klauzule slajd15 Klauzule slajd15 8. 7. 1 6. 5. 4. 3. 2. 1. 1 4 1 4 1 4 3 3 2 2 2 1 1 Caesar Marcus tryassasinate y tryassasinate y ruler man y loyalto f loyalto Caesar hate Caesar loyalto Roman Caesar ruler Roman Pompeian Marcus Pompeian Marcus man

Te same klauzule w nowej składni 1. man Marcus :. 2. Pompeian Marcus :. 3. Roman 4. ruler Caesar :. 5. loyalto 6. loyalto 7.: 1 2 3 : loyalto Caesar; hate f 1 4 Pompeian y 1 3 :. man Caesar : ruler y 8. tryassasinate Marcus Caesar :. 4 1 2. 1 Roman. tryassasinate 2 4 y 1. 45

Przykład dowodzenia rezolucją założenia Chcemy udowodnić że Marcus nienawidzi Caesara. Zatem stawiamy hipotezę hatemarcus Caesar. Spełniając założenia rezolucji negujemy hipotezę. Co daje klauzulę: hatemarcus Caesar. W nowej składni klauzula będzie miała postać: :- hatemarcus Caesar. 46

Przykład cd. : hate Marcus Caesar. loyalto 2 Caesar; hate 2 Caesar : Roman 2. Marcus / 2 loyalto Marcus Caesar : Roman Marcus. Roman 1 : Pompeian 1. Marcus / 1 Pompeian Marcus :. loyalto Marcus Caesar : Pompeian Marcus. loyalto Marcus Caesar :. : loyalto 4 y1 man 4 ruler y1 tryassasinate 4 y1. Marcus / y 4 Caesar / 1 man Marcus :. : man Marcus ruler Caesar tryassasinate Marcus Caesar. : ruler Caesar tryassasinate Marcus Caesar. ruler Caesar :. tryassasinate Marcus Caesar :. : tryassasinate Marcus Caesar. : 47

Jeszcze raz rezolucja Zupełność: jeżeli jakiś fakt jest wnioskiem z hipotezy możliwe jest udowodnienie go przez wykazanie fałszywości zbioru przesłanek uzupełnionych negacją faktu. Jak zmyślnie dobierać kolejne klauzule w celu dopasowania? Zadowoli nas system który pokaże wszystkie możliwe wnioski. 48

Klauzula Horna Jest to klauzula zawierająca co najwyżej jeden niezanegowany predykat. Klauzulami Horna nie są zdania typu: : Roman loyalto Caesar hate Caesar loyalto 2 Caesar; hate 2 Caesar : Roman 2. To uproszczenie pozwala na ułatwienie wnioskowania. Klauzule Horna dzieli się na: z głową: posiadające jeden niezanegowany predykat;np.. man :- person. manmarcus :-. bez głowy: bez niezanegowanego predykatu; :-person. 49

Zbiory klauzul Horna jako baza wiedzy i zapytania Wszystkie klauzule poza jedną posiadają głowę. Założenie to pozwala na rozwiązanie dowolnego problemu. Baza wiedzy zawiera klauzule z głową. Cel wywodu pytanie jest klauzulą bez głowy. Istnienie jednej klauzuli bez głowy daje szansę uzyskania sprzeczności czyli uzyskanie pustej głowy i pustej treści. Istnienie wielu klauzul bez głowy jest zbędne ponieważ każdy dowód można wyprowadzić przy użyciu co najwyżej jednej klauzuli bez głowy. Zatem klauzula pusta wynika tylko z klauzul z głową i jednej bez głowy. 50

PROLOG Program zawiera informacje o danych z odpowiednią ich interpretacją. Symboliczne opisanie wiedzy. Baza wiedzy zawiera oprócz danych faktów interpretowalne reguły zależności pomiędzy danymi. Aby wyrazić reguły i fakty stosuje się logikę predykatów. 51

Implementacja 1. Stosując zasady logiki tworzy się system zawierający fakty i reguły. 2. Zadaje się pytania dotyczące wiedzy zebranej w punkcie 1. pytania mogą mieć charakter tak lub nie lub wyszukaj wszystkie dane dla których podane wyrażenie będzie miało wartość TRUE. 52

Przykład Reprezentacja logiczna Reprezentacja w PROLOGU 1. : pet small apartmentpet 2. : cat dog pet 3. : poodle dog small 1. poodlefluffy reguły 1. apartmentpetx :- petx smallx. 2. petx :- catx. 3. petx :- dogx. 4. dogx :- poodlex. 5. smallx :- poodlex. 6. poodlefluffy. fakt 53

Zależność Prologu i logiki Źródło w Prologu to zbiór klauzul Horna z głową. Do wnioskowania stosuje się rezolucję która dopasowuje cel klauzulę bez głowy do innych klauzul z głową próbując wszystkie kombinacje klauzul z bazy. Nie wykorzystuje się powstałych pośrednio wniosków nie dopisuje się ich ani tymczasowo ani na stałe. Jeżeli cel jest złożony np.. : parentxy femalex. to Prolog dowodzi pierwszy z lewej dopiero później po uzyskaniu dla niego pustej klauzuli przechodzi do kolejnego celu. Na końcu składa podcele. Algorytm sprawdzający wszystkie możliwości to strategia w głąb - DFS Depth First Search. 54

Składnia. - koniec klauzuli; ; - OR dysjunkcja; - ANDkoninkcja; :- - implikacja; % - komentarz; man Marcus. - fakt manx :- personx.- reguła 55

Termy Każda klauzula składa się z termów: stałe atomy identyfikator zaczyna się z małej litery lub liczby np.. pismo 4.5 zmienne identyfikator zaczyna się z wielkiej litery lub podkreślenia np.. Zmienna _zmienna struktury predykaty lub struktury danych np.. matkaala datarokmiesiacdzien funktor argumenty 56

Niuanse Dlaczego: 1. petx :- catx. 2. petx :- dogx. jest równoważne: petx :- catx;dogx. pet X : dog X. pet X : cat X. pet X pet X dog X cat X pet X dog X pet X cat X pet X dog X cat X pet X dog X cat X pet X dog X cat X pet X : dog X ; cat X. 57

Unifikacja Proces kojarzenia zmiennych i wartości. Zmienna której przypisano stałą wartość nazywa się ukonkretnioną. Reguły unifikacji: Stała może być zunifikowana tylko ze sobą. Dwie struktury mogą ze sobą zunifikować wtedy i tylko wtedy gdy nazwy funktorów są takie same mają taką samą liczbę argumentów dopiero w kolejnym kroku rekurencyjnie unifikuje się ich argumenty. Zmienne unifikują się ze wszystkim. 58

Unifikowalność Znak równości w Prologu oznacza operację unifikacji Na przykład:?- jablko = jablko. Yes?- jablko = gruszka. No?- lubiosoba jablko = lubiadam Jedzenie. Osoba = adam Jedzenie = jablko ; No?- lubiosoba gruszka = lubiadam jablko. No?- lubiosoba Jedzenie = lubiadam Jedzenie. Osoba = adam Jedzenie = _G158 ; No Wewnętrzna reprezentacja niezunifikowanej zmiennej. Jakiekolwiek podstawienie dowodzi prawdy 59

Kolejność wnioskowania Dany jest plik źródłowy: 1. apartmentpetx :- petx smallx. 2. petx :- catx. 3. petx :- dogx. 4. dogx :- poodlex. 5. smallx :- poodlex. 6. poodlefluffy. Sprawdzamy czy apartmentpetfluffy jest prawdziwe. 60

Schemat odpowiedzi apartmentpetfluffy AND petfluffy smallfluffy 2 OR catfluffy dogfluffy fail 1 5 3 4 poodlefluffy 6 10 8 poodlefluffy 7 11 success 9 61

Kolejność klauzul Zachowanie interpretera jest przewidywalne bo źródło jest przeszukiwane zgodnie z algorytmem DFS. Szczególnie istotnie wpływa to na predykaty rekurencyjne głowa i treść reguły zawiera ten sam funktor. Niewłaściwa kolejność definicji klauzul może zaowocować nieskończoną pętlą. 62