Jak logik przewozi kozę przez rzekę?

Podobne dokumenty
Bieg historii. Pierwsza grójecka gra miejska

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 Matematyczna (10)

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

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

Metoda Tablic Semantycznych

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

Drzewa Semantyczne w KRZ

LOGIKA I TEORIA ZBIORÓW

Odwrotna Notacja Polska

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

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

PODSTAWY SZTUCZNEJ INTELIGENCJI

3. Macierze i Układy Równań Liniowych

Semantyka rachunku predykatów

Logika intuicjonistyczna

Projekt 4: Programowanie w logice

Instrukcje dla zawodników

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

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

III rok kognitywistyki UAM,

SZTUCZNA INTELIGENCJA

GRA DLA 2-4 GRACZY W WIEKU LAT AUTORZY GRY: VALERY FOURCADE I JEAN-PHILIPPE MARS

Logika dla socjologów Część 3: Elementy teorii zbiorów i relacji

Odwrócimy macierz o wymiarach 4x4, znajdującą się po lewej stronie kreski:

Rozwiązaniem jest zbiór (, ] (5, )

1 Równania różniczkowe zwyczajne o rozdzielonych zmiennych

Przekształcanie wykresów.

FUNKCJA LINIOWA - WYKRES

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

Wprowadzenie do Sztucznej Inteligencji

Rozwiązywanie problemów metodą przeszukiwania

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

Obliczenia inspirowane Naturą

WYBUCHAJĄCE KROPKI ROZDZIAŁ 1 MASZYNY

Przykładowe rozwiązania

JAO - Wprowadzenie do Gramatyk bezkontekstowych

1 Całki funkcji wymiernych

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

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

7a. Teoria drzew - kodowanie i dekodowanie

Jak wnioskują maszyny?

Andrzej Wiśniewski Logika II. Wykłady 10b i 11. Semantyka relacyjna dla normalnych modalnych rachunków zdań

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

LOGIKA Klasyczny Rachunek Zdań

wagi cyfry pozycje

LOGIKA Dedukcja Naturalna

Dalszy ciąg rachunku zdań

SZKOŁA PODSTAWOWA NR 1 W LUBARTOWIE. Równania

Bazy dedukcyjne. 1. Filozofia nowego sposobu projektowania baz danych. 2. Wady klasycznych systemów bazodanowych

2.1. Duszek w labiryncie

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Wstęp do informatyki- wykład 2

Procenty % % oznacza liczbę 0, 01 czyli / 100

Programowanie w logice Prolog 2

1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25.

Arytmetyka liczb binarnych

Autorka: Katarzyna Rożek Copyright by Literat

Listy, kolejki, stosy

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Rozwiązania zadań z kolokwium w dniu r. Zarządzanie Inżynierskie, WDAM, grupy I i II

Paradygmaty programowania

Logika. Zadanie 4. Sprawdź, czy poniższe funkcje zdaniowe są tautologiami: i) (p q) = ( p q), ii) (p = q) ( p q). Rozwiązanie.

Przykład 2 układ o rozwiązaniu z parametrami. Rozwiążemy następujący układ równań:

Internet Semantyczny i Logika II

Podstawy Sztucznej Inteligencji (PSZT)

Języki programowania deklaratywnego

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki. Wykład 14. Wprowadzenie do logiki intuicjonistycznej

Składnia rachunku predykatów pierwszego rzędu

Sweterek z kimonowymi. rękawami

Programowanie w Logice Struktury danych (Lista 2)

Modele Herbranda. Logika obliczeniowa. Joanna Józefowska. Szukamy modelu. Przykład Problemy. Model Herbranda

Elementy logiki matematycznej

Programowanie deklaratywne

Definicja i własności wartości bezwzględnej.

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

Poprawność semantyczna

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Laboratorium przedmiotu Paradygmaty Programowania

Wykłady z matematyki - Granica funkcji

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Metody Kompilacji Wykład 3

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

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka dyskretna. Andrzej Łachwa, UJ, A/10

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

