Planowanie drogi robota, algorytm A*

Podobne dokumenty
Heurystyki. Strategie poszukiwań

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

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

Metody przeszukiwania

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

SZTUCZNA INTELIGENCJA

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

Zagadnienie transportowe

Heurystyczne metody przeszukiwania

Podstawy Sztucznej Inteligencji (PSZT)

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

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

Sztuczna Inteligencja i Systemy Doradcze

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

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

Znajdowanie wyjścia z labiryntu

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

Techniki optymalizacji

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Wybrane podstawowe rodzaje algorytmów

SZTUCZNA INTELIGENCJA

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Algorytmy i struktury danych

Customer Attribution Models. czyli o wykorzystaniu machine learning w domu mediowym.

Podstawy sztucznej inteligencji

Rozwiązywanie równań nieliniowych

PRACA DYPLOMOWA MAGISTERSKA

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Wstęp do Sztucznej Inteligencji

Programowanie liniowe metoda sympleks

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

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

Wyznaczanie strategii w grach

BADANIA OPERACYJNE pytania kontrolne

Programowanie liniowe metoda sympleks

Złożoność obliczeniowa zadania, zestaw 2

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

Podstawy sztucznej inteligencji

Obliczenia iteracyjne

Metody Optymalizacji: Przeszukiwanie z listą tabu

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski

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

Metody Programowania

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

Optymalizacja. Przeszukiwanie lokalne

Zagadnienie transportowe

Rozwiązywanie problemów metodą przeszukiwania

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych

Rozwiązanie Powyższe zadanie możemy przedstawić jako następujące zagadnienie programowania liniowego:

Ekonometria, lista zadań nr 6 Zadanie 5 H X 1, X 2, X 3

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Rzut oka na współczesną matematykę spotkanie 3: jak liczy kalkulator i o źródłach chaosu

Optymalizacja. Przeszukiwanie tabu

Zadanie 1: Piętnastka

ZAGADNIENIE TRANSPORTOWE

Programowanie liniowe

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Elementy Modelowania Matematycznego

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Metoda simpleks. Gliwice

Algorytm. Krótka historia algorytmów

Zadanie 1: Piętnastka - uzupełnienie

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Algorytm. Krótka historia algorytmów

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Tabu Search (Poszukiwanie z zakazami)

TEORIA GRAFÓW I SIECI

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Elementy kognitywistyki II:

RÓWNANIA NIELINIOWE Maciej Patan

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Schemat programowania dynamicznego (ang. dynamic programming)

Zagadnienia - równania nieliniowe

Algorytmy sztucznej inteligencji

8. Neuron z ciągłą funkcją aktywacji.

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Podstawy Informatyki. Metody dostępu do danych

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Wstęp do programowania

Analiza konstrukcji zawierających wskaźniki. Piotr Błaszyński

9.9 Algorytmy przeglądu

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Techniki optymalizacji

Drzewa poszukiwań binarnych

Algorytmy dla gier dwuosobowych

Sztuczna inteligencja w programowaniu gier

Podręcznik użytkownika Obieg dokumentów

Programowanie liniowe metoda sympleks

Transkrypt:

Planowanie drogi robota, algorytm A* Karol Sydor 13 maja 2008

Założenia Uproszczenie przestrzeni Założenia Problem planowania trasy jest bardzo złożony i trudny. W celu uproszczenia problemu przyjmujemy założenia: Robot jest jedynym poruszającym się punktem Ograniczamy ruch do bezkontaktowego Robot porusza się w dwuwymiarowej płaskiej przestrzeni

Uproszczenie przestrzeni Założenia Uproszczenie przestrzeni Przykład przestrzeni

Założenia Uproszczenie przestrzeni Sztuczne powiększenie przeszkód

Założenia Uproszczenie przestrzeni Sprowadzenie wymiarów robota do punktu

Założenia Uproszczenie przestrzeni Nałożenie siatki

Założenia Uproszczenie przestrzeni Klasyfikacja pól

Założenia Uproszczenie przestrzeni Wyznaczona ścieżka

Opis algorytmu Otoczenie Wstęp Definicje Heurystyki Przykład Wyznaczamy punkt startowy i końcowy Wyznaczamy pola osiągalne i nieosiągalne

Wstęp Definicje Heurystyki Przykład Wybór Pól Wybór pól determinuje równanie: Gdzie: F = G + H G - koszt ruchu z punktu startu do aktualnej pozycji H - szacunkowy koszt ruchu przejścia z aktualnej pozycji do celu - funkcja heurystyczna

