Sztuczna Inteligencja i Systemy Doradcze



Podobne dokumenty
SID Wykład 6 Wnioskowanie w logice I rzędu

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

SID Wykład 5 Wnioskowanie w rachunku zdań

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

Adam Meissner.

Podstawy Sztucznej Inteligencji (PSZT)

Programowanie logiczne a negacja

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

Wprowadzenie do Sztucznej Inteligencji

PODSTAWY SZTUCZNEJ INTELIGENCJI

LOGIKA I TEORIA ZBIORÓW

Świat Wumpusa (Wumpus world)

Konsekwencja logiczna

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

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 formalna wprowadzenie. Ponieważ punkty 10.i 12. nie były omawiane na zajęciach, dlatego można je przeczytać fakultatywnie.

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

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

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

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

ROZDZIAŁ 1. Rachunek funkcyjny

Składnia rachunku predykatów pierwszego rzędu

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

Sztuczna Inteligencja i Systemy Doradcze

Elementy logiki matematycznej

Wykład 10 i 11. Logiczni agenci. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach. Logiczni agenci (4g)

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

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

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

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

Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

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

Wstęp do logiki. Klasyczny Rachunek Zdań II

Złożoność obliczeniowa

Metoda Tablic Semantycznych

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

Zasady krytycznego myślenia (1)

Wprowadzenie do Sztucznej Inteligencji

Wstęp do logiki. Klasyczny Rachunek Zdań III

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

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

Programowanie w logice

Lekcja 3: Elementy logiki - Rachunek zdań

Dedukcyjne bazy danych i rekursja

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

Struktury formalne, czyli elementy Teorii Modeli

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

4 Klasyczny rachunek zdań

Programowanie deklaratywne i logika obliczeniowa

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

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

LOGIKA Klasyczny Rachunek Zdań

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

Automatyczne dowodzenie twierdzeń metodą rezolucji

STANDARDOWE FUNKCJE PRZYNALEŻNOŚCI. METODY HEURYSTYCZNE wykład 6. (alternatywa dla s) (zdef. poprzez klasę s) GAUSSOWSKA F.

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

Adam Meissner STUCZNA INTELIGENCJA

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

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

Alfred N. Whitehead

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

Reprezentacja wiedzy: logika predykatów pierwszego rzędu

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

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

Zasada rozszerzania. A U A jest zbiorem rozmytym, B jest obrazem zbioru A Przeniesienie rozmytości A w odwzorowaniu f na zbiór B. sup.

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Inżynieria Wiedzy i Systemy Ekspertowe. Niepewność wiedzy. dr inż. Michał Bereta Politechnika Krakowska

Logika matematyczna i teoria mnogości (I) J. de Lucas

I. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych.

Przykładowe dowody formuł rachunku kwantyfikatorów w systemie tabel semantycznych

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

Laboratorium przedmiotu Paradygmaty Programowania

Systemy ekspertowe. Krzysztof Patan

1 Logika Zbiory Pewnik wyboru Funkcje Moce zbiorów Relacje... 14

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

Semantyka rachunku predykatów

Reprezentacja wiedzy ontologie, logiki deskrypcyjne

Reprezentacja wiedzy i wnioskowanie

Poprawność semantyczna

Sztuczna Inteligencja i Systemy Doradcze

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

Dedukcyjne bazy danych i rekursja

Andrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

1 Podstawowe oznaczenia

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

III rok kognitywistyki UAM,

Elementy logiki i teorii mnogości Wyk lad 1: Rachunek zdań

Elementy logiki Klasyczny rachunek zdań. Wojciech Buszkowski Zakład Teorii Obliczeń Wydział Matematyki i Informatyki Uniwersytet im.

Paradygmaty programowania

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

III rok kognitywistyki UAM,

Adam Meissner SZTUCZNA INTELIGENCJA

Rachunek logiczny. 1. Język rachunku logicznego.

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

Transkrypt:

Sztuczna Inteligencja i Systemy Doradcze Wnioskowanie w logice I rzędu Wnioskowanie w logice I rzędu 1

Rachunek zdan: zalety i wady Rachunek zdań jest deklaratywny: elementy syntaktyki odpowiadają faktom Rach. zdań dopuszcza częściową/alternatywną/zanegowaną informację (w przeciwieństwie do większości struktur danych i baz danych) Rachunek zdań jest składnikowy: znaczenie B 1,1 P 1,2 wynika ze znaczenia B 1,1 i P 1,2 Znaczenie w rachunku zdań jest niezależne od kontekstu (w przeciwieństwie do języka naturalnego) Rachunek zdań ma bardzo ograniczoną moc wyrażania (w przeciwieństwie do języka naturalnego), np. nie da się wyrazić zdania pułapki powodują wiatr w sąsiednich polach inaczej niż przez napisanie oddzielnego zdania dla każdego pola Wnioskowanie w logice I rzędu 2

