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

Podobne dokumenty
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

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

Reprezentacja wiedzy: logika predykatów pierwszego rzędu

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

PODSTAWY SZTUCZNEJ INTELIGENCJI

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

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

Programowanie w logice

Elementy Sztucznej Inteligencji

Matematyka ETId Elementy logiki

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

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

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...

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

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

Składnia rachunku predykatów pierwszego rzędu

Logika pragmatyczna dla inżynierów

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

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

Podstawy Sztucznej Inteligencji (PSZT)

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

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

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

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

Języki programowania deklaratywnego

Konsekwencja logiczna

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

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Programowanie deklaratywne

Adam Meissner.

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

Rachunek zdań i predykatów

LOGIKA I TEORIA ZBIORÓW

Programowanie w Logice

III rok kognitywistyki UAM,

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

Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

ROZDZIAŁ 1. Rachunek funkcyjny

Drzewa Semantyczne w KRZ

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

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

Semantyka rachunku predykatów

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

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 deklaratywne

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.

SZTUCZNA INTELIGENCJA

Elementy logiki i teorii mnogości

Wstęp do logiki. Klasyczny Rachunek Zdań II

Dalszy ciąg rachunku zdań

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

Programowanie deklaratywne

Michał Lipnicki (UAM) Logika 11 stycznia / 20

4 Klasyczny rachunek zdań

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

Elementy logiki matematycznej

Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań

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

Wykład 11b. System aksjomatyczny Klasycznego Rachunku Predykatów. Aksjomaty i reguły inferencyjne

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

Jest to zasadniczo powtórka ze szkoły średniej, być może z niektórymi rzeczami nowymi.

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

Lekcja 3: Elementy logiki - Rachunek zdań

Reprezentacja wiedzy ontologie, logiki deskrypcyjne

Alfred N. Whitehead

Programowanie w logice Prolog 2

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

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

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

Programowanie w Logice Struktury danych (Lista 2)

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

Zastosowanie logiki matematycznej w procesie weryfikacji wymagań oprogramowania

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

Paradygmaty dowodzenia

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

Adam Meissner SZTUCZNA INTELIGENCJA

Programowanie logiczne a negacja

Metoda Tablic Semantycznych

Wprowadzenie do Sztucznej

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

Klasyczny rachunek predykatów

1 Podstawowe oznaczenia

Wprowadzenie do Sztucznej Inteligencji

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

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

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

Wprowadzenie do Sztucznej Inteligencji

WYRAŻENIA ALGEBRAICZNE

Logika intuicjonistyczna

Dedukcyjne bazy danych

16. PODSTAWOWE POJĘCIA LOGIKI KWANTYFIKATORÓW

vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).

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

Lista 1 (elementy logiki)

Reprezentacja wiedzy i wnioskowanie

Maciej Grzesiak Instytut Matematyki Politechniki Poznańskiej. Elementy logiki

Transkrypt:

Wykład Reprezentacja wiedzy logika predykatów maj 2010

Logika predykatów pierwszego rzędu

Plan wykładu Logika predykatów pierwszego rzędu

Porównanie z rachunkiem zdań Rachunek zdań ograniczona ekspresja literały opisują fakty, bądź reguły o konkretnych obiektach treść rozpatrywanych zdań nie ma znaczenia, istotna jest jedynie ich wartość logiczna. Logika predykatów pierwszego rzędu bardziej uniwersalna pozwala reprezentować i wyrażać bardziej ogólne fakty i reguły zachowuje wszystkie poczynione w ramach klasycznego rachunku zdań ustalenia

Składnia NAZWY (stałe) - sa dowolne zmienne - pojedyncze rzeczy, wystepujace w zdaniu i oznaczamy je małymi literami w nastepujacy sposób : x; y; z PREDYKATY sa to zmienne własności NAZW np. P(x) i relacje tymi NAZWAMI np. R(x, y). Oznaczamy je wielkimi literami: P;Q;R; S lub wyrazami: relacja, rodzic.

Składnia cd. STAŁE (operatory):,,,, Kwantyfikatory: określają pewną liczby indywiduów, którym przysługuje pewna własność lub które pozostają w relacji OGÓLNY x - czytaj jako: Dla każdego SZCZEGÓLNY y - czytaj jako: Istnieje

Składnia cd. SCHEMAT ZDANIOWY - jest to symboliczny zapis odzwierciedlający zawartość zdania, np.: x P(x) - czytaj jako: Dla każdego x, x jest Ptakiem y Q(y) - czytaj jako: Istnieje taki y, że y jest Kura

Przykład na zdania z małym kwantyfikatorem Istnieja Ludzie, którzy sa Aniołami. x (czlowiek(x) aniol(x)) Istnieja Ludzie, którzy nie sa Aniołami. x (czlowiek(x) aniol(x)) Nie tylko Ludzie sa Aniołami. x ( czlowiek(x) aniol(x))

