Elementy Sztucznej Inteligencji

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

Zarządzanie wiedzą. 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

PODSTAWY SZTUCZNEJ INTELIGENCJI

Programowanie w logice

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

Równowano modeli oblicze

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

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

Adam Meissner.

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

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

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

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

LOGIKA I TEORIA ZBIORÓW

Wprowadzenie do Prologa

Matematyka ETId Elementy logiki

Podstawy Sztucznej Inteligencji (PSZT)

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

Gramatyki regularne i automaty skoczone

Programowanie deklaratywne

Alfred N. Whitehead

Języki programowania deklaratywnego

Programowanie w Logice

Wprowadzenie do Sztucznej Inteligencji

Adam Meissner STUCZNA INTELIGENCJA

Programowanie deklaratywne

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

III rok kognitywistyki UAM,

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Konsekwencja logiczna

Składnia rachunku predykatów pierwszego rzędu

Elementy logiki matematycznej

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

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

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

Metodydowodzenia twierdzeń

Drzewa Semantyczne w KRZ

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Bazy danych Podstawy teoretyczne

Rachunek zdań i predykatów

Programowanie deklaratywne

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),

Adam Meissner SZTUCZNA INTELIGENCJA

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

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

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

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

Logika Matematyczna (10)

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

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

SZTUCZNA INTELIGENCJA

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

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

Reprezentacja wiedzy i wnioskowanie

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

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

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Programowanie w Logice Struktury danych (Lista 2)

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

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

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

Laboratorium przedmiotu Paradygmaty Programowania

Programowanie logiczne a negacja

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

Programowanie w logice

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Struktury formalne, czyli elementy Teorii Modeli

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Programowanie w logice Wykład z baz danych dla

Języki programowania deklaratywnego

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Planowanie adresacji IP dla przedsibiorstwa.

Wstp. Warto przepływu to

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Wstęp do logiki. Klasyczny Rachunek Zdań II

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

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

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Klasyczny rachunek predykatów

III rok kognitywistyki UAM,

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

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

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

Dalszy ciąg rachunku zdań

Michał Lipnicki (UAM) Logika 11 stycznia / 20

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Wyra»enia logicznie równowa»ne

Programowanie w logice Prolog 2

Arytmetyka liczb binarnych

Metoda Tablic Semantycznych

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

Transkrypt:

Elementy Sztucznej Inteligencji Reprezentacja wiedzy: logika predykatów pierwszego rzdu wykład 7 Plan wykładu Logika predykatów pierwszego rzdu Metoda rezolucji Unifikacja Przejcie od logiki predykatów do Prologu PROgramming in LOGic Procedura przegldania bazy wiedzy Predykaty rekurencyjne 2

Rachunku zda kontra logika predykatów pierwszego rzdu Rachunek zda: Ograniczona ontologia zakłada, e wiat składa si tylko z faktów. Logika predykatów pierwszego rzdu Moe wyraa fakty o wszystkich obiektach w mikrowiecie. Pozwala na reprezentowanie ogólnych reguł rzdzcych rzeczywistoci. Nie potrafi reprezentowa kategorii, czasu czy zdarze (niekoniecznie). Dowolno reprezentacji faktów. Uniwersalna: moe wyrazi wszystko, co da si zaprogramowa. 3 Logika predykatów Logika predykatów reprezentuje fakty o obiektach, tj. rzeczach o indywidualnej tosamoci i własnociach, które odróniaj je od innych obiektów. Pomidzy obiektami zachowywane s róne relacje. Wród relacji wyrónia si funkcje (relacje z jedn wartoci dla danego wejcia). Przykłady faktów: Pola ssiadujce z wumpusem cuchn: obiekty: wumpus, pole własno: cuchnie relacja: ssiedni Zły król Jan rzdził Angli w 200. obiekty: Jan, Anglia, 200 własno: zły, król relacja: rzdził (lub król jako relacja pomidzy krajem i człowiekiem) 4