Logika I rzedu Rachunek zdań zakłada, że świat zawiera tylko fakty, natomiast logika I rzędu (bliższa językowi naturalnemu) zakłada, że świat zawiera: Obiekty: ludzie, domy, liczby, teorie, Ronald McDonald, kolory, baseball, wojny, wieki... Relacje: czerwony, okrągły, pierwszy, wieloodcinkowy..., brat, większy niż, w środku, część, ma kolor, zdarzyło się po, posiada, pomiędzy,... Funkcje: ojciec, najlepszy przyjaciel, trzeci właściciel, o jeden więcej niż, początek... Wnioskowanie w logice I rzędu 3

Syntaktyka Stałe KingJohn, 2, UCB,... Predykaty Brother, >,... Funkcje Sqrt, LeftLegOf,... Zmienne x, y, a, b,... Łączniki Równość = Kwantyfikatory Wnioskowanie w logice I rzędu 4

Syntaktyka: zdania atomowe Zdanie atomowe = predicate(term 1,..., term n ) lub term 1 = term 2 Term = function(term 1,..., term n ) lub constant or variable Np. Brother(KingJohn, RichardT helionheart) > (Length(Lef tlegof(richard)), Length(Lef tlegof(kingjohn))) Wnioskowanie w logice I rzędu 5

Syntaktyka: zdania zlozone Zdania złożone zbudowane są ze zdań atomowych przy pomocy łączników S, S 1 S 2, S 1 S 2, S 1 S 2, S 1 S 2 Np. Sibling(KingJohn, Richard) Sibling(Richard, KingJohn) >(1, 2) (1, 2) >(1, 2) >(1, 2) Wnioskowanie w logice I rzędu 6

Semantyka Zdania są prawdziwe względem modelu i interpretacji Model zawiera 1 obiektów (elementów dziedziny) i relacje między nimi Interpretacja specyfikuje przyporządkowania: symbole stałe obiekty predykaty relacje symbole funkcyjne relacje funkcyjne Zdanie atomowe predicate(term 1,..., term n ) jest prawdziwe wtw obiekty przyporządkowane do term 1,..., term n są w relacji przyporządkowanej do predicate Wnioskowanie w logice I rzędu 7

Model: przyklad crown person brother brother on head person king R $ J left leg left leg Wnioskowanie w logice I rzędu 8

Modele logiki I rzedu: bardzo duzo! Można wyliczać modele dla danego słownika bazy wiedzy KB: Dla każdej liczby elementów dziedziny n od 1 do Dla każdego k-arnego predykatu P k w słowniku Dla każdej możliwej relacji k-arnej na n obiektach Dla każdego symbolu stałego C w słowniku Dla każdego przyporządkowania C do jednego z n obiektów... Określanie logicznych konsekwencji przez wyliczanie modeli jest niepraktyczne! Wnioskowanie w logice I rzędu 9

variables sentence Kwantyfikatory uniwersalne Każdy w Berkeley jest sprytny: x At(x, Berkeley) Smart(x) x P jest prawdziwe w modelu m wtw P jest prawdziwe z x przyporządkowanym do każdego możliwego obiektu w modelu Nieformalnie, równoważne koniunkcji wszystkich podstawień w P At(KingJohn, Berkeley) Smart(KingJohn) At(Richard, Berkeley) Smart(Richard) At(Berkeley, Berkeley) Smart(Berkeley)... Wnioskowanie w logice I rzędu 10

variables sentence Kwantyfikatory egzystencjalne Ktoś w Stanford jest sprytny: x At(x, Stanford) Smart(x) x P jest prawdziwe w modelu m wtw P jest prawdziwe z x przyporządkowanym do pewnego możliwego obiektu w modelu Nieformalnie, równoważne alternatywie podstawień w P At(KingJohn, Stanf ord) Smart(KingJohn) At(Richard, Stanf ord) Smart(Richard) At(Stanf ord, Stanf ord) Smart(Stanf ord)... Wnioskowanie w logice I rzędu 11

