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

Podobne dokumenty
Heurystyki. Strategie poszukiwań

Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb

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

Metody przeszukiwania

Wstęp do Sztucznej Inteligencji

Sztuczna Inteligencja i Systemy Doradcze

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

Rozwiązywanie problemów metodą przeszukiwania

SZTUCZNA INTELIGENCJA

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Heurystyczne metody przeszukiwania

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy sztucznej inteligencji

Wykład2,24II2010,str.1 Przeszukiwanie przestrzeni stanów powtórka

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Sztuczna Inteligencja i Systemy Doradcze

Temat 9. Zabłocone miasto Minimalne drzewa rozpinające

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

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

SZTUCZNA INTELIGENCJA

AiSD zadanie trzecie

Grafy i sieci w informatyce - opis przedmiotu

Znajdowanie wyjścia z labiryntu

Wyznaczanie strategii w grach

Planowanie drogi robota, algorytm A*

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

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

Sztuczna inteligencja w programowaniu gier

Algorytmy i struktury danych

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

Tworzenie gier na urządzenia mobilne

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Matematyczne Podstawy Informatyki

Wprowadzenie do Sztucznej Inteligencji

Elementy kognitywistyki II:

Algorytmy dla gier dwuosobowych

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD III: Problemy agenta

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

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Algorytmy wyznaczania centralności w sieci Szymon Szylko

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

Optymalizacja. Wybrane algorytmy

Zadanie 1: Piętnastka

Algorytm genetyczny (genetic algorithm)-

Wprowadzenie do Sztucznej Inteligencji

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Algorytmy i struktury danych

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Metody Programowania

TEORETYCZNE PODSTAWY INFORMATYKI

Ogólne wiadomości o grafach

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Podstawy sztucznej inteligencji

M T E O T D O ZI Z E E A LG L O G R O Y R TM

Złożoność obliczeniowa klasycznych problemów grafowych

Wybrane podstawowe rodzaje algorytmów

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

9.9 Algorytmy przeglądu

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

JAKIEGO RODZAJU NAUKĄ JEST

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

Rachunek prawdopodobieństwa- wykład 2

Zapisywanie algorytmów w języku programowania

2

Narzędzia AI. Jakub Wróblewski Pokój SZTUCZNA INTELIGENCJA (ARTIFICIAL INTELLIGENCE)

Metody Optymalizacji: Przeszukiwanie z listą tabu

Okręgowa Komisja Egzaminacyjna w Krakowie 1

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Tomasz M. Gwizdałła 2012/13

Roman Mocek Zabrze Opracowanie zbiorcze ze źródeł Scholaris i CKE

METODY OPTYMALIZACJI. Tomasz M. Gwizdałła 2018/19

Matematyczne Podstawy Informatyki

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

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

Algorytmy genetyczne

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

Najprostszy schemat blokowy

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Algorytmika i pseudoprogramowanie

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Planowanie przedsięwzięć

Optymalizacja ciągła

Programowanie sieciowe. Tadeusz Trzaskalik

5c. Sieci i przepływy

Wprowadzenie do Sztucznej Inteligencji

MATEMATYCZNE METODY WSPOMAGANIA PROCESÓW DECYZYJNYCH

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Zaawansowane programowanie

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

CZYM JEST SZTUCZNA INTELIGENCJA? REPREZENTACJA WIEDZY SZTUCZNA INTELIGENCJA PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Kurs MATURA Z INFORMATYKI

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA

Transkrypt:

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, w głąb.

Spis treści: 1. Wprowadzenie 3. str. 1.1 Krótki Wstęp 3. str. 1.2 Etapy formułowania problemu 3. str. 1.3 Metody przeszukiwania 3. str. 2. Przeszukiwanie na ślepo 5. str. 2.1 Przeszukiwanie wszerz 5. str. 2.2 Przeszukiwanie w głąb 6. str. 2.3 Przeszukiwanie ograniczone w głąb 6. str. 2.4 Przeszukiwanie dwukierunkowe 7. str. 3. Zastosowania 7. str. 4. Literatura 8. str.