Składnia (syntaksa) Symbole stałe, np.: A, B, Jan nazywaj dokładnie jeden obiekt. Symbole predykatów, np.: okrgły, brat szczególna relacja w modelu. brat moe reprezentowa relacj jest bratem. brat jest symbolem predykatu binarnego, który zachowuje relacj (lub nie) pomidzy dwoma obiektami. symbole funkcji, np.: cosinus, ojciec relacja funkcyjna jest zachowana dla dokładnie jednego obiektu w relacji. (Kady ma jednego ojca, a kada warto kta ma dokładnie jedn warto cosinusa). Wybór symboli zaley tylko od uytkownika! 5 Składnia termy Term wyraenie logiczne odnoszce si do obiektu. Do termów zalicza si: symbole stałe: Jan symbole funkcji: lewa_noga(jan) (jest to złoona nazwa nie zwracamy wartoci (lewej nogi Jana)!!). 6

Składnia zdania atomowe Zdanie atomowe wyraa fakt odnoszcy si do obiektów i relacji pomidzy nimi opisanymi symbolami predykatów. brat(ryszard, Jan) małestwo(ojciec(ryszard), matka(jan)) Zdanie atomowe jest true, jeeli relacja opisana symbolem predykatu zachodzi pomidzy obiektami podanymi jako argumenty relacji. 7 Składnia zdania złoone Aby zbudowa zdania złoone stosuje si operatory zdaniotwórcze (takie jak w rachunku zda): negacja (nie), np.: brat(robin, Jan) (jest true, jeeli Robin nie jest bratem Jana); koniunkcja (i), np.: brat(ryszard, Jan) brat(jan, Ryszard) (jest true, jeeli Ryszard jest bratem Jana i Jan jest bratem Ryszarda); alternatywa (lub), np..: starszy(jan, 30) młodszy(jan, 30) (jest true, jeeli Jan jest starszy ni 30 lub Jan ma mniej ni 30 lat); implikacja (z tego wynika, e), np..: starszy(jan, 30) młodszy(jan, 30) (Jeeli Jan ma wicej ni 30 lat to nie moe mie mniej ni 30); 8