Wstęp Definicje Heurystyki Przykład Lista otwartych Lista otwartych to lista węzłów oczekujących na sprawdzenie Lista zamkniętych Lista zamkniętych to lista węzłów które zostały już sprawdzone węzeł - rodzic Węzeł rodzic to taki węzeł z którego przeszliśmy do aktualnego węzła. Informacja kto jest rodzicem danego węzła jest ważna do określenia ścieżki po zakończeniu sprawdzania

Wstęp Definicje Heurystyki Przykład Oto kilka przykładowych funkcji heurystycznych: Manhattan: H = D n.x goal.x + n.y goal.y Diagonal: H = D max( n.x goal.x, n.y goal.y ) Euklides: H = D (n.x goal.x) 2 + (n.y goal.y) 2 Euklides bez pierwiastka: H = D ((n.x goal.x) 2 + (n.y goal.y) 2 ) W opisywanym przykładzie stosujemy funkcję heurystyczną Manhattan, oraz przyjmujemy współczynnik D = 10, natomiast krok w pionie lub poziomie (do wyliczania G) kosztuje 10, po skosie 14.

Wstęp Definicje Heurystyki Przykład Zaczynamy w punkcie startowym, dodajemy go do Listy otwartych Szukamy dostępnych przyległych pól Pole startowe usuwamy do Listy zamkniętych

Wstęp Definicje Heurystyki Przykład Wybieramy spośród wszystkich dostępnych punktów ten o najmniejszym współczynniku F. Rodzica dodajemy do Listy zamkniętych.

Wstęp Definicje Heurystyki Przykład Kontynuujemy poszukiwania, postępując wg. algorytmu. Jeżeli węzeł w otoczeniu rodzica jest już na Liście otwartych, to sprawdzamy czy z aktualnego węzła nie wygenerujemy lepszej (niższy koszt) ścieżki dla niego.

Wstęp Definicje Heurystyki Przykład kończy działanie w momencie kiedy punkt końcowy zostanie dodany do Listy zamkniętych, lub kiedy punkt końcowy zostanie osiągnięty.

Wstęp Definicje Heurystyki Przykład Ścieżka zostaje wyznaczona poprzez ruch od punktu końcowego, po kolejnych rodzicach, aż do punktu początkowego.

Modyfikacje IDA* IDA* - Interative deepening A* - iteracyjne pogłębianie. Jest modyfikacją polegającą na tym że dołożony jest dodatkowy próg na funkcję f(n): Jeśli f (n) > T cofaj się; T jest tu zmiennym progiem Jeśli nie znaleziono rozwiązania zwiększ T i powtarzaj. Poprzednie limity T nie są zapamiętywane Taka modyfikacja powtarza niektóre ścieżki, ale pochłania mniej pamięci.

Modyfikacje SMA* SMA* - Simplified Memory A* - jest modyfikacją która wykorzystuje całą dostępną dla niej pamięć. SMA* nie powtarza ścieżek, pamięta wszystkie rozwinięte węzły, do póki jest dla nich miejsce w pamięci Jeżeli nie ma miejsca dla nowego węzła, usuwany jest pierwszy węzeł z listy. Dla usuniętych węzłów zapamiętywana jest najlepsza ścieżka. Taka modyfikacja dzięki ograniczeniu pamięci doskonale nadaje się do systemów o niewielkiej jej ilości.

Modyfikacje Real-Time A* Real Time A* - jest modyfikacją której priorytetem jest czas wyliczenia ścieżki cofa się tylko w przypadku, kiedy koszt cofnięcia i wyliczenia problemu z innego węzła jest niższy niż wyliczenie ścieżki z miejsca aktualnego Modyfikacja która umożliwia takie działanie polega na tym że funkcja G jest liczona nie od miejsca startu, ale jako wszystkie przejścia wykonane przez algorytm Dodatkowo wprowadzona jest zmienna α która zawiera minimum z wyliczanych f(n) - dzięki temu nie ma konieczności przeszukiwania drzewa, a węzeł o wyższym f(n) nie będzie nigdy rozwijany. Taka modyfikacja nie zawsze daje optymalną ścieżkę, ale daje ją w optymalnym czasie.

Modyfikacje Źródła informacji: Odnajdywanie ścieżki typu A* dla początkujących http://www.policyalmanac.org/games/astartutorial pl.htm kurs: Artificial Intelligence - Joelle Pineau http://www.cs.mcgill.ca/ jpineau/comp424/ Sztuczna inteligencja - Włodzisław Duch Wikipedia

Modyfikacje Dziękuje za uwagę.