Algorytm Stentz a D. Przemysław Klęsk Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej

Podobne dokumenty
Metody SI w grach komputerowych Gra Policjanci i złodziej (Algorytmy przeszukiwania grafów)

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

PRACA DYPLOMOWA MAGISTERSKA

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Lista 4. Kamil Matuszewski 22 marca 2016

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek

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

Pętle. Dodał Administrator niedziela, 14 marzec :27

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Znajdowanie wyjścia z labiryntu

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

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

Algebra liniowa. Macierze i układy równań liniowych

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

1 Układy równań liniowych

Zajęcia nr. 6: Równania i układy równań liniowych

Metoda eliminacji Gaussa

Internetowe Ko³o M a t e m a t yc z n e

WHILE (wyrażenie) instrukcja;

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Zagadnienie transportowe

Wykład 16. P 2 (x 2, y 2 ) P 1 (x 1, y 1 ) OX. Odległość tych punktów wyraża się wzorem: P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Zaawansowane metody numeryczne

WHILE (wyrażenie) instrukcja;

KONSPEKT FUNKCJE cz. 1.

ZAGADNIENIE TRANSPORTOWE(ZT)

Podstawy działań na wektorach - dodawanie

do instrukcja while (wyrażenie);

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek

Macierze. Rozdział Działania na macierzach

1. R jest grupą abelową względem działania + (tzn. działanie jest łączne, przemienne, istnieje element neutralny oraz element odwrotny)

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Algorytmy i struktury danych. Wykład 4

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

Indukcja matematyczna

Propozycje rozwiązań zadań z matematyki - matura rozszerzona

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Digraf. 13 maja 2017

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Sortowanie przez wstawianie Insertion Sort

Podstawowe struktury algebraiczne

Programowanie liniowe

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Algorytmy sztucznej inteligencji

Rozwiązywanie problemów metodą przeszukiwania

Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Planowanie drogi robota, algorytm A*

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

TEORIA GRAFÓW I SIECI

a) 7 b) 19 c) 21 d) 34

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

1. Wykład NWD, NWW i algorytm Euklidesa.

Luty 2001 Algorytmy (7) 2000/2001

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

Priorytetyzacja przypadków testowych za pomocą macierzy

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

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

1 Macierz odwrotna metoda operacji elementarnych

x+h=10 zatem h=10-x gdzie x>0 i h>0

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Zasada indukcji matematycznej

TEORETYCZNE PODSTAWY INFORMATYKI

Optymalizacja ciągła

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy przeszukiwania wzorca

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Programowanie liniowe metoda sympleks

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Indukcja matematyczna, zasada minimum i maksimum. 17 lutego 2017

Algorytm. Krótka historia algorytmów

Algorytmiczna teoria grafów Przepływy w sieciach.

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Metody numeryczne w przykładach

Drzewa poszukiwań binarnych

Geometria analityczna

Algorytmy zrandomizowane

Układy równań liniowych

Algorytmiczna teoria grafów

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

2.1. Duszek w labiryncie

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Skrypt 23. Geometria analityczna. Opracowanie L7

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Indukcja matematyczna. Zasada minimum. Zastosowania.

Podstawy Programowania Algorytmy i programowanie

Matematyka licea ogólnokształcące, technika

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Zaawansowane metody numeryczne

Transkrypt:

Algorytm tentz a D Przemysław Klęsk pklesk@wi.zut.edu.pl Katedra Metod ztucznej Inteligencji i Matematyki tosowanej

Zadanie W nieznanym terenie (lub znanym tylko częściowo) należy dojść do celu o podanych współrzędnych. Koszty przejść i przeszkody poznawane są na bieżąco w trakcie przechodzenia ścieżki (przykłady: rzeczywiste roboty mobilne, postaci w grach komputerowych).

Ilustracja przykładu ()

Ilustracja przykładu ()

Ilustracja przykładu ()

O algorytmie tentz a ogólnie Algorytm tentz a () własności Znany również pod nazwą D, z intencją rozumienia nazwy jako dynamic A. Mimo nazwy, przeprowadzany w sposób bliższy algorytmowi Dijkstry. Algorytm realizuje optymalne postępowanie w świetle poznawanych na bieżąco ormacji. Przemysław Klęsk (KMIiM, ZUT) /