Składnia Kwantyfikator wielki (ogólny) Pozwala okreli własnoci grupy obiektów, np..: Wszystkie koty to ssaki : kot( ssak( Stosuje si zmienne np.. y (oznaczone małymi literami). Zmienna jest termem. Co jeeli 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!!!). 9 Składnia Kwantyfikator mały (szczególny) Pozwala okreli własnoci jakiego szczególnego obiektu bez nazywania go, np.: Spot ma siostr, która jest kotem x: siostra( Spot) kot( Błd w interpretacji: x: siostra( Spot) kot( (Nie łczy i ), bo rozwinicie dla przypadków: siostra(spot, Spot) kot(spot) siostra(rebeca, Spot) kot(spot) siostra(jan, Spot) kot(spot) zadanie z implikacj bdzie zawsze prawdziwe, jeeli przesłanka jest fałszywa, wic dla kadego dla którego siostra( Spot) jest fałszywe. W przypadku iloczynu obie relacje musz by prawdziwe. 0

Zagniedanie kwantyfikatorów y jest równowane y jest równowane y x y jest równowane y x x y nie jest równowane y x y kocha(y) Kady kogo kocha x y kocha(y) Istnieje kto, kto wszystkich kocha y kocha(y) Istnieje kto, kto jest przez wszystkich kochany [kot( x brat(ryszard,] w takim przypadku znaczenie ma najbardziej wewntrzny kwantyfikator (w niniejszym przypadku nie ma adnego efektu) Kada zmienna musi by zwizana z jakim kwantyfikatorem. Dualizm kwantyfikatorów lubi(lody) Kady lubi lody x lubi(brokuły) x lubi(lody) Nie istnieje kto, kto nie lubi lodów lubi(brokuły) Istnieje kto, kto lubi brokuły Nie kady nie lubi brokuły Prawa De Morgana: : P( x : P( : P( x : P( : P( x : P( x : P( : P( 2

Równo Symbol równoci moe słuy do budowania zda. term = term 2 jest prawdziwe w danej interpretacji jeeli term i term 2 odnosz si do tego samego obiektu. np.. ojciec(jan) = Henryk np.. y rodzestwo(y) [ (x = y) m,f (m = f) rodzic(m, rodzic(f, rodzic(m,y) rodzic(f,y)] 3 Logika predykatów na przykładzie. Marcus był człowiekiem. 2. Marcus był mieszkacem Pompei. 3. Wszyscy mieszkacy Pompei byli Rzymianami. 4. Cezar był władc. 5. Wszyscy Rzymianie byli, albo lojalni wobec Cezara, lub nienawidzili go. 6. Kady 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. 4

Logika predykatów na przykładzie man(marcus ) Pompeian (Marcus) : Pompeian( Roman( ruler( : Roman( loyalto( hate( : y : loyalto( y) : y : person( ruler( y) tryassass( y) loyalto( y) tryassass( Marcus, 5 Co pominito w przykładzie Ad. Nie uwzgldniono czasu przeszłego. W dalszych rozwaaniach nie bdzie to miało znaczenia. Ad 4. Imiona nie zawsze wskazuj na konkretne indywiduum. Dokładno wymaga sporej iloci wiedzy przechowywanej w bazie. Ad 6. Problem zasigu. Czy dla kadego 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 chccy 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 dziki temu ma dwa argumenty. 6

Inynieria wiedzy w logice predykatów pierwszego rzdu. Zidentyfikuj zadnie. 2. Zgromad wymagan wiedz. 3. Wybierz słownik predykatów, funkcji i stałych. 4. Zakoduj ogóln wiedz dotyczc zadnia. 5. Zakoduj specyficzn wiedz dotyczc zadania. 6. Postaw pytania do procedury wnioskowania i otrzymaj odpowiedzi 7. Usu błdy z bazy wiedzy. 7 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. Jako SUBST(θ,a) oznaczona bdzie wynik zastosowania podstawie θ do zdania a. 8

Podstawienia uniwersalne Kade podstawienie wielkiego kwantyfikatora oznaczone zostanie: v Subst({v/g}, ) dla kadej zmiennej v i termu g. np., a, v = x: King( Greedy( Evil(: g = John: King(John) Greedy(John) Evil(John) g = Richard : King(Richard) Greedy(Richard) Evil(Richard) g = Father(John): King(Father(John)) Greedy(Father(John)) Evil(Father(John)) 9 Podstawienie szczególne Dla kadego zdania, zmiennej v, i stałej k, która nie pojawia si gdzie indziej w bazie wiedzy. Czyli istnieje obiekt spełniajcy warunek a podstawienie daje nazw obiektu: v Subst({v/k}, ) np.., x Kill(Victim) daje: Kill(Murderer,Victim) Murderer jest nowym symbolem stałej zwanej stał Skolemow. Murderer nie naley te do innego obiektu. 20

Unifikacja Algorytm unifikacji jest rekurencyjn procedur, porównujc dwa termy i odkrywajc, czy istnieje zbiór podstawie, które sprawi, e termy stan si identyczne. Np. man(john) i man(john) unifikuj si, natomiast man(john) i man(spot) nie, bo maj róne argumenty. 2 Algorytm unifikacji załoenia Jeeli symbole predykatów inicjalizujcych s takie same, to kontynuuj. W przeciwnym przypadku unifikacji zawodzi niezalenie od argumentów. Np.. tryassasisinate(marcus, i hate(marcus,. Jeeli symbole równe, to sprawdzamy argumenty, ich liczb i wartoci. Zasady porównania: predykat równy predykatowi, argument argumentowi, zmienna zmiennej. Problem typu: P( i P(y,z). Predykat P jest zgodny. Porównujemy zatem x i y i decydujemy, e jeeli podstawimy y za x to uzyskamy odpowiednio. Podstawienie zapisuje si jako y/x [P(y,y) i P(y,z)]. Mona oczywicie dokona podstawienia odwrotnego. Nie mona jednak podstawi y i z za x. Algorytm zwraca list podstawie. Pusta oznacza ich BRAK. 22

Przykłady unifikacji p q Knows(John, Knows(John,Jane) {Jane/x}} Knows(John, Knows(y,OJ) {OJ/John/y}} Knows(John, Knows(y,Mother(y)) {John/y,Mother(John)/x}} Knows(John, Knows(OJ) {fail} 23 Przykład unifikacji dane: hate(y), hate(marcus,z) Unifikacja moe zwróci list nastpujcych podstawie:. (Marcus/ z/y) 2. (Marcus/ y/z) 3. (Marcus/ Caesar/y, Caesar/z) 4. (Marcus/ Paulus/y, Paulus/z) jeeli dane: hate(marcus,paulus), hate(marcus,julian), hate(marcus, Podstawienia i 2 s bardziej ogólne ni 3 i 4. Ostatecznie do dalszej rezolucji poszukuje si jak najbardziej ogólnego unifikatora (mgu). 24

Uogólniony modus ponens p ', p 2 ',, p n ', ( p p 2 p n q) q p ' to King(John) p to King( p 2 ' to Greedy(y) p 2 to Greedy( to {x/john,y/john} q to Evil( q to Evil(John) 25 Wnioskowanie wstecz na przykładzie Hipoteza: Czy Marcus był lojalny wobec Cezara? Wnioskowanie wstecz metod modus ponens. Zalenoci reguł mona przedstawi jako drzewo typu AND-OR. Oczywicie poszukiwanie jest obszerniejsze ni zademonstrowane na nastpnym slajdzie. W przykładzie pokazana jest tylko jedna gał. Wykorzystano fakty i reguły ze slajdu 5. Wprowadzono dodatkowe zdanie: Kada osoba jest człowiekiem. : man( person( 26

Przykład cd. loyalto( Marcus, person( Marcus) ruler( tryassass( Marcus, person( Marcus) (fakt 4) tryassass( Marcus, (fakt 8) person(marcus) man(marcus) (reguła 7, podstawienie) (reguła dodatkowa) (fakt ma warto logiczn zatem Marcus nie był lojalny wobec Cezara) 27 Problemy w dowodzeniu Niejednoznaczno interpretacji znaczenia. Naley uwzgldnia fakty oczywiste, które mog nie by bezporednio zdefiniowane w zadaniu, ale s niezbdne, by przeprowadzi wnioskowanie. Nie wiadomo z góry jakie zdanie dowodzi. (Czy Marcus był lojalny wobec Cezara?) loyalto( Marcus, loyalto( Marcus, 28

Predykaty obliczeniowe Dana jest baza wiedzy:. Marcus był człowiekiem. 2. Marcus był mieszkacem Pompei. 3. Marcus urodził si w roku 40. 4. Wszyscy ludzie s miertelni. 5. Wszyscy mieszkacy Pompei zmarli podczas erupcji wulkanu w roku 79. (rozbicie na dwa predykaty) 7. Nie zanotowano człowieka yjcego dłuej ni 50 lat. 8. Teraz jest 2007. Fakty dodatkowe: 9. ywy oznacza nie martwy. 0. Jeeli kto umrze, to jest ju nieywy w czasie po jego mierci. 29 Baza w logice predykatów man(marcus) Pompeian(Marcus) born(marcus,40) : man( mortal( : Pompeian( died( 79) erupted(volcano,79) : t : t : mortal( born( t ) gt( t t,50) dead( t ) 2 2 2 now = 2007 : t : alive( t) dead( t) : t : dead( t) alive( t) : t : t : died( t ) gt( t, t ) dead( t ) 2 2 2 30

Dowodzenie z obliczeniami Na nastpnych dwóch slajdach zostanie przedstawiony logiczny wywód, odpowiadajcy na pytanie: Czy Markusyje? Wybieramy do dowodzenia hipotez zanegowan: Markus nie yje. Dowodzenie odbdzie si z wykorzystaniem metody wstecz (do przesłanek) uogólnion metod modus ponens. Przedstawione zostan tylko pojedyncze gałzie prowadzce do potwierdzenia hipotezy. 3 cieka pierwsza alive( Marcus, now) dead( Marcus, now) died( Marcus, t) gt( now, t) (reguła 5, unifikacja) Pompeian( Marcus) gt( now,79) gt(now,79) gt(2007,79) (reguła 9, unifikacja) (reguła 0, unifikacja) (reguła 2) (równo, unifikacja) (obliczenie gt) 32

cieka druga alive( Marcus, now) dead( Marcus, now) (reguła 9b, unifikacja) (reguła 7, unifikacja) mortal( Marcus) born( Marcus, t ) gt( now t,50) man( Marcus) born( Marcus, t ) gt( now t,50) born( Marcus, t ) gt( now t,50) gt( now 40,50) gt( 2007 40,50) gt(967,50) (reguła 4, unifikacja) (reguła ) (reguła 3, unifikacja) (równo 8) (obliczenie odejmowania) (obliczenie gt) 33 Rezolucja Wersja reguły dla logiki predykatów pierwszego rzdu k, n ( i- i+ k j- j+ n ) gdzie unifikacja( i, j ) =. Reguł stosuj si dla zda w postaci formy CNF Przykład, Rich( Unhappy( Rich(Ken) Unhappy(Ken) z= {Ken/x} Stosuje si rezolucj do zda w CNF dla (KB ); gdzie hipoteza (cel) 34

Konwersja do postaci normalnej koniunkcyjnej CNF - Conjunctive Normal Form. Posta ta zwiera literały lub ich negacj (p lub p) Zawiera tylko dysjunkcj. Zdania w postaci normalnej koniunkcyjnej to klauzule (alternatywa literałów). Cel: uzyskuje si mniej zagniedonych komponentów forma jest prostsza. 35 Przykład postaci normalnej Kady Rzymianin, który zna Marcusa albo nienawidzi Cezara, albo myli, e kady, kto nienawidzi kogokolwiek jest głupcem. zdanie logiczne :[ Roman( know( Marcus)] [ hate( ( y : z : hate( y, z) thinkcrazy( y))] klauzula Roman( know( Marcus) hate( hate( y, z) thinkcrazy( y) 36

Algorytm konwersji do klauzul Algorytm składa si z dziewiciu kroków. Operuje na złoonym zdaniu logicznym i poprzez przeprowadzanie upraszczajcych operacji doprowadzi do powstania uproszczonej w formie klauzuli. Zdanie i klauzula s logicznymi ekwiwalentami. 37 Etap Usunicie implikacji Korzysta z własnoci a b a b Przykład: : male( X ) man( X ) : male( X ) man( X ) 38

Etap 2 Przesunicie negacji Krok ten prowadzi do uproszczenia wyrae z negacj. Redukuje nawiasy. Korzysta z własnoci ( p) p ( a b) a b ( a b) a b : P( x : P( x : P( : P( 39 Etap 3 standaryzacja zmiennych Zmienne opisywane przez róne kwantyfikatory otrzymuj róne nazwy. Przed: Po: : P( : Q( : P( y : Q( y) 40

Etap 4 przesunicie wszystkich kwantyfikatorów Przenosi si wszystkie kwantyfikatory poza wyraenie. Nie powoduje to zmiany interpretacji wyraenia. Przed: : ( mezczyzna( ( y : ( kobieta( y) lubi( y)))) Po: : y : ( mezczyzna( ( kobieta( y) lubi( y))) 4 Etap 5 skolemizacja Usunicie kwantyfikatora istnienia. Wprowadza si nowe symbole reprezentujce stałe, w miejsce zmiennych spod usuwanych kwantyfikatorów. Przypadek pierwszy: Przed: x : President( Po: President(s) Przypadek z wielkim kwantyfikatorem (S2( funkcja od zmiennej : Przed: : y : father( y) Po: : father( S2( ) 42

Etap 6 usunicie wielkiego kwantyfikatora Opuszcza si w wyraeniu kwantyfikatory wielkie i nie zmienia to znaczenia całego wyraenia. Przed: Po: : father( mark) father( marek) 43 Etap 7 wyprowadzenie i przed lub Konwersja wyraenia na iloczyn sum. Koniunkcje nie mog pojawia si wewntrz alternatyw. Przed: ( p( q( ) r( y) Po: ( p( r( y)) ( q( r( y)) 44

Etap 8 stworzenie klauzul Stworzenie niezalenych klauzul dla kadej koniunkcji. Kady czynnik iloczynu musi mie warto logiczn. Przed: ( p( q( ) ( q( r( y)) Po: powstały 2 klauzule.( p( r( y)) 2.( q( r( y)) 45 Etap 9 standaryzacja zmiennych Standaryzacja zmiennych w niezalenych klauzulach. Kadej zmiennej mona nada inn nazw, co nie zmieni znaczenia logicznego, a zapobiega myleniu zmiennych podczas dowodzenia. 46

Przykład konwersji :[ Roman( know( Marcus)] [ hate( ( y : z : hate( y, z) thinkcrazy( y))] (etap ) : [ Roman( know( Marcus)] [ hate( ( y : ( z : hate( y, z)) thinkcrazy( y))] (etap 2) :[ Roman( know( Marcus)] [ hate( ( y : z : hate( y, z) thinkcrazy( y))] (etap 4) : y : z :[ Roman( know( Marcus)] [ hate( ( hate( y, z) thinkcrazy( y))] (etap 6) [ Roman( know( Marcus)] [ hate( ( hate( y, z) thinkcrazy( y))] (etap 7) Roman( know( Marcus) hate( hate( y, z) thinkcrazy( y) 47 Rezolucja w logice predykatów. Konwersja aksjomatów F na klauzule. 2. Zaneguj P (predykat do udowodnienia) i przekształ na klauzul. Dodaj do zbioru klauzul F. 3. Powtarzaj, do osignicia klauzuli pustej, lub zatrzymaj, gdy nie ma postpu: 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 nastpujcymi wyjtkami: Jeeli istnieje para literałów T i T2, takich e jedna z klauzul rodzicielskich zawiera T, a druga zwiera T2, to zarówno T jak i T2 s unifikowane. T i T2 to literały komplementarne. Zastosuj zbiór podstawie wynikajcy z unifikacji do produkcji rezolwenty. Jeeli liczba literałów komplementarnych jest >, to w rezolwencie wybieramy tylko jedn z nich. c. Jeeli rezolwenta jest klauzul pust, to dowód zkoczono. Jeeli nie, to dodaj klauzul do zbioru klauzul. 48

49 Przykład Przykład Przekształcenie zda ze slajdu 5 na klauzule: ), ( 8. ), ( ) ( ) ( ), ( 7. )) (, ( 6. ), ( ), ( ) ( 5. ) ( 4. ) ( ) ( 3. ) ( 2. ) (. 4 4 4 3 3 2 2 2 Caesar Marcus tryassasinate y x tryassasinate y ruler x man y x loyalto x f x loyalto Caesar x hate Caesar x loyalto x Roman Caesar ruler x Roman x Pompeian Marcus Pompeian Marcus man 50

Przykład 2 (z funkcjami). man(marcus) 2. Pompeian(Marcus) 3. born(marcus,40) 4. man(x) mortal(x) 5. Pompeian(x2) died(x2,79) 6. erupted(volcano,79) 7. mortal(x3) born(x3,t) gt(t2-t,50) dead(x3,t2) 8. now=2007 9. Predykat 9a i 9b alive(x4,t3) dead(x4,t3) dead(x5,t4) alive(x5,t4) 0. died(x6,t5) gt(t6,t5) dead(x6,t6) 5 died( (2007,79) 52

Przykład 3 (unifikacje)!"#$% 9. hate(marcus,paulus) 0. hate(marcus,julian). hate(marcus, 53 54

Co wiemy Czym jest logika predykatów. Jak działa algorytm rezolucji. Jeeli teza {A, A2,..., An} jest niesprzeczna, formuła B jest wnioskiem z {A, A2,..., An} wtedy i tylko wtedy gdy teza {A, A2,..., B} jest sprzeczna. Czym jest posta klauzulowa. Czym jest unifikacja. 55 Interpretacja klauzul Zakładamy klauzul ( p( p2( pn ( ) ( q( q2( qn( ) Co jest równowane: ( p( p2( pn( ) ( q( q2( qn( ) Co jest równowane: p ( p ( p ( ) ( q ( q ( q ( )) ( 2 n 2 n x Oznaczamy jako,, jako ;, a jako :-. p( ; p2( ; ; pn ( : q(, q2(,, qn( 56

Przykład Kadego małego zwierzaka mona trzyma w mieszkaniu. : maly( zwierzak( trzymac( mieszkanie) Po przekształceniu na klauzule: Co daje: : ( maly( zwierzak( ) trzymac( mieszkanie) : maly( zwierzak( trzymac( mieszkanie) maly( zwierzak( trzymac( mieszkanie) trzymac( mieszkanie) ( ( maly( zwierzak( )) trzymac( mieszkanie) maly( zwierzak( trzymac( mieszkanie) : maly(, zwierzak( 57 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 treci, gdy reprezentuj aksjomaty. np.. kobieta(ala) w postaci klauzuli ma tak sam posta, co jest równowane zapisowi: kobieta(ala) :-. 58

Klauzule slajd5. man( Marcus) 2. Pompeian( Marcus) 3. Pompeian( x ) Roman( x ) 4. ruler( 5. Roman( x 6. loyalto( x, f ( x )) 3 2 ) loyalto( x, hate( x, 7. loyalto( x, y ) man( x 4 8. tryassasinate( Marcus, 3 2 4 ) ruler( y ) tryassasinate( x, y ) 2 4 59 Te same klauzule w nowej składni. man( Marcus) :. 2. Pompeian( Marcus) :. 3. Roman( x ) : Pompeian( x ). 4. ruler( :. 5. loyalto( x, ; hate( x, : Roman( x 2 6. loyalto( x, f ( x )) :. 3 7.: loyalto( x, y ), man( x 4 3 8. tryassasinate( Marcus, :. 4 2 ), ruler( y ), tryassasinate( x, y ). 2 ). 4 60

Przykład dowodzenia rezolucj załoenia Chcemy udowodni, e Marcus nienawidzi Caesara. Zatem stawiamy hipotez hate(marcus,. Spełniajc załoenia rezolucji negujemy hipotez. Co daje klauzul: hate(marcus,. W nowej składni klauzula bdzie miała posta: :- hate(marcus,. 6 Przykład cd. : hate( Marcus,. loyalto( x2, ; hate( x2, : Roman( x2). loyalto( Marcus, : Roman( Marcus). Marcus / x 2 Roman x ) : Pompeian( ). ( x Marcus / x Pompeian( Marcus) :. loyalto( Marcus, : Pompeian( Marcus). loyalto ( Marcus, :. loyalto( x, y ), man( x ), ruler( y ), tryassasinate( x, ). : 4 4 4 y man( Marcus) :. Marcus / x y 4, Caesar / : man( Marcus), ruler(, tryassasinate( Marcus,. : ruler(, tryassasinate( Marcus,. ruler( :. tryassasinate( Marcus, :. : : tryassasinate( Marcus,. 62

Jeszcze raz rezolucja Zupełno: jeeli jaki fakt jest wnioskiem z hipotezy, moliwe jest udowodnienie go przez wykazanie fałszywoci zbioru przesłanek uzupełnionych negacj faktu. Jak zmylnie dobiera kolejne klauzule w celu dopasowania? Zadowoli nas system, który pokae wszystkie moliwe wnioski. 63 Klauzula Horna Jest to klauzula zawierajca co najwyej jeden niezanegowany predykat. Klauzulami Horna nie s zdania typu: : Roman( loyalto( hate( loyalto( x2, ; hate( x2, : Roman( x2). To uproszczenie pozwala na ułatwienie wnioskowania. Klauzule Horna dzieli si na: z głow: posiadajce jeden niezanegowany predykat;np.. man( :- person(. man(marcus) :-. bez głowy: bez niezanegowanego predykatu; :-person(. 64

Zbiory klauzul Horna Wszystkie klauzule poza jedn posiadaj głow. Załoenie to pozwala na rozwizanie 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 sprzecznoci czyli uzyskanie pustej głowy i pustej treci. Istnienie wielu klauzul bez głowy jest zbdne, poniewa kady dowód mona wyprowadzi przy uyciu co najwyej jednej klauzuli bez głowy. Zatem klauzula pusta wynika tylko z klauzul z głow i jednej bez głowy. 65 PROLOG Program zawiera informacje o danych z odpowiedni ich interpretacj. (Symboliczne opisanie wiedzy). Baza wiedzy zawiera oprócz danych (faktów) interpretowalne reguły (zalenoci pomidzy danymi). Aby wyrazi reguły i fakty stosuje si logik predykatów. 66

Implementacja. Stosujc zasady logiki tworzy si system zawierajcy fakty i reguły. 2. Zadaje si pytania dotyczce wiedzy zebranej w punkcie. pytania mog mie charakter tak lub nie, lub wyszukaj wszystkie dane, dla których podane wyraenie bdzie miało warto TRUE. 67 Przykład Reprezentacja logiczna. : pet( small( apartmentpet( 2. : cat( dog( pet( 3. : poodle( dog( small( 4. poodle(fluffy) '() Reprezentacja w PROLOGU. apartmentpet(x) :- pet(x), small(x). 2. pet(x) :- cat(x). 3. pet(x) :- dog(x). 4. dog(x) :- poodle(x). 5. small(x) :- poodle(x). 6. poodle(fluffy). &$# 68

Zaleno 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óbujc wszystkie kombinacje klauzul z bazy. Nie wykorzystuje si powstałych porednio wniosków (nie dopisuje si ich ani tymczasowo, ani na stałe). Jeeli cel jest złoony, np.. : parent(x,y), female(x)., to Prolog dowodzi pierwszy z lewej, dopiero póniej po uzyskaniu dla niego pustej klauzuli przechodzi do kolejnego celu. Na kocu składa podcele. Algorytm sprawdzajcy wszystkie moliwoci to strategia w głb - DFS (Depth First Search). 69 Składnia. - koniec klauzuli; ; - OR (dysjunkcja);, - AND(koninkcja); :- - implikacja; % - komentarz; man( Marcus ). - fakt man(x) :- person(x).- reguła 70

Termy Kada 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 podkrelenia) np.. Zmienna, _zmienna struktury (predykaty lub struktury danych) np.. matka(ala), data(rok,miesiac,dzien) &$# '*#) 7 Niuanse Dlaczego:. pet(x) :- cat(x). 2. pet(x) :- dog(x). jest równowane: pet(x) :- cat(x);dog(x). pet( X ) : dog( X ). pet( X ) : cat( X ). pet( X ) dog( X ) pet( 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 ). 72

Unifikacja Proces kojarzenia zmiennych i wartoci. Zmienna, której przypisano stał warto nazywa si ukonkretnion. Reguły unifikacji: Stała moe 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. 73 Unifikowalno Znak równoci w Prologu oznacza operacj unifikacji Na przykład:?- jablko = jablko. Yes?- jablko = gruszka. No?- lubi(osoba, jablko) = lubi(adam, Jedzenie). Osoba = adam Jedzenie = jablko ; No?- lubi(osoba, gruszka) = lubi(adam, jablko). No?- lubi(osoba, Jedzenie) = lubi(adam, Jedzenie). Osoba = adam Jedzenie = _G58 ; No Wewntrzna reprezentacja niezunifikowanej zmiennej. Jakiekolwiek podstawienie dowodzi prawdy 74

Kolejno wnioskowania Dany jest plik ródłowy:. apartmentpet(x) :- pet(x), small(x). 2. pet(x) :- cat(x). 3. pet(x) :- dog(x). 4. dog(x) :- poodle(x). 5. small(x) :- poodle(x). 6. poodle(fluffy). Sprawdzamy, czy apartmentpet(fluffy) jest prawdziwe. 75 Schemat odpowiedzi apartmentpet(fluffy) +,- pet(fluffy) small(fluffy)./ cat(fluffy) dog(fluffy) & poodle(fluffy) poodle(fluffy) 76

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łaciwa kolejno definicji klauzul moe zaowocowa nieskoczon ptl. 77 Rekurencja Dany jest plik ródłowy:. parent(pam, bob). 2. parent(tom, bob). 3. parent(tom, liz). 4. parent(bob, ann). 5. parent(bob, pat). 6. parent(pat, jim). Podane s definicje przodka: 7. predecessor(x, Y):- parent(x, Y). 8. predecessor(x, Y):- parent(x, Z), predecessor(z, Y). Sprawdzamy prawdziwo zdania (cel): predecessor(tom, pat). 78

Rozwizanie parent(tom, pat) & predecessor(tom, pat)./ +,- parent(tom, _G00) predecessor(_g00, pat) _G00=bob parent(tom, bob) predecessor(bob, pat) parent(bob, pat) 3 "%!&0% '!%"%)'*##*2 79 Niepoprawna rekurencja Do bazy ze slajdu 78 dodano inne reguły na przodka, a mianowicie:. predecessor(x, Y):- predecessor(x, Z), parent(z, Y). 2. predecessor(x, Y):- parent(x, Y). Sprawdzamy prawdziwo zdania (cel): predecessor(tom, pat). 80

Rozwizanie predecessor(tom, pat)./ parent(tom, pat) +,- predecessor(tom, _G00) parent(_g00, pat)./ parent(tom, _G00) +,- predecessor(tom, _G002) parent(_g002, _G00) +,- predecessor(tom, _G003) parent(_g003, _G002) $4%$0 8