OLIMPIADA MATEMATYCZNA

DEFINICJA. Definicja 1 Niech A i B będą zbiorami. Relacja R pomiędzy A i B jest podzbiorem iloczynu kartezjańskiego tych zbiorów, R A B.

Programowanie w Baltie klasa VII

Paradygmaty dowodzenia

Znajdowanie wyjścia z labiryntu

Klasyczny rachunek predykatów

iks plus trzy dzielone na dwa iks razy iks plus pięć

Transkrypt:

Jak logik przewozi kozę przez rzekę? 1. Koza i kapusta 1.1. Problem Na lewym brzegu rzeki, na przystani promowej, znajdują się: chłop, koza i kapusta. Prom jest samoobsługowy (może obsługiwać go tylko chłop) i zbyt mały by pomieścić na raz chłopa, kozę i kapustę. Zarówno kozę jak i kapustę można samodzielnie bezpiecznie zostawić na jednym brzegu, natomiast nie można zostawić ich razem (Koza wszystko zjada, co jej odpowiada). Jak przetransportować całą trójkę na drugi brzeg? Rozwiązanie na następnej stronie 1

1.2. Rozwiązanie Oczywiście rozwiązanie przychodzi do głowy samo: chłop przewozi kozę, zostawia ją na prawym brzegu, wraca po kapustę, przewozi kapustę i cała trójka jest na prawym brzegu. Podejście formalne z wykorzystaniem metody rezolucji: niech pewien trójargumentowy predykat Stan opisuje stan świata w łamigłówce. Jego argumenty odpowiadają, kolejno, brzegowi na którym znajduje się chłop, koza oraz kapusta. Dodatkowo użyjemy dwóch stałych: l oraz p symbolizujących, odpowiednio, lewy oraz prawy brzeg. W tym podejściu stan początkowy można zapisać w następujący sposób: Stan(l, l, l). Żeby powiązać semantycznie ze sobą stałe wprowadzimy dodatkowo dwuargumentowy predykat Przeciwny, który pozwoli łatwo określać jaki jest brzeg przeciwny do wskazanego. Będziemy od niego wymagać, by wyrażenia Przeciwny(l, p) oraz Przeciwny(p, l) były logicznie spełnione. Reprezentacja stanu początkowego wymaga następujące wyrażenie w rachunku predykatów było spełnialne: Stan(l, l, l) Przeciwny(l, p) Przeciwny(p, l) Chcemy osiągnąć stan opisany predykatem Stan(p, p, p). Skoro rezolucja służy do dowodzenia niespełnialności, dodamy ten predykat w postaci zanegowanej i będziemy próbowali dowieść niespełnialności wyrażenia: Stan(l, l, l) Przeciwny(l, p) Przeciwny(p, l) Stan(p, p, p) Będziemy dążyli do tego, żeby otrzymac klauzulę pustą wykorzystując dodany przed chwilą zanegowany stan. Brakuje oczywiście jeszcze reguł gry, które zostaną wyrażone w postaci implikacji: Chłop może zabrać kozę i przepłynąć na drugi brzeg, pod warunkiem, że on i koza znajdują się po tej samej stronie: Analogicznie z kapustą: Stan(x, x, y) Przeciwny(x, x ) = Stan(x, x, y) Stan(x, y, x) Przeciwny(x, x ) = Stan(x, y, x ) Chłop może sam przepłynąć z jednego brzegu na drugi, pod warunkiem, że koza i kapusta są na różnych brzegach: Stan(x, y, z) Przeciwny(y, z) Przeciwny(x, x ) = Stan(x, y, z) Ostatecznie, otrzymujemy następujące wyrażenie w postaci klauzulowej (w liniach alternatywa, między liniami koniunkcja): Stan(l, l, l) (1) Przeciwny(l, p) (2) Przeciwny(p, l) (3) Stan(p, p, p) (4) Stan(x, x, y) Przeciwny(x, x ) Stan(x, x, y) (5) Stan(x, y, x) Przeciwny(x, x ) Stan(x, y, x ) (6) Stan(x, y, z) Przeciwny(y, z) Przeciwny(x, x ) Stan(x, y, z) (7) Skoro chcemy poznać sposób przewiezenia kozy i kapusty przez rzekę, a nie tylko binarną odpowiedź da się/nie da się, będziemy rezolucję stosowali w sposób uporządkowany: będziemy 2