Przykład na zdania z wielkim kwantyfikatorem Wszyscy Ludzie sa Aniołami x (czlowiek(x) aniol(x)) Zaden Człowiek nie jest Aniołem x (czlowiek(x) aniol(x)) Tylko Ludzie sa Aniołami. x (czlowiek(x) aniol(x))

Własności kwantyfikatorów 1. Równoważność zapisów x y i y x i x,y 2. Równoważność zapisów x y i y x 3. x y nie jest równoważne x y 4. Prawa de Morgana dla kwantyfikatorów x P(x) x P(x) x P(x) x P(x) x P(x) x P(x) x P(x) x P(x)

Przykład bardziej złożony 1. Marcus był człowiekiem. man(marcus) 2. Marcus był mieszkańcem Pompei. pompeian(marcus) 3. Wszyscy mieszkańcy Pompei byli Rzymianami. x pompeian(x) roman(x) 4. Cezar był władcą. ruler(caesar) 5. Wszyscy Rzymianie byli lojalni wobec Cezara, lub nienawidzili go. x roman(x) loyalto(x, Caesar) hate(x, Caesar) 6. Każdy człowiek jest wobec kogoś lojalny. x y loyalto(x, y) 7. Ludzie starają się zgładzić tylko takiego władcę, wobec którego nie są lojalni. x,y man(x) ruler(y) trytoassassinate(x, y) loyalto(x, y) 8. Marcus próbował zgładzić Cezara. trytoassassinate(marcus, Caesar)

Analiza przykładu Nie uwzględniono czasu przeszłego. W dalszych rozważaniach nie będzie to miało znaczenia. Wszystko dzieje się w przeszłości. Imiona nie zawsze wskazują na konkretne indywiduum. Dokładność wymaga sporej ilości wiedzy przechowywanej w bazie. 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? Zdanie 7 można też zapisać jako: x,y person(x) ruler(y) loyalto(x, y) trytoassassinate(x, y)

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 operacji, które poradzą sobie z kwantyfikatorami. Jedną z nich jest UNIFIKACJA.

Unifikacja Algorytm unifikacji jest rekurencyjną procedurą, porównującą dwa predykaty i odkrywającą, czy istnieje zbiór podstawień, które sprawią, że termy staną się identyczne. Przykład na unifikację p i q. Wynikiem działania unifikacji jest θ. p q θ Knows(John,x) Knows(John,Jane) Jane/x Knows(John,x) Knows(y,OJ) OJ/x,John/y Knows(John,x) Knows(y,Mother(y)) John/y,Mother(John)/x Knows(John,x) Knows(x,OJ) fail

Rezolucja w logice predykatów Reguła rezolucji jest taka sama, wymaga tylko ze względu na argumenty relacji zastosowania unifikacji. Zdania muszą być podane w koniunkcyjnej postaci normalnej (CNF). Przykład ( rich(x) unhappy(x)) (rich(richard)) unhappy(richard) gdzie θ = Richard/x

Konwersja do postaci normalnej koniunkcyjnej w logice predykatów 1. Eliminacja, zamiana na iloczyn implikacji. 2. Eliminacja, zamiana na sumę. 3. Przesuń do nawiasów stosując prawa de Morgana i podwójną negacje. 4. Standaryzacja zmiennych np.: zamień x P(x) x Q(x) na x P(x) y Q(y). 5. Przesunięcie wszystkich kwantyfikatorów np.: zamień x P(x) y Q(y) na x y P(x) Q(y). 6. Usunięcie małego kwantyfikatora - skolemizacja: np. zamień x y P(x, y) na x P(x, S(x)). 7. Usunięcie wielkiego kwantyfikatora po prostu dalej się je pomija. 8. Zastosuj prawa rozdzielności względem. 9. Kolejna standaryzacja zmiennych zróżnicowanie zmiennych w poszczególnych Joanna klauzulach. Kołodziejczyk

Przykład konwersji Każdy Rzymianin, który zna Marcusa nienawidzi Cezara, albo myśli, że każdy, kto nienawidzi kogokolwiek jest głupcem. x (roman(x) know(x, Marcus)) (hate(x, Caesar) ( y ( z hate(y, z)) thinkcrazy(x, y)))

Kolejne etapy konwersji Etap 2 x (roman(x) know(x, Marcus)) (hate(x, Caesar) ( y ( z hate(y, z)) thinkcrazy(x, y))) Etap 3 x ( roman(x) know(x, Marcus)) (hate(x, Caesar) ( y ( z hate(y, z) thinkcrazy(x, y))) Etap 5 x y z ( roman(x) know(x, Marcus)) (hate(x, Caesar) ( hate(y, z) thinkcrazy(x, y))) Etap 7 roman(x) know(x, Marcus) hate(x, Caesar) hate(y, z) thinkcrazy(x, y)))