x y równoważne y x x y równoważne y x Kwantyfikatory: wlasnosci x y nie jest równoważne y x x y Loves(x, y) Istnieje osoba, która kocha wszystkich y x Loves(x, y) Każdy jest kochany przez co najmniej jedną osobę Dualność kwantyfikatorów: jeden można opisać przy pomocy drugiego x Likes(x, IceCream) x Likes(x, Broccoli) x Likes(x, IceCream) x Likes(x, Broccoli) Wnioskowanie w logice I rzędu 12

Tlumaczenie jezyka naturalnego do I rzedu Bracia są rodzeństwem Wnioskowanie w logice I rzędu 13

Tlumaczenie jezyka naturalnego do I rzedu Bracia są rodzeństwem x, y Brother(x, y) Sibling(x, y). Rodzeństwo jest symetryczne Wnioskowanie w logice I rzędu 14

Tlumaczenie jezyka naturalnego do I rzedu Bracia są rodzeństwem x, y Brother(x, y) Sibling(x, y). Rodzeństwo jest symetryczne x, y Sibling(x, y) Sibling(y, x). Czyjaś matka jest kobietą i jego rodzicem Wnioskowanie w logice I rzędu 15

Tlumaczenie jezyka naturalnego do I rzedu Bracia są rodzeństwem x, y Brother(x, y) Sibling(x, y). Rodzeństwo jest symetryczne x, y Sibling(x, y) Sibling(y, x). Czyjaś matka jest kobietą i jego rodzicem x, y Mother(x, y) (Female(x) Parent(x, y)). Kuzyn jest dzieckiem rodzeństwa rodzica Wnioskowanie w logice I rzędu 16

Tlumaczenie jezyka naturalnego do I rzedu Bracia są rodzeństwem x, y Brother(x, y) Sibling(x, y). Rodzeństwo jest symetryczne x, y Sibling(x, y) Sibling(y, x). Czyjaś matka jest kobietą i jego rodzicem x, y Mother(x, y) (Female(x) Parent(x, y)). Kuzyn jest dzieckiem rodzeństwa rodzica x, y FirstCousin(x, y) p, ps Parent(p, x) Sibling(ps, p) P arent(ps, y) Wnioskowanie w logice I rzędu 17

Rownosc term 1 = term 2 jest prawdziwe w danej interpretacji wtedy i tylko wtedy jeśli term 1 i term 2 przyporządkowane są do tego samego obiektu Np. 1 = 2 i x (Sqrt(x), Sqrt(x)) = x są spełnialne 2 = 2 jest tautologią Np. definicja (pełnego) Sibling w terminach Parent: x, y Sibling(x, y) [ (x =y) m, f (m =f) Parent(m, x) Parent(f, x) Parent(m, y) Parent(f, y)] Wnioskowanie w logice I rzędu 18

Baza wiedzy w jezyku I rzedu Agent w świecie Wumpusa odczuwający zapach i wiatr, ale nie obserwujący błysku w chwili t = 5: T ell(kb, P ercept([smell, Breeze, N one], 5)) Ask(KB, a Action(a, 5)) tzn. czy z KB wynikają jakieś konkretne akcje w chwili t = 5? Odpowiedź: T ak, {a/shoot} podstawienie (lista powiązań) Dla danego zdania S i podstawienia σ, Sσ oznacza wynik zastosowania σ do S; np. S = Smarter(x, y) σ = {x/hillary, y/bill} Sσ = Smarter(Hillary, Bill) Ask(KB,S) zwraca pewne/wszystkie σ takie, że KB = Sσ Wnioskowanie w logice I rzędu 19

Baza wiedzy: przyklad Obserwacja b, g, t Percept([Smell, b, g], t) Smelt(t) s, b, t Percept([s, b, Glitter], t) AtGold(t) Reakcja: t AtGold(t) Action(Grab, t) Reakcja z wewnętrznym stanem: czy nie mamy już złota? t AtGold(t) Holding(Gold, t) Action(Grab, t) Wnioskowanie w logice I rzędu 20

Baza wiedzy: przyklad Własności miejsca: x, t At(Agent, x, t) Smelt(t) Smelly(x) x, t At(Agent, x, t) Breeze(t) Breezy(x) Blisko pułapek jest wiatr: Reguła diagnostyczna wnioskuje przyczynę z efektu y Breezy(y) x Pit(x) Adjacent(x, y) Reguła przyczynowa wnioskuje efekt z przyczyny x, y Pit(x) Adjacent(x, y) Breezy(y) Definicja: y Breezy(y) [ x Pit(x) Adjacent(x, y)] Wnioskowanie w logice I rzędu 21