O algorytmie tentz a ogólnie Algorytm tentz a własności Algorytm działa iteracyjnie ścieżka jest wyznaczana wielokrotnie. Pierwszy przebieg jest wsteczną wersją a. Dijkstry budujemy kolejkę stanów idąc od celu do startu. Przy fizycznym przechodzeniu ścieżki i natrafieniu na niezgodność doświadczenia z dotychczasową wiedzą aktualizujemy ścieżkę. tany w kolejce mogą wielokrotnie zmieniać swoje koszty i wielokrotnie trafiać do kolejki. Algorytm jest efektywniejszy niż wielokrotne uruchamianie algorytmu Dijkstry od zera. Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Zbiór akcji i stanów Niech A oznacza zbiór możliwych akcji. W szczególności dla siatki kwadratów: A={,,, }. Niech X oznacza zbiór stanów. Dla siatki kwadratów: X={x ij }, gdzie i numer wiersza, j numer kolumny. Przez A(x) będzie oznaczany zbiór akcji możliwych dla stanu x. Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Wykonywanie akcji Niech t(x, a) (transition) oznacza funkcję przenoszącą pewien stan x z użyciem akcji a w nowy stan x, tzn. t(x, a)=x. Na przykład dla siatki kwadratów t(x, )=x. Formalnie t jest funkcją t: X A X. Przemysław Klęsk (KMIiM, ZUT) /

Koszty przejść Oznaczenia i reprezentacja mapy Niech c(x, a) (costs of transition) oznacza funkcję ponoszonego kosztu, który trzeba ponieść wykonując w x akcję a. Formalnie c: X A R + { }. Jeżeli wykonanie w x akcji a jest niemożliwe (przeszkoda lub brzeg mapy), to c(x, a) =. Taka postać funkcji c pozwala na ogólną reprezentację mapy, gdzie przejścia w pewien stan, ale z różnych kierunków mogą mieć różne koszty. Jeżeli dla siatki kwadratów chcemy utożsamić koszty przejścia do tego samego stanu x ij, to: c(x i,j, )=c(x i+,j, )=c(x i,j, )=c(x i,j+, )=map(i, j). dla wszystkich i, j. Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy dy koszty przejść utożsamione z mapą map= c(, )= c(, )= c(, )= c(, )= Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Założenie początkowe W najbardziej pesymistycznym przypadku zakładamy pełną niewiedzę o mapie, z wyjątkiem ormacji o współrzędnych startowych i docelowych. Jeżeli przyjmiemy, że nieutrudnione niczym przejście kosztuje jednostkę, w przypadku pełnej niewiedzy, należy nastawić: x, a c(x, a)=. W szczególności przyjmujemy, że nie znamy również brzegów planszy. Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Wielkości używane w algorytmie Niech g current (x) oznacza aktualnie znany koszt przejścia ze stanu x do stanu docelowego. Niech g via (x, x ) oznacza aktualnie zany koszt przejścia ze stanu x do stanu docelowego, gdy podróżujemy przez stan x. Funkcja g via będzie tak naprawdę rozpatrywana tylko dla x, x będących bezpośrednimi sąsiadami. Niech a będzie akcją, taką że t(x, a)=x. Wówczas: g via (x, x )=c(x, a)+g current (x ). () Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Wielkości używane w algorytmie Niech Q oznaczą kolejkę stanów przechowywaną w algorytmie (analogicznie do algorytmów Dijkstry i A ). Niech V oznaczą mapę odwiedzonych stanów. Niech g best (x) oznacza najlepszą (najmniejszą) znaną wartość kosztu dla stanu x podczas jego historii życia w kolejce Q. Wiadomo, że: Kolejka Q jest posortowana według g best. g best (x) g current (x). () Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Tymczasowy plan Niech p(x) oznacza planowaną akcję przyporządkowaną obecnie do wykonania w stanie x. Algorytm będzie wielokrotnie wyznaczał tymczasowy plan, czyli pewien ciąg akcji p, p,...,p k, p k+,..., które pozwalają przeprowadzić aktualny stan początkowy w stan docelowy wg obecnej znajomości kosztów przejść c. Tym samym, określona zostanie ścieżka stanów taka że x, x,...,x k, x k+,..., x k+ = t(x k, p(x k )). Postać (agent, robot) będzie podążała zgodnie z planem, aż do doświadczenia niezgodności pomiędzy znanym (zakładanym) kosztem przejścia a faktycznym. Przemysław Klęsk (KMIiM, ZUT) /

