Modelowanie świata dynamicznego. 25 maja 2009

Podobne dokumenty
Wstęp do Programowania potok funkcyjny

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

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

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

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

Metoda Tablic Semantycznych

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

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

Adam Meissner.

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

Paradygmaty dowodzenia

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

FUNKCJE. (odwzorowania) Funkcje 1

Podstawy Sztucznej Inteligencji (PSZT)

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

Algebrę L = (L, Neg, Alt, Kon, Imp) nazywamy algebrą języka logiki zdań. Jest to algebra o typie

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

Dalszy ciąg rachunku zdań

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

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

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

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

Składnia rachunku predykatów pierwszego rzędu

Paradygmaty programowania

SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:

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

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

Języki formalne i automaty Ćwiczenia 1

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

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Internet Semantyczny i Logika I

Internet Semantyczny i Logika II

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Semantyka rachunku predykatów

Programowanie w logice

Rachunek zdań i predykatów

LOGIKA Klasyczny Rachunek Zdań

Predykat. Matematyka Dyskretna, Podstawy Logiki i Teorii Mnogości Barbara Głut

Programowanie deklaratywne i logika obliczeniowa

LOGIKA I TEORIA ZBIORÓW

Schematy Piramid Logicznych

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

Programowanie deklaratywne

Internet Semantyczny. Logika opisowa

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Reguły gry zaliczenie przedmiotu wymaga zdania dwóch testów, z logiki (za ok. 5 tygodni) i z filozofii (w sesji); warunkiem koniecznym podejścia do

Projekt 4: Programowanie w logice

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

Dowody założeniowe w KRZ

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

Logika pragmatyczna dla inżynierów

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

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

Struktury formalne, czyli elementy Teorii Modeli

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

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

Automatyczne planowanie oparte na sprawdzaniu spełnialności

Programowanie dynamiczne

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Programowanie deklaratywne

Elementy logiki i teorii mnogości

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

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

PODSTAWY SZTUCZNEJ INTELIGENCJI

Logika intuicjonistyczna

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

Elementy logiki matematycznej

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

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

III rok kognitywistyki UAM,

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

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

O pewnych związkach teorii modeli z teorią reprezentacji

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

Logika Matematyczna (1)

Logika Matematyczna (10)

Programowanie logiczne a negacja

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Techniki informacyjne dla wnioskowania oraz generowania, reprezentacji i zarządzania wiedzą

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

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Programowanie deklaratywne

Jak logik przewozi kozę przez rzekę?

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Definicja: alfabetem. słowem długością słowa

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

6. Zagadnienie parkowania ciężarówki.

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

Dedukcyjne bazy danych i rekursja

Logika Matematyczna (1)

Macierze. Rozdział Działania na macierzach

Programowanie celowe #1

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

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

Informacja o przestrzeniach Sobolewa

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

Temat: Algorytmy zachłanne

Transkrypt:

Modelowanie świata dynamicznego 25 maja 2009

Problem 1. Formalizacja świata zmieniającego się dynamicznie pod wpływem wykonywanych działań (akcji). 2. Wnioskowanie w takim świecie. Realizacja procesu wnioskowania o akcjach wymaga: 1. zdefiniowania języka, który umożliwiałby formalny opis zarówno dopuszczalnych działań, jak i stanów systemu. 2. skonstruowania mechanizmu wnioskowania o efektach działań. 3. zapewnienia pełności i poprawności skonstruowanego mechanizmu.

Problemy występujące w tej dziedzinie zostaną omówione w kontekście następujących formalizmów: 1. Rachunek sytuacyjny (McCarthy 1963). 2. STRIPS (STanford Research Institute Problem Solver, 1970). 3. SDPL (Simple Dijkstra s Programming Language, W. Łukaszewicz, E. Madalińska 1995).

Ogólne podejście do problemu reprezentacji akcji Opis działania: {warunek wstępny 1 } Nazwa {efekt 1 }. {warunek wstępny n } Nazwa {efekt n }