1. Wprowadzenie 1.1 Krótki wstęp Wiele problemów z jakimi spotykamy się na co dzień jest zbyt złożona byśmy mogli je objąć w całości. Ilość możliwych kombinacji jest bardzo duża lub nieskończona, a my musimy uzyskać jak najlepszy wynik, który pozwoli nam zaoszczędzić czas lub cenne dla nas środki. W tym wypadku sięgamy bo naszą intuicję czy inteligencję i wybieramy rozwiązanie, które wydaje się być,,najrozsądniejsze. Nie musi być ono optymalne, ale jest wystarczające dla naszych potrzeb. Czasem jednak znalezienie rozwiązania optymalnego jest konieczne, bądź decyzja o wybraniu określonego rozwiązania musi posiadać uzasadnienie. W tej sytuacji, w celu rozwiązania problemu należy się zwrócić ku metodom formalnym. 1.2 Etapy formułowania problemu Świat rzeczywisty jest zbyt złożony i zróżnicowany aby odwzorowywać go w sposób jak najbardziej zbliżony do rzeczywistości. Dlatego jednym z podstawowych zadań w trakcie opisu problemu jest sporządzenie modelu świata opisującego najważniejsze aspekty świata i zachodzących w nich procesów. Należy w tym momencie zdecydować które elementy świata rzeczywistego mają znaczenie w kontekście rozwiązywanego problemu, a które są w naszym opisie zbędne i nie muszą być brane pod uwagę. W kolejnym kroku należy dokładnie sformułować problem w sposób możliwie abstrakcyjny. Im bardziej ogólny i niezależny będzie opis, tym lepsze rozwiązanie otrzymamy (lepsze, tzn mające więcej zastosowań). Gdy po etapach określenia reprezentacji problemu i jego sformułowaniu, wybrana zostanie metoda rozwiązania, nim przystąpi się do jej implementacji warto się jeszcze zastanowić nad wyborem reprezentacji danych. Jest to etap zależny od narzędzia którym się posłużymy (dla informatyka będzie to komputer i kompilator wybranego języka programowania). Wybór ten może być bardzo istotny i wpłynąć na czas i jakość rozwiązania. 1.3 Metody przeszukiwania Istnieje wiele strategii przeszukiwania przestrzeni rozwiązań, a różnice pomiędzy nimi są związane z kolejnością ekspansji stanów i kierunkiem poruszania się

po drzewie rozwiązań. Kolejny podział na podgrupy metod przeszukiwania można przeprowadzić ze względu na rodzaj informacji wykorzystywanych przez daną metodę w celu znalezienia rozwiązania. Strategie wykorzystujące informacje zawarte tylko w definicji problemu nazywane są ślepymi i zostaną szczegółowo opisane w tym opracowaniu. Do strategii ślepych zaliczają się: Przeszukiwanie wszerz Strategia jednolitego kosztu Przeszukiwanie wgłąb Przeszukiwanie ograniczone wgłąb Przeszukiwanie iteracyjne pogłębiane Przeszukiwanie dwukierunkowe Strategie wykorzystujące dodatkowe informacje dotyczące problemu i jego rozwiązania, jak oszacowania kosztu rozwiązania od stanu bieżącego do celu, czyli próby określenia trafności wyboru przyjętego kierunku poszukiwań, zaliczają się do metod heurystycznych. Przykładami tych metod są: Algorytmy genetyczne Symulowane wyżarzanie Tabu search Przeszukiwanie zachłanne i wiele innych... W celu określenia wad i zalet poszczególnych metod przeszukiwania i dokonania oceny dostarczanych przez nich rozwiązań, wykorzystuje się następujące kryteria: Zupełność czy dana metoda zawsze znajduje rozwiązanie, w sytuacji gdy ono istnieje? Złożoność czasowa dotyczy całkowitej liczby wygenerowanych węzłów, co przekłada się na czas potrzebny na te operacje. Złożoność pamięciowa maksymalna liczba węzłów przechowywanych w jednej chwili w pamięci. Optymalność czy metoda pozwala znaleźć rozwiązanie optymalne (o minimalnym, bądź maksymalnym koszcie)

W opisach powyższych kryteriów występują symbole: V - liczba węzłów E - liczba krawędzi 2. Przeszukiwanie na ślepo Metody przeszukiwania na ślepo charakteryzują się wykorzystaniem tylko informacji zawartych w definicji problemu. Można tu wyróżnić strategię przeszukiwania wszerz (warstwowo), w głąb, oraz połączenie obu metod. 2.1 Przeszukiwanie wszerz Przeszukiwanie wszerz jest strategią warstwową. Rozpoczyna swoje działanie od węzła korzenia i wykonuje ekspansję najpłytszego węzła, ze zbioru węzłów do tej pory nie rozszerzonych. Rys. 1. Przeszukiwanie wszerz Zaletą tej metody jest to że zawsze dostarcza rozwiązanie i do tego optymalne. Złożoność czasowa jest opisana wzorem: O( V + E ) W pamięci przechowywany jest każdy odwiedzony do tej pory węzeł, stąd złożoność pamięciowa również jest opisana wzorem: O( V + E ). Algorytm przeszukiwania wszerz jest prosty i dostarcza optymalnego rozwiązania (gdy koszty akcji są jednakowe), lecz jego złożoność czasowa i pamięciowa w zasadzie eliminują go