Oznaczenia i reprezentacja mapy Clue algorytmu tentz a Dla pewnego stanu x załóżmy, że istnieje akcja a przeprowadzająca go w sąsiada x. Jeżeli mamy że: g via (x, x )<g current (x), to istnieje szansa, że koszt g current (x) może być zredukowany. Jeżeli dodatkowo: g current (x ) g best (x), to na pewno koszt g current (x ) jest optymalny w świetle znanych ormacji. dy zachodzą oba te warunki to g current (x) jest aktualizowane do g via (x, x ) i p(x) jest aktualizowane do a. Przemysław Klęsk (KMIiM, ZUT) /

Algorytm Algorytm zewnętrzny Zainicjalizuj wszystkie wartości g best, g current, g via zerami, oraz wszystkie p na puste. Włóż stan docelowy do kolejki Q. Wykonuj w pętli algorytm tentz a, aż do momentu, kiedy jako jego wynik zostanie zwrócony stan początkowy. (w tym momencie algorytm tentz a zadziała równoważnie do wstecznego algorytmu Dijkstry) łówna pętla: Wykonuj obecny plan p, p,... odwiedzając ciąg stanów x k+ = t(x k, p k ), gdzie x oznacza aktualny stan. Jeżeli dla pewnego x k widać, że zastosowanie akcji p k skutkowałoby kosztem większym niż znane c(x k, p k ), to uaktualnij c(x k, p k ) na prawdziwe, i przypisz: g via (x k, x k+ ) := c(x k, p k )+g current (x k+ ), g current (x k ) := g via (x k, x k+ ). Przerwij dalsze wykonywanie planu. Jeżeli x k = to przerwij algorytm. (punkt stopu) Wstaw x k do Q. Zapamiętaj g last := g current (x k ). Ustaw := x k. Dopóki Q jest niepusta lub dopóki nie osiągnięto sytuacji, że g best (x) g last dla wszystkich x w Q: Wykonaj algorytm tentz a. Przemysław Klęsk (KMIiM, ZUT) /

Algorytm Algorytm tentz a (część ) Pobierz z Q stan x o najmniejszym g best. Jeżeli g best (x)<g current (x) (tzn. że x zwiększył swój koszt będąc w Q, i jeżeli można ten koszt poprawić podróżując przez jakiegoś sąsiada, dla którego optymalny koszt jest znany, to należy tak zrobić) Dla każdego a A(x), takiego że c(x, a)<, sprawdź dla x = t(x, a) czy: g via (x, x )<g current (x) i g current (x ) g best (x)? Jeżeli tak, to: g current (x) := g via (x, x ). p(x) := a. Dla wszystkich x, takich że istnieje a A(x ) powodujące t(x, a )=xoraz c(x, a )< : g via (x, x) := c(x, a )+g current (x).. Jeżeli x nie jest w V, to: g current (x ) := g via (x, x), g best (x ) := g via (x, x). p(x ) := a. Włóż x do Q. Jeżeli koszt dla x wydaje się niepoprawny, bo p(x )=a, ale g via (x, x) g current (x ), to: g current (x ) := g via (x, x). Włóż x do Q. Przemysław Klęsk (KMIiM, ZUT) /

Algorytm Algorytm tentz a (część ). (ciąg dalszy ciała pętli ) Jeżeli p(x ) a i g via (x, x)<g current (x ), to: (tzn. że lepiej iść z x przez x niż użyć akcji p(x )) Jeżeli g current (x)=g best (x), to: p(x ) := a i włóż x do Q, bo optymalny koszt dla x jest znany. W przeciwnym razie: g best (x) := g current (x) (o ile x Q), oraz włóż x do Q. (unikanie cykli w p) Jeżeli x V i x Q, oraz p(x ) a i g via (x, x )<g current (x) i g current (x)>g best (x), to włóż x do Q ponownie. Umieść x w V. Przemysław Klęsk (KMIiM, ZUT) /

Przykład ślepa uliczka ()