Baza wiedzy: przyklad Własności miejsca: x, t At(Agent, x, t) Smelt(t) Smelly(x) x, t At(Agent, x, t) Breeze(t) Breezy(x) Blisko pułapek jest wiatr: Reguła diagnostyczna wnioskuje przyczynę z efektu y Breezy(y) x Pit(x) Adjacent(x, y) Reguła przyczynowa wnioskuje efekt z przyczyny x, y Pit(x) Adjacent(x, y) Breezy(y) Definicja: y Breezy(y) [ x Pit(x) Adjacent(x, y)] OBSERWACJA: logika I rzędu ma dużo większą moc wyrażania niż rachunek zdań Wnioskowanie w logice I rzędu 22

Wnioskowanie w logice I rzedu Redukcja do wnioskowania w rachunku zdań Unifikacja + uogólniony Modus Ponens Forward chaining Backward chaining (Prolog) Rezolucja Wnioskowanie w logice I rzędu 23

Wnioskowanie w logice: historia 450b.c. Stoicy rachunek zdań, wnioskowanie (prawdopodobnie) 322b.c. Arystoteles sylogizmy (reguły wnioskowanie), kwantyfikatory 1565 Cardano teoria prawd. (rachunek zdań + niepewność) 1847 Boole rachunek zdań (ponownie) 1879 Frege logika I rzędu 1922 Wittgenstein dowodzenie przez tabele prawdziwości 1930 Gödel pełny algorytm dla log. I rzędu 1930 Herbrand pełny algorytm dla log. I rzędu (redukcja do rach. zdań) 1931 Gödel pełny algorytm dla arytmetyki 1960 Davis/Putnam praktyczny algorytm dla rachunku zdań 1965 Robinson praktyczny algorytm dla log. I rzędu rezolucja Wnioskowanie w logice I rzędu 24

Instancjacja uniwersalna (UI) Każda instancjacja uniwersalnie kwantyfikowanego zdania jest logiczną konsekwencją reguły: v α Subst({v/g}, α) dla dowolnej zmiennej v i termu ustalonego g Np. x King(x) Greedy(x) Evil(x) daje King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(F ather(john)) Greedy(F ather(john)) Evil(F ather(john)). Wnioskowanie w logice I rzędu 25

Instancjacja egzystencjalna (EI) Dla każdego zdania α, zmiennej v, i symbolu stałego k który nie występuje nigdzie w bazie wiedzy: v α Subst({v/k}, α) Np. x Crown(x) OnHead(x, John) pociąga Crown(C 1 ) OnHead(C 1, John) przy założeniu, że C 1 jest nowym symbolem stałym, nazywanym stałą Skolema Inny przykład: z x d(x y )/dy =x y otrzymujemy d(e y )/dy =e y przy założeniu, że e jest nowym symbolem stałym Wnioskowanie w logice I rzędu 26

Instancjacja: wlasnosci Instancjacja uniwersalna może być stosowana kilkakrotnie, żeby dodać nowe zdania; nowa KB jest logicznie równoważna poprzedniej Instancjacja egzystencjalna może być zastosowana raz, żeby zamienić zdania z kwantyfikatorami egzystencjalnymi; nowa KB nie jest równoważna poprzedniej, ale jest spełnialna wtw kiedy poprzednia KB jest spełnialna Wnioskowanie w logice I rzędu 27

Redukcja do rachunku zdan Załóżmy, że mamy daną następującą bazę wiedzy KB: x King(x) Greedy(x) Evil(x) King(John) Greedy(John) Brother(Richard, John) Instancjując zdania z kwantyfikatorami uniwersalnymi na wszystkie możliwe sposoby otrzymujemy King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(John) Greedy(John) Brother(Richard, John) Nowa KB jest sprowadzona do języka zdań: symbole zdaniowe to King(John), Greedy(John), Evil(John), King(Richard) itd. Wnioskowanie w logice I rzędu 28

Redukcja do rachunku zdan Fakt: zdanie ustalone jest logiczną konsekwencją nowej KB wtw jest logiczną konsekwencją oryginalnej KB Fakt: każda baza wiedzy może być sprowadzona do języka zdań tak, żeby zachować logiczne konsekwencje Pomysł: sprowadź KB i zapytanie do języka zdań zastosuj rezolucję zwróć wynik Wnioskowanie w logice I rzędu 29