zaczynali od klauzuli składającej się tylko z predykatu Stan i tak długo obliczali kolejne rezolwenty, aż znowu otrzymamy klauzulę zawierającą tylko predykat Stan. Docelowo chemy dojść do sytuacji, w której uda się uzyskać klauzulę kolidującą z klauzulą reprezentującą zanegowany stan docelowy (klauzula 4). Po lewej stronie, wyróżnione, znajdują się numery kolidowanych ze sobą klauzul (brak jednego numeru oznacza, że kolidowana jest poprzednia klauzula z podaną), potem ewentualne podstawienie uzgadniające, a poniżej rezolwenta. 1+5 {x l, y l} +7 {x p, y p, z l} +3 +6 {x l, y p} +4 Przeciwny(l, x ) Stan(x, x, l) Stan(p, p, l) Przeciwny(p, l) Przeciwny(p, x ) Stan(x, p, l) Przeciwny(p, x ) Stan(x, p, l) Stan(l, p, l) Przeciwny(l, x ) Stan(x, p, x ) Stan(p, p, p) Odczytujemy kolejne stany, przez które trzeba przechodzić, żeby wykonać zadanie: 1. Cała trójka na lewym brzegu: Stan(l, l, l) 2. Chłop i koza na prawym brzegu, kapusta na lewym: Stan(p, p, l) 3. Chłop i kapusta na lewym brzegu, koza na prawym: Stan(l, p, l) 4. Cała trójka na prawym brzegu: Stan(p, p, p) Prześledźmy inną kolejność (bardziej bez sensu, bo chłop najpierw będzie próbował odpłynąć łódką zostawiając kozę i kapustę na brzegu): 1+7 {x l, y l, z l} Przeciwny(l, l) Przeciwny(l, x ) Stan(x, l, l) Widząc atom Przeciwny(l, l) łatwo się już zorientowac, że za chwilę wyniknie z tego coś niedobrego. Przeciwny(l, l) Stan(p, l, l) I tak dalej, i tym podobne: żeby pozbyć się atomu Przeciwny(l, l) musielibyśmy móc skonstruować w jakiś sposób atom Przeciwny(l, l), jednak predykat Przeciwny w postaci niezanegowanej występuje tylko w klauzulach ustalonych 2 oraz 3, więc nie da rady dokonać takiej konstrukcji! Ślepa ścieżka przeszukiwania w tym sensie, że używając tych dwóch rezolwent nie będziemy w stanie nigdy dojść do klauzuli pustej. Dlaczego tak się stało? Ano dlatego, że koza zeżarła kapustę. 3

2. Koza, kapusta i wilk 2.1. Problem Sytuacja jak w zadaniu podobnym, ale do kompletu jest udomowiony wilk, z którego za pare pokoleń zrobi się całkiem miły owczarek. Jednak, aktualnie, ten wilk zostawiony z kozą bez ludzkiej opieki zrobi sobie z niej przekąskę. Całościowo: na lewym brzegu rzeki, na przystani promowej, znajdują się: chłop, koza, kapusta i wilk. Prom jest samoobsługowy (może obsługiwać go tylko chłop) i zbyt mały by pomieścić na raz chłopa i więcej niż jednego pasażera (wilka, kozę lub kapustę). Jeżeli chłopa nie ma na tym samym brzegu co wilk i koza, to wilk rozprawi się z kozą, a jeżeli w takiej sytuacji znajdą się koza i kapusta, to koza zje kapustę. Jak przetransportować całą czwórkę na prawy brzeg? Rozwiązanie na następnej stronie 4