Przykład konwersja na CNF W wyniku konwersji bazy wiedzy ze slajdu 11 na postać CNF otrzymujemy: 1. man(marcus) 2. pompeian(marcus) 3. pompeian(x 1 ) roman(x 1 ) 4. ruler(caesar) 5. roman(x 2 ) loyalto(x 2, Caesar) hate(x 2, Caesar) 6. loyalto(x 3, f (x 3 )) 7. man(x 4 ) ruler(y 1 ) tryassassinate(x 4, y 1 ) loyalto(x 4, y 1 ) 8. tryassassinate(marcus, Caesar)

Przykład rezolucji

Plan wykładu Logika predykatów pierwszego rzędu

Co wiemy 1. Jaka jest składnia i semantyka rachunku predykatów 2. Jak działa algorytm rezolucji (Jeżeli teza {A 1, A 2,..., A n } jest niesprzeczna, formuła B jest wnioskiem z {A 1, A 2,..., A n } wtedy i tylko wtedy, gdy teza {A 1, A 2,..., A n, B} jest sprzeczna). 3. Czym jest postać klauzulowa. 4. Jak działa unifikacja.

Popatrzmy na klauzule inaczej Zakładamy klauzule (p 1 (x) p 2 (x) p n (x)) ( q 1 (x) q 2 (x) q n (x)) Jest ona równoważna (p 1 (x) p 2 (x) p n (x)) ( (q 1 (x) q 2 (x) q n (x)) Co jest z kolei równoważne (p 1 (x) p 2 (x) p n (x)) (q 1 (x) q 2 (x) q n (x)) Jeżeli oznaczymy ( jako,) a ( jako ;) a ( jako :-) (p 1 (x); p 2 (x);... ; p n (x)) : (q 1 (x), q 2 (x),..., q n (x))

Reguły i fakty w nowej formule 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.. kobieta(ala) w postaci klauzuli ma taką samą postać, co jest równoważne zapisowi: kobieta(ala) :-.

Przykład w nowej składni W wyniku konwersji zdań CNF ze slajdu 19 otrzymujemy: 1. man(marcus) : 2. pompeian(marcus) : 3. roman(x 1 ) : pompeian(x 1 ) 4. ruler(caesar) : 5. loyalto(x 2, Caesar); hate(x 2, Caesar) : roman(x 2 ) 6. loyalto(x 3, f (x 3 )) : 7. loyalto(x 4, y 1 ) : man(x 4 ), ruler(y 1 ), tryassassinate(x 4, y 1 ) 8. tryassassinate(marcus, Caesar) :

Rezolucja na nowej składni Dowodzimy, że hate(marcus, Caesar), zatem do bazy wprowadzamy zanegowaną hipotezę.

Klauzula Horna Jest to klauzula zawierająca co najwyżej jeden niezanegowany predykat. Klauzulą Horna nie jest: loyalto(x 2, Caesar); hate(x 2, Caesar) : roman(x 2 ) Klauzule Horna dzieli się na: 1. z głową posiadające jeden niezanegowany predykat 2. bez głowy bez niezanegowanego predykatu

Zbiory klauzul Horna jako baza wiedzy Wszystkie klauzule poza jedną posiadają głowę. 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.

- programowanie w logice 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, a dokładnie klauzule Horna. Stosując zasady logiki tworzy się system zawierający fakty i reguły. Zadaje się pytania dotyczące zebranej wiedzy.

Przykład logika x pet(x) small(x) apartment(x) x cat(x) dog(x) pet(x) x poodle(x) dog(x) small(x) poodle(fluffy) apartment(x) :- pet(x),small(x) pet(x):-cat(x); dog(x). small(x) :- poodle(x). dog(x) :- poodle(x). poodle(flaffy).

Cechy programowania w U Ź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.. : 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 końcu składa podcele.

Niuanse Dlaczego x poodle(x) dog(x) small(x) to w U dog(x) :- poodle(x). small(x) :- poodle(x). x poodle(x) dog(x) small(x) x poodle(x) (dog(x) small(x)) poodle(x) (dog(x) small(x)) ( poodle(x) dog(x)) ( poodle(x) small(x)) dog(x) poodle(x) dog(x) poodle(x) small(x) poodle(x) small(x) poodle(x) dog(x) :- poodle(x). small(x) :- poodle(x).

Unifikacja w U 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(predykaty) 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.

Kolejność wnioskowania Dany jest plik źródłowy: apartmentpet(x) :- pet(x), small(x). pet(x) :- cat(x). pet(x) :- dog(x). dog(x) :- poodle(x). small(x) :- poodle(x). poodle(fluffy). Sprawdzamy, czy apartmentpet(fluffy) jest prawdziwe.

Przykład rezolucji