Redukcja do rachunku zdan Problem: symbole funkcyjne, jest nieskończnie wiele termów, np. F ather(f ather(f ather(john))) Tw: Herbrand (1930). Jeśli zdanie α jest logiczną konsekwencją KB w logice I rzędu to jest logiczną konsekwencją skończonego podzbioru KB sprowadzonej do języka zdań Rozw: Dla n = 0 do sprowadć KB do języka zdań z termami do głębokości n sprawdź, czy α jest logiczną konsekwencją nowej KB Problem: działa, jeśli α jest logiczną konsekwencją, pętli się, jeśli nie jest Twierdzenie: Turing (1936), Church (1936) logiczna konsekwencja I rzędu jest półrozstrzygalna Wnioskowanie w logice I rzędu 30

Redukcja do rachunku zdan: efektywnosc Redukcja do rachunku zdań generuje wiele nieistotnych zdań. Np. x King(x) Greedy(x) Evil(x) King(John) y Greedy(y) Brother(Richard, John) fakt Evil(John) wydaje się oczywisty, ale redukcja produkuje wiele faktów takich jak Greedy(Richard) które są nieistotne Dla p k-arnych predykatów i n stałych, będzie p n k instancjacji! Wnioskowanie w logice I rzędu 31

Unifikacja Wniosek można otrzymać bezpośrednio, jeśli znajdziemiy podstawienie θ takie, że King(x) i Greedy(x) pasują do King(John) i Greedy(y) θ = {x/john, y/john} spełnia te wymagania Unify(α, β) = θ jeśli αθ =βθ p q θ Knows(John, x) Knows(John, Jane) Knows(John, x) Knows(y, OJ) Knows(John, x) Knows(y, M other(y)) Knows(John, x) Knows(x, OJ) Wnioskowanie w logice I rzędu 32

Unifikacja Wniosek można otrzymać bezpośrednio, jeśli znajdziemiy podstawienie θ takie, że King(x) i Greedy(x) pasują do King(John) i Greedy(y) θ = {x/john, y/john} spełnia te wymagania Unify(α, β) = θ jeśli αθ =βθ p q θ Knows(John, x) Knows(John, Jane) {x/jane} Knows(John, x) Knows(y, OJ) Knows(John, x) Knows(y, M other(y)) Knows(John, x) Knows(x, OJ) Wnioskowanie w logice I rzędu 33

Unifikacja Wniosek można otrzymać bezpośrednio, jeśli znajdziemiy podstawienie θ takie, że King(x) i Greedy(x) pasują do King(John) i Greedy(y) θ = {x/john, y/john} spełnia te wymagania Unify(α, β) = θ jeśli αθ =βθ p q θ Knows(John, x) Knows(John, Jane) {x/jane} Knows(John, x) Knows(y, OJ) {x/oj, y/john} Knows(John, x) Knows(y, M other(y)) Knows(John, x) Knows(x, OJ) Wnioskowanie w logice I rzędu 34

Unifikacja Wniosek można otrzymać bezpośrednio, jeśli znajdziemiy podstawienie θ takie, że King(x) i Greedy(x) pasują do King(John) i Greedy(y) θ = {x/john, y/john} spełnia te wymagania Unify(α, β) = θ jeśli αθ =βθ p q θ Knows(John, x) Knows(John, Jane) {x/jane} Knows(John, x) Knows(y, OJ) {x/oj, y/john} Knows(John, x) Knows(y, M other(y)) {y/john, x/m other(john)} Knows(John, x) Knows(x, OJ) Wnioskowanie w logice I rzędu 35

Unifikacja Wniosek można otrzymać bezpośrednio, jeśli znajdziemiy podstawienie θ takie, że King(x) i Greedy(x) pasują do King(John) i Greedy(y) θ = {x/john, y/john} spełnia te wymagania Unify(α, β) = θ jeśli αθ =βθ p q θ Knows(John, x) Knows(John, Jane) {x/jane} Knows(John, x) Knows(y, OJ) {x/oj, y/john} Knows(John, x) Knows(y, M other(y)) {y/john, x/m other(john)} Knows(John, x) Knows(x, OJ) f ail Wnioskowanie w logice I rzędu 36

Uogolnione Modus Ponens p 1, p 2,..., p n, (p 1 p 2... p n q) qθ gdzie p i θ =p i θ dla wszyst. i p 1 jest King(John) p 1 jest King(x) p 2 jest Greedy(y) p 2 jest Greedy(x) θ jest {x/john,y/john} q jest Evil(x) qθ jest Evil(John) Uogólnione Modus Ponens używa baz wiedzy klauzul definiujących (dokładnie jeden literał pozytywny) Zakłada się, że wszystkie zmienne są kwantyfikowane uniwersalnie Wnioskowanie w logice I rzędu 37