2.2. Rozwiązanie Predykat Stan będzie tym razem czteroargumentowy: chłop, wilk, koza, kapusta. Stan początkowy reprezentowany jest oczywiście przez Stan(l, l, l, l), stan docelowy przez Stan(p, p, p, p). Predykat Przeciwny przyjmujemy bez zmian z poprzedniego zadania. Reguły rządzące światem: Chłop może zabrać wilka i przepłynąć na drugi brzeg, pod warunkiem, że on i koza znajdują się po tej samej stronie, a koza nie zostanie sama z kapustą: Analogicznie z kozą: Stan(x, x, y, z) Przeciwny(y, z) Przeciwny(x, x ) = Stan(x, x, y, z)... i kapustą, uważając na kozę i wilka: Stan(x, y, x, z) Przeciwny(x, x ) = Stan(x, y, x, z) Stan(x, y, z, x) Przeciwny(y, z) Przeciwny(x, x ) = Stan(x, y, z, x ) Chłop może sam przepłynąć z jednego brzegu na drugi, pod warunkiem, że koza i kapusta oraz wilk i koza są na różnych brzegach: Stan(x, y, z, w) Przeciwny(y, z) Przeciwny(z, w) Przeciwny(x, x ) = Stan(x, y, z, w) Postac klauzulowa problemu: Stan(l, l, l, l) (1) Przeciwny(l, p) (2) Przeciwny(p, l) (3) Stan(p, p, p, p) (4) Stan(x, x, y, z) Przeciwny(y, z) Przeciwny(x, x ) Stan(x, x, y, z) (5) Stan(x, y, x, z) Przeciwny(x, x ) Stan(x, y, x, z) (6) Stan(x, y, z, x) Przeciwny(y, z) Przeciwny(x, x ) Stan(x, y, z, x ) (7) Stan(x, y, z, w) Przeciwny(y, z) Przeciwny(z, w) Przeciwny(x, x ) Stan(x, y, z, w) (8) Rozwiązanie: 1+6 {x l, y p, z l} Przeciwny(l, x ) Stan(x, l, x, l) Stan(p, l, p, l) +8 {x p, y l, z p, w l} Przeciwny(l, p) Przeciwny(p, l) Przeciwny(p, x ) Stan(x, l, p, l) +2 Przeciwny(p, l) Przeciwny(p, x ) Stan(x, l, p, l) Stan(l, l, p, l) 5

+5 {x l, y p, z l} Przeciwny(p, l) Przeciwny(l, x ) Stan(x, x, p, l) +3 +6 {x p, y p, z l} +7 {x l, y p, z l} Przeciwny(l, x ) Stan(x, x, p, l) Stan(p, p, p, l) Przeciwny(p, x ) Stan(x, p, x, l) Stan(l, p, l, l) +3 +2 {x p} +8 {x p, y p, z l, y p} +2 Przeciwny(p, l) Przeciwny(l, x ) Stan(x, p, l, x ) Przeciwny(l, x ) Stan(x, p, l, x ) Stan(p, p, l, p) Przeciwny(p, l) Przeciwny(l, p) Przeciwny(p, x ) Stan(x, p, l, p) +6 {x l, y p, z p} +4 Przeciwny(p, l) Przeciwny(p, x ) Stan(x, p, l, p) Stan(l, p, l, p) Przeciwny(l, x ) Stan(x, p, x, p) Stan(p, p, p, p) Odczytujemy rozwiązanie: 1. Cała czwórka na lewym brzegu: Stan(l, l, l, l) 2. Przewieziono kozę: Stan(p, l, p, l) 3. Chłop wrócił: Stan(l, l, p, l) 4. Przewieziono wilka: Stan(p, p, p, l) 5. Odwieziono kozę: Stan(l, p, l, l) 6. Przewieziono kapustę: Stan(p, p, l, p) 7. Chłop wrócił: Stan(l, p, l, p) 8. Przewieziono kozę, cała czwórka na prawym brzegu: Stan(p, p, p, p) 6