Przykład ślepa uliczka () Na rysunkach g current pisane w środku, g best w nawiasie, g via przy bokach. W opisie Q schemat: x g best (x){g current(x)},... (a) (b) x=(, ) pobrane z Q. wykonany dla x = (, ). wykonany dla x = (, ). wykonany dla x = (, ) Q : (, ) {}, (, ) {}, (, ) {} x=(, ) pobrane z Q. wykonany dla x = (, ). wykonany dla x = (, ) Q : (, ) {}, (, ) {}, (, ) {}, (, ) {}

Przykład ślepa uliczka () (c) (d) (wsteczny a. Dijkstry zakończony) x=(, ) pobrane z Q. wykonany dla x = (, ). wykonany dla x = (, ). wykonany dla x = (, ) Q : (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}... Q : (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}

Przykład ślepa uliczka () Plan z aktualnego : (,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}

Przykład ślepa uliczka () Po pierwszym przebiegu algorytmu tentz a. x=(, ) pobrane z Q. wykonany dla x = (, ). wykonany dla x = (, ). wykonany dla x = (, ) Q : (, ) {}, (, ) { }, (, ) {}, (, ) {}, (, ) {} (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}

Przykład ślepa uliczka () Po drugim przebiegu algorytmu tentz a. x=(, ) pobrane z Q. wykonany dla x = (, ) (neutralny).. wykonany dla x = (, ) przekierowanie z x na x Q : (, ) { }, (, ) {}, (, ) {}, (, ) {}, (, ) {} (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}

Przykład ślepa uliczka () Po trzecim przebiegu algorytmu tentz a. x=(, ) pobrane z Q. wykonany dla x = (, ). wykonany dla x = (, ). wykonany dla x = (, ) Q : (, ) {}, (, ) { }, (, ) { }, (, ) {}, (, ) {} (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) {}, (, ) { }

Przykład ślepa uliczka ()... Kolejka opróżniona po przebiegach algorytmu tentz a. Osiągnięty stan algortymu: Q :

Przykład ślepa uliczka () Plan z aktualnego : (,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }

Przykład ślepa uliczka () Kolejka opróżniona po przebiegu algorytmu tentz a. x=(, ) pobrane z Q. wykonany dla x = (, ) przekierowanie z x na x Q :

Przykład ślepa uliczka () Plan z aktualnego : (,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }

Przykład ślepa uliczka () Kolejny plan wyprowadzony po przebiegach algorytmu tentz a. Plan z aktualnego : (,,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }

Przykład ślepa uliczka () Kolejny plan wyprowadzony po przebiegach algorytmu tentz a. Plan z aktualnego : (,,,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }

Przykład ślepa uliczka () Kolejny plan wyprowadzony po przebiegach algorytmu tentz a. Plan z aktualnego : (,,,,,, ). Osiągnięto stan (, ). Niezgodność wykryta dla c ((, ), ). (, ) włożony do Q g last =, Q : (, ) { }

Przykład ślepa uliczka () Kolejny plan wyprowadzony po przebiegu algorytmu tentz a. Plan z aktualnego : (,,, ). Osiągnięto stan = (, ).

Przykład przejść czy obejść? c ((, ), )= c ((, ), )=

Przykład dla siatki

Uwagi końcowe Uwagi końcowe Pole widzenia Algorytm łatwo pozwala wprowadzić większe pole widzenia, jako otoczenie postaci o pewnym promieniu. Wystarczy przy podążaniu wg planu p, p,... uaktualnić wszelkie niezgodności funkcji c wykryte w otoczeniu. Zmiany wymaga tylko krok. algorytmu zewnętrznego. Większe pole widzenia w przypadku średnim, powinno poprawiać trasę zmniejszać tendencje do błądzenia. Algorytm bywa często wypowiadany w formie wprowadzającej etykiety dla stanów: RAIE, LOWER. Etykieta RAIE sygnalizuje, że koszt stanu jest większy niż ostatnio znany w kolejce Q (związane z krokiem. w podanym algorytmie tentz a). Etykieta LOWER sygnalizuje, że koszt stanu jest niższy niż ostatnio znany w kolejce Q (związane z krokiem. w podanym algorytmie tentz a). Praktyczne zastosowania militarne do w eksploracyjnych pojazdach bezzałogowych m.in.: Automated Cross-Country Unmanned Vehicle (XUV). Przemysław Klęsk (KMIiM, ZUT) /