Uogolnione Modus Ponens: poprawnosc Trzeba pokazać, że p 1,..., p n, (p 1... p n q) = qθ przy założeniu, że p i θ =p i θ dla wszystkich i Lemat: Dla dowolnej klauzuli deifniującej p, mamy, że p = pθ przez uniwersalna instancjację 1. (p 1... p n q) = (p 1... p n q)θ = (p 1 θ... p n θ qθ) 2. p 1,..., p n = p 1... p n = p 1 θ... p n θ 3. Z 1 i 2 dostajemy, że qθ wynika na podstawie reguły Modus Ponens w rachunku zdań Wnioskowanie w logice I rzędu 38

Baza wiedzy: przyklad Prawo amerykańskie określa, że sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem. Państwo Nono, które jest wrogie, ma pewne pociski. Wszystkie pociski zostały mu sprzedane przez pułkownika Westa, który jest Amerykaninem. Pokazać, że pułkownik West jest przestępcą. Wnioskowanie w logice I rzędu 39

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: Wnioskowanie w logice I rzędu 40

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: American(x) W eapon(y) Sells(x, y, z) Hostile(z) Criminal(x) Nono... ma pewne pociski Wnioskowanie w logice I rzędu 41

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: American(x) W eapon(y) Sells(x, y, z) Hostile(z) Criminal(x) Nono... ma pewne pociski, tzn. x Owns(Nono, x) Missile(x): Owns(Nono,M 1 ) i Missile(M 1 )... wszystkie pociski zostały mu sprzedane przez pułkownika Westa Wnioskowanie w logice I rzędu 42

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: American(x) W eapon(y) Sells(x, y, z) Hostile(z) Criminal(x) Nono... ma pewne pociski, tzn. x Owns(Nono, x) Missile(x): Owns(Nono,M 1 ) i Missile(M 1 )... wszystkie pociski zostały mu sprzedane przez pułkownika Westa x Missile(x) Owns(Nono,x) Sells(West,x, Nono) Pociski są bronią: Wnioskowanie w logice I rzędu 43

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: American(x) W eapon(y) Sells(x, y, z) Hostile(z) Criminal(x) Nono... ma pewne pociski, tzn. x Owns(Nono, x) Missile(x): Owns(Nono,M 1 ) i Missile(M 1 )... wszystkie pociski zostały mu sprzedane przez pułkownika Westa x Missile(x) Owns(Nono,x) Sells(West,x, Nono) Pociski są bronią: Missile(x) Weapon(x) Nieprzyjaciel Ameryki uznawany jest za wrogi : Wnioskowanie w logice I rzędu 44

Baza wiedzy: przyklad... sprzedaż broni obcemu narodowi przez Amerykanina jest przestępstwem: American(x) W eapon(y) Sells(x, y, z) Hostile(z) Criminal(x) Nono... ma pewne pociski, tzn. x Owns(Nono, x) Missile(x): Owns(Nono,M 1 ) i Missile(M 1 )... wszystkie pociski zostały mu sprzedane przez pułkownika Westa x Missile(x) Owns(Nono,x) Sells(West,x, Nono) Pociski są bronią: Missile(x) Weapon(x) Nieprzyjaciel Ameryki uznawany jest za wrogi : Enemy(x, America) Hostile(x) West, który jest Amerykaninem... American(W est) Państwo Nono, nieprzyjaciel Ameryki... Enemy(N ono, America) Wnioskowanie w logice I rzędu 45

Forward chaining: algorytm function FOL-FC-Ask(KB,α) returns a substitution or false repeat until new is empty new { } for each sentence r in KB do (p 1... p n q) Standardize-Apart(r) for each θ such that (p 1... p n )θ = (p 1... p n)θ for some p 1,...,p n in KB q Subst(θ,q) if q is not a renaming of a sentence already in KB or new then do add q to new φ Unify(q,α) if φ is not fail then return φ add new to KB return false Wnioskowanie w logice I rzędu 46

Forward chaining: przyklad American(West) Missile(M1) Owns(Nono,M1) Enemy(Nono,America) Wnioskowanie w logice I rzędu 47