Problem tła (ang. Frame Problem) Efekty akcji opisują jedynie te elementy świata, których dotyczy wykonywana akcja. Nowy stan świata = efekty akcji + reszta ze stanu początkowego, która nie została zmieniona przez akcję. Tę resztę nazywamy tłem lub inercją

Problem tła (ang. Frame Problem) Efekty akcji opisują jedynie te elementy świata, których dotyczy wykonywana akcja. Nowy stan świata = efekty akcji + reszta ze stanu początkowego, która nie została zmieniona przez akcję. Tę resztę nazywamy tłem lub inercją Problem: Jak reprezentować tło Jak to zrobić efektywnie

Rachunek sytuacyjny Reprezentacja stanów i akcji - logika I rzędu Wnioskowanie - rezolucja Podejście: każda wykonana akcja generuje nową sytuację Stąd konieczność zrelatywizowania zdań do konkretnej sytuacji - dodatkowy argument relacji, np. On(book, table, s) oznacza: książka jest na stole w sytuacji s.

Problem Po wykonaniu akcji a w sytuacji s jedynie efekty akcji odnoszą się do nowej sytuacji s. Aby reprezentować tło w nowej sytuacji s potrzebne są odpowiednie aksjomaty (tzw.aksjomaty tła), które przeniosą niezmienione własności do nowej sytuacji, np. a, x, s Holding(x, s) (a Release) Holding(x, Result(a, s)). a, x, s Holding(x, s) [a Grab (Present(x, s) Portable(x))] Holding(x, Result(a, s)). Duża liczba aksjomatów tła: liczba akcji * liczba predykatów

Pomysł: Jedna reguła (niemonotoniczna), która mówi, że wszystko o czym nie wiemy, że się zmieniło, pozostało bez zmian. Istnieje wiele różnych notacji w Rachunku Sytuacyjnym. Najwygodniejsza jest konwencja zaproponowana przez R. Kowalskiego (1969).

Reprezentacja w stylu R. Kowalskiego Przyjmujemy konwencję, w której stany oraz zdania są reprezentowane jako termy. Będziemy używać specjalnych symboli predykatowych oraz funkcyjnych. Spełnione(x, y) oznacza, że zdanie x jest prawdziwe w sytuacji y Możliwe(x) oznacza, że sytuacja x jest możliwa do osiągnięcia wynik(a, s) oznacza sytuację uzyskaną w efekcie zastosowania akcji a do stanu s

Przykład 1 Asercje nie związane ze stanem 1. Ruchome(A) 2. Ruchome(B) 3. Ruchome(C)

Warunki wykonalności 4. Możliwe(wynik(przenies(x,y,z),s)) Możliwe(s), Ruchome(x), Różne(x,z), Spełnione(wolne(x),s), Spełnione(wolne(z),s), Spełnione(na(x,y),s)

Warunki wykonalności 4. Możliwe(wynik(przenies(x,y,z),s)) Możliwe(s), Ruchome(x), Różne(x,z), Spełnione(wolne(x),s), Spełnione(wolne(z),s), Spełnione(na(x,y),s) Efekty akcji 6. Spełnione(na(x,z),wynik(przenies(x,y,z),s)) 7. Spełnione(wolne(y),wynik(przenies(x,y,z),s))

Warunki wykonalności 4. Możliwe(wynik(przenies(x,y,z),s)) Możliwe(s), Ruchome(x), Różne(x,z), Spełnione(wolne(x),s), Spełnione(wolne(z),s), Spełnione(na(x,y),s) Efekty akcji 6. Spełnione(na(x,z),wynik(przenies(x,y,z),s)) 7. Spełnione(wolne(y),wynik(przenies(x,y,z),s)) Aksjomaty tła Chcemy wyrazić jako stwierdzenie, że wszystko co było prawdziwe w poprzednim stanie pozostaje prawdziwe w nowym stanie, z wyjątkiem pewnych zdań (wymienionych konkretnie), o których wiemy, że już nie zachodzą.