jako metodę przeszukiwania dużych przestrzeni rozwiązań. 2.2 Przeszukiwanie wgłąb Przeszukiwanie zaczyna się od korzenia i porusza się w dół do samego końca gałęzi, po czym wraca się o jeden poziom i próbuje kolejne gałęzie itd. Rys. 3. Przeszukiwanie w głąb Złożoność pamięciowa przeszukiwania w głąb w przypadku drzewa jest o wiele mniejsza niż przeszukiwania wszerz, gdyż algorytm w każdym momencie wymaga zapamiętania tylko ścieżki od korzenia do bieżącego węzła, podczas gdy przeszukiwanie wszerz wymaga zapamiętywania wszystkich węzłów w danej odległości od korzenia, co zwykle rośnie wykładniczo w funkcji długości ścieżki. Strategia ta zawodzi w sytuacji, gdy przeszukiwana przestrzeń rozwiązań ma nieskończoną głębokość lub zawierających pętle. Złożoność czasowa obu algorytmów jest proporcjonalna do sumy liczby wierzchołków i liczby krawędzi w przeszukiwanym grafie. Mimo to algorytm przeszukiwania w głąb wydaje się być bardziej przydatny i łatwiejszy w implementacji (rekurencja aż się prosi o zastosowanie). 2.3 Przeszukiwanie ograniczone wgłąb Jest modyfikacją strategii przeszukiwania wgłąb. Wprowadza ograniczenie co do maksymalnej głębokości zagłębiania się w graf rozwiązań. Jeżeli odległość do rozwiązania jest mniejsza niż wprowadzona maksymalna głębokość to zostanie ono znalezione. W przeciwnym wypadku znalezione zostanie rozwiązanie przybliżone (najlepsze wśród sprawdzonych węzłów).

Zaletą tej metody jest,,uodpornienie klasycznego algorytmu na pętle w grafie. Ma on ciekawe zastosowania opisane w dalszej części pracy. 2.4 Przeszukiwanie dwukierunkowe Strategia ta może wykorzystywać dowolną z opisanych metod. Wykonuje ona równolegle dwa przeszukiwania: wprzód od stanu początkowego i w tył od stanu końcowego. Najczęściej jest to przeszukiwanie wszerz. Pozwala ona skrócić średni czas znalezienia rozwiązani o połowę. Główną wadą wszystkich przedstawionych metod jest duża złożoność czasowa. Przeszukiwanie grafu zawsze musi sprowadzić się do sprawdzenia wszystkich wierzchołków i połączeń między nimi. Szybsze wyniki można otrzymać metodami heurystycznymi, które jednak nie dają pewności wyniku optymalnego. Ze względu na swoje podobieństwo do zachowań ludzkich świetnie nadają się do modelowania sztucznej inteligencji. 3. Zastosowanie Algorytmy przeszukiwania przestrzeni rozwiązań są ważną dziedziną współczesnej informatyki. Jednym z głównych zastosowań jest sztuczna inteligencja w grach komputerowych. Gry takie jak kółko i krzyżyk, szachy, warcaby, GO mogą być sterowane prostymi algorytmami przeszukiwania grafów. Także bardziej zaawansowane strategie w rozbudowanych algorytmach sprowadzają się do znalezienia odpowiedniego rozwiązania z (bardzo) dużej przestrzenie możliwości. Innym aspektem związanym z przeszukiwaniem przestrzeni rozwiązań jest wyszukiwanie najkrótszej ścieżki w grafie lub na planszy (mapie). Problem ten tyczy tylko jednego aspektu całej gry (np. strategicznej), jest jednak niezmiernie ważny dla jakości rozgrywki z komputerowym graczem. Ilość stanów w przypadku tego problemu może być ogromna, więc prawie zawsze przeszukiwanie całej przestrzeni rozwiązań nie wchodzi w rachubę. Dodatkowo teren na mapie może być zróżnicowany, więc przejścia między poszczególnymi stanami mogą się charakteryzować różnymi kosztami. Natomiast zastosowanie metody przeszukiwania z ograniczoną głębokością, nie tylko przyspieszy reakcje przeciwnika, lecz również za symuluje ograniczoną widoczność na mapie, co wyrówna szanse gracza i komputera oraz pozytywnie wpłynie na realizm

rozgrywki. Oprócz dziedziny gier komputerowych podane algorytmy mogą mieć wiele innych zastosowań natury technicznej i/lub czysto teoretycznej. Problem wyszukiwania najkrótszej ścieżki w grafie jest abstrakcyjnym modelem dla wielu rzeczywistych problemów, od budowy topologicznej sieci strukturalnych po odnajdywanie ścieżek krytycznych w procesie produkcyjnym przedsiębiorstwa. Może posłużyć do wyznaczania trasy w nawigacjach GPS jak i do projektowania drukowanych płytek krzemowych. Oczywiście to tylko niewielka część wszystkich możliwości. Dzięki takim problemom my, informatycy wciąż mamy sporo pracy. 4. LITERATURA: 1. Robin J. Wilson, Wprowadzenie do teorii grafów. 2. Piotr Wróblewski, Algorytmy struktury danych i techniki programowania. 3. http://pl.wikipedia.org/