Forward chaining: przyklad Weapon(M1) Sells(West,M1,Nono) Hostile(Nono) American(West) Missile(M1) Owns(Nono,M1) Enemy(Nono,America) Wnioskowanie w logice I rzędu 48

Forward chaining: przyklad Criminal(West) Weapon(M1) Sells(West,M1,Nono) Hostile(Nono) American(West) Missile(M1) Owns(Nono,M1) Enemy(Nono,America) Wnioskowanie w logice I rzędu 49

Forward chaining: wlasnosci Poprawny i pełny dla baz wiedzy w postaci klauzul definiujących I rzędu (dowód analogiczny do dowodu dla rachunku zdań) Datalog = klauzule definiujące I rzędu + brak funkcji Forward chaining dla Datalogu kończy się zawsze po wielomianowej liczbie iteracji: co najwyżej p n k literałów W ogólności może się zapętlić jeśli α nie jest logiczą konsekwencją To jest nieuniknione: logiczna konsekwencja z klauzulami definiującymi jest półrozstrzygalna Wnioskowanie w logice I rzędu 50

Forward chaining: efektywnosc Prosta obserwacja: nie trzeba dopasowywać reguły w k-tej iteracji jeśli przesłanka reguły nie została dodana w k 1-szej iteracji dopasowywuj każdą regułę, której przesłanki zawierają nowo dodany literał Dopasowywanie może być kosztowne Indeksowanie faktów umożliwia sprawdzenie znanych faktów w czasie O(1), ale nie rozwiązuje problemu dla częsciowo ustalonych zapytań W ogólności dopasowywanie koniunkcji przesłanek do znanych faktów jest NP-trudne Forward chaining jest powszechnie stosowany w dedukcyjnych bazach danych Wnioskowanie w logice I rzędu 51

Forward chaining: NP-trudnosc dopasowywania WA NT SA V Q Victoria T NSW Diff(wa, nt) Diff(wa, sa) Diff(nt, q)diff(nt, sa) Diff(q, nsw) Diff(q, sa) Diff(nsw,v) Diff(nsw, sa) Diff(v, sa) Colorable() Diff(Red, Blue) Diff(Red, Green) Diff(Green, Red) Diff(Green, Blue) Diff(Blue, Red) Diff(Blue, Green) Colorable() wynika wtw CSP ma rozwiązanie Problemy CSP zawierają 3SAT jako szczególny przypadek, stąd dopasowywanie jest NP-trudne Wnioskowanie w logice I rzędu 52

Backward chaining: algorytm function FOL-BC-Ask(KB,goals,θ) returns a set of substitutions inputs: KB, a knowledge base goals, a list of conjuncts forming a query θ, the current substitution, initially the empty substitution { } local variables: ans, a set of substitutions, initially empty if goals is empty then return {θ} q Subst(θ,First(goals)) for each r in KB where Standardize-Apart(r) = (p 1... p n q) and θ Unify(q,q ) succeeds ans FOL-BC-Ask(KB,[p 1,...,p n Rest(goals)],Compose(θ,θ)) ans return ans Wnioskowanie w logice I rzędu 53

Backward chaining: przyklad Criminal(West) Wnioskowanie w logice I rzędu 54

Backward chaining: przyklad Criminal(West) {x/west} Weapon(y) American(x) Sells(x,y,z) Hostile(z) Wnioskowanie w logice I rzędu 55

Backward chaining: przyklad Criminal(West) {x/west} American(West) { } Weapon(y) Sells(x,y,z) Hostile(z) Wnioskowanie w logice I rzędu 56

Backward chaining: przyklad Criminal(West) {x/west} American(West) Weapon(y) Sells(West,M1,z) Sells(x,y,z) Hostile(Nono) Hostile(z) { } Missile(y) Wnioskowanie w logice I rzędu 57

Backward chaining: przyklad Criminal(West) {x/west, y/m1} American(West) Weapon(y) Sells(West,M1,z) Sells(x,y,z) Hostile(Nono) Hostile(z) { } Missile(y) { y/m1} Wnioskowanie w logice I rzędu 58

Backward chaining: przyklad Criminal(West) {x/west, y/m1, z/nono} American(West) Weapon(y) Sells(West,M1,z) Hostile(z) { } { z/nono } Missile(y) { y/m1} Missile(M1) Owns(Nono,M1) Wnioskowanie w logice I rzędu 59

Backward chaining: przyklad Criminal(West) {x/west, y/m1, z/nono} American(West) { } Weapon(y) Sells(West,M1,z) { z/nono } Hostile(Nono) Missile(y) Missile(M1) Owns(Nono,M1) Enemy(Nono,America) { y/m1} { } { } { } Wnioskowanie w logice I rzędu 60