Warunki wykonalności 4. Możliwe(wynik(przenies(x,y,z),s)) Możliwe(s), Ruchome(x), Różne(x,z), Spełnione(wolne(x),s), Spełnione(wolne(z),s), Spełnione(na(x,y),s) Efekty akcji 6. Spełnione(na(x,z),wynik(przenies(x,y,z),s)) 7. Spełnione(wolne(y),wynik(przenies(x,y,z),s)) Aksjomaty tła Chcemy wyrazić jako stwierdzenie, że wszystko co było prawdziwe w poprzednim stanie pozostaje prawdziwe w nowym stanie, z wyjątkiem pewnych zdań (wymienionych konkretnie), o których wiemy, że już nie zachodzą. 8. Spełnione(u,wynik(przenies(x,y,z),s)) Spełnione(u,s), Różne(u,na(x,y)), Różne(u,wolne(z))

Stan początkowy 0 9. Możliwe(0) 10. Spełnione(na(A,B),0) 11. Spełnione(na(B,p),0) 12. Spełnione(na(C,r),0) 13. Spełnione(wolne(A),0) 14. Spełnione(wolne(q),0) 15. Spełnione(wolne(C),))

Scenariusz ciąg wykonanych działań 15. Spełnione(l,wynik(przenies(A,q,B),wynik(przenies(B,p,C), wynik(przenies(a,b,q),0)))

Scenariusz ciąg wykonanych działań 15. Spełnione(l,wynik(przenies(A,q,B),wynik(przenies(B,p,C), wynik(przenies(a,b,q),0)))

Scenariusz ciąg wykonanych działań 15. Spełnione(l,wynik(przenies(A,q,B),wynik(przenies(B,p,C), wynik(przenies(a,b,q),0)))

Pozostało zdefiniować predykat Różne. Możemy to zrobić pisząc klauzule postaci: Różne(s,t) dla każdej pary termów s i t, które nie pasują do siebie. Rozwiązanie takie jest jednak niepraktyczne. Zastosowane podejście sugeruje rozwiązanie niemonotoniczne, czyli użycie logiki domniemań predykat Różne definiujemy jako domniemanie: : (x = y) Różne(x, y)

Pozostało zdefiniować predykat Różne. Możemy to zrobić pisząc klauzule postaci: Różne(s,t) dla każdej pary termów s i t, które nie pasują do siebie. Rozwiązanie takie jest jednak niepraktyczne. Zastosowane podejście sugeruje rozwiązanie niemonotoniczne, czyli użycie logiki domniemań predykat Różne definiujemy jako domniemanie: : (x = y) Różne(x, y) lub negacji przez zawód dodajemy klauzule: 16. Różne(x,y) (x=y) 17. x=x

Problemy w zastosowaniu logik niemonotonicznych do reprezentacji tła Przykład 2 Rozważmy teorię składającą się z następujących aksjomatów: 1. Spełnione(ż,S0) Spełnione(n,S0) 2. s. Spełnione(n,s) Spełnione(m,wynik(shoot,s)) 3. s. Spełnione(n,s) Ab(shoot,ż,s) 4. a, f, s. Spełnione(f,s) Ab(a,f,s) Spełnione(f,wynik(a,s)) : Ab(a,f,s) 5. Ab(a,f,s)

ż - oznacza indyk jest żywy n - oznacza strzelba jest naładowana m - oznacza indyk jest martwy Interesuje nas czy indyk żyje po wykonaniu sekwencji działań: wait;shoot gdzie wait nic nie robi, a shoot powoduje zabicie indyka, jeśli strzelba była naładowana w sytuacji początkowej. Otrzymujemy następujący ciąg sytuacji: S0; S1=wynik(wait,S0); S2=wynik(shoot,S1) Po wygenerowaniu instancji domniemania dla sytuacji S0 i S1 oraz wait i shoot dostajemy

1. Spełnione(ż,S0) Spełnione(n,S0) 2. s. Spełnione(n,s) Spełnione(m,wynik(shoot,s)) 3. s. Spełnione(n,s) Ab(shoot,ż,s) 4. a, f, s. Spełnione(f,s) Ab(a,f,s) Spełnione(f,wynik(a,s)) 5a : Ab(wait,ż,S0) Ab(wait,ż,S0) 5b : Ab(wait,n,S0) Ab(wait,n,S0) 5c : Ab(shoot,ż,S1) Ab(shoot,ż,S1) Stosując 5a i 5b dostajemy Ab(wait,ż,S0) oraz Ab(wait,n,S0). Z 4 zastosowanego dwukrotnie dostajemy Spełnione(ż,S1) i Spełnione(n,S1). Stosując 3 wyprowadzamy Ab(shoot,ż,S1), a z 2 wynika Spełnione(m,S2). Jest to zgodne z oczekiwaniem.

1. Spełnione(ż,S0) Spełnione(n,S0) 2. s. Spełnione(n,s) Spełnione(m,wynik(shoot,s)) 3. s. Spełnione(n,s) Ab(shoot,ż,s) 4. a, f, s. Spełnione(f,s) Ab(a,f,s) Spełnione(f,wynik(a,s)) 5a : Ab(wait,ż,S0) Ab(wait,ż,S0) 5b : Ab(wait,n,S0) Ab(wait,n,S0) 5c : Ab(shoot,ż,S1) Ab(shoot,ż,S1) Ale... jeśli zaczniemy od domniemania 5a i 5c, dostajemy Ab(wait,ż,S0) co pozwala wyprowadzić, jak poprzednio, Spełnione(ż,S1) oraz Ab(shoot,ż,S1),

1. Spełnione(ż,S0) Spełnione(n,S0) 2. s. Spełnione(n,s) Spełnione(m,wynik(shoot,s)) 3. s. Spełnione(n,s) Ab(shoot,ż,s) 4. a, f, s. Spełnione(f,s) Ab(a,f,s) Spełnione(f,wynik(a,s)) 5a : Ab(wait,ż,S0) Ab(wait,ż,S0) 5b : Ab(wait,n,S0) Ab(wait,n,S0) 5c : Ab(shoot,ż,S1) Ab(shoot,ż,S1) z czego na mocy 3 wynika Spełnione(n,S1). Formuła ta blokuje wyprowadzenie Ab(wait,n,S0). Z kolei z Ab(shoot,ż,S1) i Spełnione(ż,S1) na mocy 4 dostajemy Spełnione(ż,S2).

1. Spełnione(ż,S0) Spełnione(n,S0) 2. s. Spełnione(n,s) Spełnione(m,wynik(shoot,s)) 3. s. Spełnione(n,s) Ab(shoot,ż,s) 4. a, f, s. Spełnione(f,s) Ab(a,f,s) Spełnione(f,wynik(a,s)) 5a : Ab(wait,ż,S0) Ab(wait,ż,S0) 5b : Ab(wait,n,S0) Ab(wait,n,S0) 5c : Ab(shoot,ż,S1) Ab(shoot,ż,S1) Tak więc, teoria ta ma 2 rozszerzenia. W jednym zachodzi Spełnione(m,S2), a w drugim Spełnione(ż,S2). Nie możemy więc stwierdzić jednoznacznie, że indyk nie żyje w sytuacji S2.

Rozwiązanie: minimalizacja chronologiczna poitwise circumscription priorytety logika domniemań z priorytetami

Reprezentacja stanów, celu i akcji w systemach typu STRIPS Stany reprezentowane są jako koniunkcja literałów dodatnich nie zawierających zmiennych: Opis akcji Nazwa akcji. Warunek wstępny (precondition) koniunkcja literałów dodatnich, które muszą zachodzić, aby akcja była wykonywalna. Efekty akcji Koniunkcja literałów opisujących zmiany stanu w wyniku wykonania akcji.

Formalnie przykład: Op(ACTION : Go(there), PRECOND : At(here) Path(here, there), EFFECT : At(there) At(here)). Uwaga: Powyższy opis definiuje całą klasę akcji. Stany są reprezentowane jako zbiory literałów. Akcja jest stosowalna w stanie s jeśli wszystkie warunki wstępne tej akcji są zawarte w s. W wyniku wykonania akcji A w stanie s otrzymujemy stan, który: (1) Zawiera wszystkie literały występujące w koniunkcji efektów akcji. (2) Zawiera wszystkie literały występujące w s, za wyjątkiem tych, których negacje występują w koniunkcji efektów akcji.

Jeśli stan s = {At(Home), Path(Home, Supermarket),...} to akcja Go(Supermarket) jest stosowalna i w wyniku wykonania tej akcji otrzymamy: s = s {At(Supermarket)} {At(Home)} = {At(Supermarket), Path(Home, Supermarket),...} Reprezentacja tła w takim podejściu nie wymaga żadnych aksjomatów; realizowana jest poprzez operacje na zbiorach.

SDPL Język opisu stanów - logika zdań

SDPL Język opisu stanów - logika zdań Język opisu akcji - prosty język programowania Dijkstry: zmienne typu logicznego (Boolean); Lista instrukcji: skip, przypisanie, sekwencyjne złożenie, alternatywa (niedeterministyczna) - if B 1 S 1 [] B 2 S 2 [] [] B n S n fi

SDPL Język opisu stanów - logika zdań Język opisu akcji - prosty język programowania Dijkstry: zmienne typu logicznego (Boolean); Lista instrukcji: skip, przypisanie, sekwencyjne złożenie, alternatywa (niedeterministyczna) - if B 1 S 1 [] B 2 S 2 [] [] B n S n fi Semantyka akcji najsłabszy warunek wstępny wlp i najmocniejszy warunek końcowy - sp, np. wlp(x := e, α) = α[x e]. sp(x := e, α) = y.((x e[x y]) α[x y]), gdzie y jest nową zmienną.

SDPL Język opisu stanów - logika zdań Język opisu akcji - prosty język programowania Dijkstry: zmienne typu logicznego (Boolean); Lista instrukcji: skip, przypisanie, sekwencyjne złożenie, alternatywa (niedeterministyczna) - if B 1 S 1 [] B 2 S 2 [] [] B n S n fi Semantyka akcji najsłabszy warunek wstępny wlp i najmocniejszy warunek końcowy - sp, np. wlp(x := e, α) = α[x e]. sp(x := e, α) = y.((x e[x y]) α[x y]), gdzie y jest nową zmienną. Wnioskowanie - klasyczna logika

Przykład 3 1. Fluenty: a (oznacza, że indyk żyje); l (strzelba jest naładowana) 2. Działania: load: l := T ; wait: skip; spin: if T l := T [] T l := F fi; shoot: if l a := F ; l := F [] l skip fi;

Semantyka działań wlp(load, α) = α[l T ]; sp(load, α) = l (α[l T ] α[l F ]); wlp(wait, α) = sp(wait, α) = α; wlp(spin, α) = α[l T ] α[l F ]; sp(spin, α) = α[l T ] α[l F ]; wlp(shoot, α) = (l α[a F, l F ]) ( l α); sp(shoot, α) = ( a l α[a T, l T ]) ( a l α[a F, l T ]) ( l α);

Semantyka działań wlp(load, α) = α[l T ]; sp(load, α) = l (α[l T ] α[l F ]); wlp(wait, α) = sp(wait, α) = α; wlp(spin, α) = α[l T ] α[l F ]; sp(spin, α) = α[l T ] α[l F ]; wlp(shoot, α) = (l α[a F, l F ]) ( l α); sp(shoot, α) = ( a l α[a T, l T ]) ( a l α[a F, l T ]) ( l α); Rozważmy wykonanie akcji shoot w stanie początkowym s a l Stan końcowy s sp(shoot, a l) a l

Repezentacja tła nie wymaga żadnych dodatkowych działań ani aksjomatów; realizowana jest poprzez język programowania.

Akcje z nietypowymi efektami (ang. Action with abnormal effects) Zakładaliśmy dotychczas, że akcje wykonują się z powodzeniem. Teraz rozważymy także przypadki, gdy wykonanie akcji się nie powiedzie. Nazwiemy to wykonaniem nietypowym. Zakładamy, że 1. akcje mają dwa rodzaje wykonań: pierwsze typowe, które zdarza się na ogół oraz drugie nietypowe, które zdarza się wyjątkowo. 2. Oba wykonania są wyspecyfikowane, tzn. są dwie specyfikacje: S 1 opisująca typowe wykonanie działania i S 2 opisująca nietypowe wykonanie działania. 3. Preferowane są wykonania typowe. Modelowanie tego typu działań wymaga mechanizmów niemonotonicznych.

Reprezentacja działań o nietypowych efektach w SDPL Wprowadzamy zbiór pomocniczych zmiennych logicznych Ab = {ab 1, ab 2,...}, które będą reprezentować nietypowe wykonanie działania. Zmienne te zostaną przyporządkowane poszczególnym wystąpieniom działań w scenariuszu, a ich wartości będą ustalane drogą wnioskowania na podstawie obserwacji z wykorzystaniem zasady preferowania wykonań typowych.

Przykłady Fluenty a i l znaczenie jak dotychczas, s oznacza, że samochód został skradziony. Działania load, shoot, leave - zostawienie samochodu na parkingu na godzinę. Typowe wykonanie brak efektu, nietypowe samochód zostaje skradziony. S(load) : if ab l := T [] ab skip fi; S(shoot) : if ab if l a := F ; l := F [] l skip fi [] ab l := F fi; S(leave) : if ab skip [] ab s := T fi.

Semantyka wlp(s(load), α) = ( ab α[l T ]) (ab α); sp(s(load), α) = ab l (α[l T ] α[l F ]) ab α; wlp(s(shoot), α) = ( ab (l α[a F, l F ]) ( l α)) (ab α[l F ]); sp(s(shoot), α) = ab (( a l α[a T, l T ]) ( a l α[a F, l T ]) ( l α)) ab l (α[l T ] α[l F ]); wlp(s(leave), α) = ( ab α) (ab α[s T ]); sp(s(leave), α) = ab α ab (α[s T ] α[s F ]).

Przykład 4 Rozważmy scenariusz YSS: a l load; shoot a. Interesuje nas, czy strzelba była naładowana w stanie końcowym. Obliczamy D 2 (YSS) = SP2 YSS = a sp(s 2 (shoot), sp(s 1 (load), a l)) ab 2 ab 1 a l ab 2 l a.

Dla ustalenia wartości zmiennych ab i możemy zastosować logikę domniemań lub logikę ograniczania. Podamy rozwiązanie w logice domniemań. Teoria domniemań T(YSS) = {D 2 (YSS)}, {: ab 1 / ab 1, : ab 2 / ab 2 }. Teoria ta ma dwa rozszerzenia, E 1 = Th({D 2 (YSS), ab 1 }) i E 2 = Th({D 2 (YSS), ab 2 }). Ponieważ l należy zarówno do E 1 jak i do E 2, wnioskujemy, że strzelba była nienaładowana w stanie końcowym.

Przykład 5 (Stolen Car Scenario) Scenariusz przedstawia się następująco: samochód został pozostawiony na parkingu na dwie godziny (tzn. dwukrotne wykonanie akcji leave), a następnie okazało się, że został ukradziony. SCS = s leave; leave s Oczekiwaną konkluzją jest, że nie możemy wywnioskować czy samochód został skradziony w czasie pierwszej czy drugiej godziny.

Obliczamy najpierw D 1 (SCS) = SP (SCS) 1 WLP (SCS) 1 = sp(s 1 (leave), s) wlp(s 2 (leave), s) Teoria domniemań ( ab 1 s ab 2 ) ( ab 2 s ab 1 ) (ab 1 ab 2 ). T 1 = {D 1 (SCS)}, {: ab 1 / ab 1, : ab 2 / ab 2 } ma dwa rozszerzenia E 1 = Th({D 1 (C(SCS)), ab 1 }) i E 2 = Th({D 1 (C(SCS)), ab 2 }). Ponieważ s E 1 a s E 2, nie możemy wywnioskować, czy samochód został ukradziony w czasie pierwszej godziny parkowania.

Problem kwalifikacji (ang. Qualification Problem) Problem dotyczy warunków wykonalności akcji. Nie zawsze możliwe jest wyspecyfikowanie wszystkich warunków wstępnych akcji.

Problem kwalifikacji (ang. Qualification Problem) Problem dotyczy warunków wykonalności akcji. Nie zawsze możliwe jest wyspecyfikowanie wszystkich warunków wstępnych akcji. Czasami wręcz stanowią one przeszkodę, ponieważ musiałyby być sprawdzone. Nie zawsze mamy kompletną informację o stanie początkowym.

Problem kwalifikacji (ang. Qualification Problem) Problem dotyczy warunków wykonalności akcji. Nie zawsze możliwe jest wyspecyfikowanie wszystkich warunków wstępnych akcji. Czasami wręcz stanowią one przeszkodę, ponieważ musiałyby być sprawdzone. Nie zawsze mamy kompletną informację o stanie początkowym. Odkrywanie nowych warunków wykonalności akcji powoduje konieczność modyfikacji opisu problemu. Chcemy to zrobić łatwo.

Pomysł: Warunki wstępne zapisujemy jako osobne formuły. Zakładamy, że są one spełnione chyba, że obserwacja stanu końcowego jest niezgodna z oczekiwanym wynikiem. 1. Rachunek Sytuacyjny G. Neelakantan Kartha Go RS 2. STRIPS Michael Thielscher Go ST 3. SDPL Go D

Przykład 6 (Rachunek Sytuacyjny) Spełnione(EngineRunning, s) Ab(StartCar, s) Spełnione(EngineRunning, wynik(startcar, s)) Spełnione(PotatoInTailPipe, s) Ab(PutPotato, s) Spełnione(PotatoInTailPipe, wynik(putpotato, s)) Spełnione(PotatoInTailPipe) Ab(StartCar, s) Spełnione(HeavyPotato, s) Ab(PutPotato, s) Spełnione(EngineRunning, S 0 )

Rozwiazanie: Wymaga minimalizacji predykatu Ab, a tym samym połączenia rozwiązania problemu tła z rozwiązaniem problemu kwalifikacji. Zastosowanie formalizmu zagnieżdżonego ograniczania (NAT - nested abnormality theories) pozwala rozwiązać problem sekwencyjnie, tj. najpierw tło, potem kwalifikacja, bez wzajemnego przeplatania. Rozwiązanie wymaga rozszerzenia teorii o U(T ) i D(T ) oraz inne dodatkowe aksjomaty. Go powrót

Schemat rozwiązania w STRIPSie: 1. Rozszerzenie zbioru fluentów o zbiór F ab negacje warunków wstępnych 2. Zakładamy, że są one przez domniemanie fałszywe 3. Dodajemy aksjomaty dziedziny (domain constraints) postaci disq(a) i I a f i Dla przykładu zapalania samochodu mamy disq(startcar) PotatoInTailPipe disq(putpotato) HeavyPotato 4. Rozwiązanie semantyczne w terminach modeli minimalnych dla ciągów akcji. Go powrót

Schemat rozwiązania w SDPL Formalizacja problemu kwalifikacji może być tu zrealizowana jako szczególny przypadek akcji z nietypowymi efektami, tj. schemat wygląda następująco: Q(action) : if ab action action [] ab action skip fi; Należy jeszcze dodać aksjomaty dziedziny opisujące dyskwalifikujące warunki wstępne. ab action i I action f i