Backward chaining: wlasnosci Przeszukiwanie rekurencyjne w głąb: pamięć jest liniowa od rozmiaru dowodu Niepełny z powodu zapętleń można poprawić sprawdzając każdy nowo wygenerowany cel, czy nie wystąpił już wcześniej Nieefektywny z powodu powtarzających się celów (udowodnionych i porażek) można poprawić zapamiętując wcześniejsze wyniki (wymaga dodatkowej pamięci!) Powszechnie stosowany w programowaniu w logice (Prolog) Wnioskowanie w logice I rzędu 61

Reguła rezolucji dla logiki I rzędu: Rezolucja 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 Unify(l i, m j ) = θ. Na przykład, Rich(x) U nhappy(x) Rich(Ken) U nhappy(ken) z unifikacją θ = {x/ken} Algorytm stosuje rezolucję do CNF(KB α) Problem: Rezolucja binarna jest poprawnym, ale nie jest pełnym systemem wnioskowania dla logiki I rzędu Wnioskowanie w logice I rzędu 62

Faktoryzacja Reguła faktoryzacji dla logiki I rzędu (usuwanie powtarzających się literałów): l 1 l i l j l k (l 1 l i l j 1 l j+1 l k )θ gdzie Unify(l i, l j ) = θ. Na przykład, Likes(x, Chris) Likes(Ken, y) Likes(Ken, Chris) z unifikacją θ = {x/ken, y/chris} Rezolucja + faktoryzacja jest poprawnym i pełnym systemem wnioskowania dla logiki I rzędu (bez ograniczeń) Wnioskowanie w logice I rzędu 63

Rezolucja: przeksztalcanie do CNF Każdy, kto kocha wszystkie zwierzęta, jest kochany przez kogoś: x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 1. Eliminacja równoważności i implikacji x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 2. Przemieszczenie do środka: x, p x p, x, p x p: x [ y ( Animal(y) Loves(x, y))] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] Wnioskowanie w logice I rzędu 64

Rezolucja: przeksztalcanie do CNF 3. Przemianowanie zmiennych tak, żeby każdy kwaantyfikator miał inną x [ y Animal(y) Loves(x, y)] [ z Loves(z, x)] 4. Skolemizacja: bardziej ogólna postać egzystencjalnej instancjacji. Każda zmienna kwantyfikowana egzystencjalnie jest zastępowana przez funkcję Skolema otaczających ją uniwersalnie kwantyf. zmiennych: x [Animal(F(x)) Loves(x, F(x))] Loves(G(x), x) 5. Usunięcie kwantyfikatorów uniwersalnych: [Animal(F(x)) Loves(x, F(x))] Loves(G(x), x) 6. Rozdzielenie względem : [Animal(F(x)) Loves(G(x), x)] [ Loves(x, F(x)) Loves(G(x), x)] Wnioskowanie w logice I rzędu 65

Rezolucja: przyklad LAmerican(x) > LWeapon(y) > LSells(x,y,z) > LHostile(z) > Criminal(x) LCriminal(West) American(West) LAmerican(West) > LWeapon(y) > LSells(West,y,z) > LHostile(z) LMissile(x) > Weapon(x) LWeapon(y) > LSells(West,y,z) > LHostile(z) Missile(M1) LMissile(y) > LSells(West,y,z) > LHostile(z) LMissile(x) > LOwns(Nono,x) > Sells(West,x,Nono) LSells(West,M1,z) > LHostile(z) Missile(M1) LMissile(M1) > LOwns(Nono,M1) > LHostile(Nono) Owns(Nono,M1) LOwns(Nono,M1) > LHostile(Nono) LEnemy(x,America) > Hostile(x) LHostile(Nono) Enemy(Nono,America) Enemy(Nono,America) Wnioskowanie w logice I rzędu 66

Systemy wnioskowania: podsumowanie Język Ontologia Epistemologia Rachunek zdań fakty prawda/fałsz/nieznane Logika I rzędu fakty, obiekty, relacje prawda/fałsz/nieznane Logika temporalna fakty, obiekty, relacje, czas prawda/fałsz/nieznane Prawdopodobieństwo fakty prawdopodobieństwo [0, 1] Logika rozmyta stopień prawdziwości [0, 1] przedziały [0, 1] Wnioskowanie w logice I rzędu 67