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



Podobne dokumenty
ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

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

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Heurystyki. Strategie poszukiwań

Metody przeszukiwania

Heurystyczne metody przeszukiwania

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

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

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

Rozwiązywanie problemów metodą przeszukiwania

Podstawy sztucznej inteligencji

Wstęp do Sztucznej Inteligencji

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

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

SZTUCZNA INTELIGENCJA

Podstawy Sztucznej Inteligencji (PSZT)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Planowanie drogi robota, algorytm A*

Elementy kognitywistyki II:

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

Wybrane podstawowe rodzaje algorytmów

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

Sztuczna Inteligencja i Systemy Doradcze

Zaawansowane programowanie

Matematyczne Podstawy Informatyki

Wprowadzenie do Sztucznej Inteligencji

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

LABORATORIUM 2: Wpływ wielkości populacji i liczby pokoleń na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

Wprowadzenie do Sztucznej Inteligencji

SZTUCZNA INTELIGENCJA

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

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Sztuczna inteligencja w programowaniu gier

SZTUCZNA INTELIGENCJA

Metody Programowania

Zadanie 1: Piętnastka

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

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

Opis. Wymagania wstępne (tzw. sekwencyjny system zajęć i egzaminów) Liczba godzin zajęć dydaktycznych z podziałem na formy prowadzenia zajęć

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Wprowadzenie do Sztucznej Inteligencji

PRZEWODNIK PO PRZEDMIOCIE

Sztuczna Inteligencja i Systemy Doradcze

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

Metody Optymalizacji: Przeszukiwanie z listą tabu

Grafy i sieci w informatyce - opis przedmiotu

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

PRZEWODNIK PO PRZEDMIOCIE

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Podstawy sztucznej inteligencji

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

Wyznaczanie optymalnej trasy problem komiwojażera

Ogólne wiadomości o grafach

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

Algorytmiczna teoria grafów

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

PRZEWODNIK PO PRZEDMIOCIE

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Techniki optymalizacji

Zadania laboratoryjne i projektowe - wersja β

Optymalizacja. Wybrane algorytmy

INSTRUKCJA DO ĆWICZENIA NR 4

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

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

Optymalizacja. Przeszukiwanie lokalne

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Algorytmy i struktury danych.

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

KARTA PRZEDMIOTU. zaliczenie na ocenę WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Programowanie sieciowe. Tadeusz Trzaskalik

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Obliczanie opłaty elektronicznej za przejazd wybraną trasą (krok po kroku)

kierunkowy (podstawowy / kierunkowy / inny HES) nieobowiązkowy (obowiązkowy / nieobowiązkowy) polski drugi semestr letni (semestr zimowy / letni)

Modele całkowitoliczbowe zagadnienia komiwojażera (TSP)

Algorytmy wyznaczania centralności w sieci Szymon Szylko

ĆWICZENIE 5: Sztuczne sieci neuronowe

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

Przykład planowania sieci publicznego transportu zbiorowego

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

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Wykłady z Matematyki Dyskretnej

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

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

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

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

Przykłady problemów optymalizacyjnych

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

KONFIGURACJA SIECIOWA SYSTEMU WINDOWS

Microsoft EXCEL SOLVER

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

Digraf. 13 maja 2017

Transkrypt:

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne opracował: dr inż. Witold Beluch witold.beluch@polsl.pl Gliwice 2012

Cel ćwiczenia Wykonując ćwiczenie laboratoryjne zastosujesz do wybranych problemów poznany na poprzednich ćwiczeniach program oraz następujące strategie przeszukiwania heurystycznego: pierwszy najlepszy (w tzw. wersji zachłannej), heurystyczne przeszukiwanie w głąb oraz A*. Celem jest znalezienie najkrótszej drogi do celu. Celem dodatkowym jest zminimalizowanie liczby odwiedzonych węzłów. Trochę teorii... Jak już wiesz, zagadnienie szukania jest jedną z najważniejszych metod sztucznej inteligencji. Dzisiaj zapoznasz się z heurystycznymi metodami poszukiwań, wykorzystującymi dodatkową wiedzę o problemie. Heurystyka (metoda intuicyjna ) jest to metoda znajdowania rozwiązań, która pozwala na znalezienie w akceptowalnym czasie przynajmniej dostatecznie dobrego, przybliżonego rozwiązania problemu. Metod tych używa się np. wtedy, gdy pełny algorytm dla danego problemu jest nieznany lub jest on zbyt kosztowny obliczeniowo. Strategie heurystyczne korzystają z dodatkowej, heurystycznej funkcji oceny stanu (np. szacującej koszt rozwiązania od bieżącego stanu do celu) by określić, którą część drzewa najpierw rozwijać. Metody te prawie zawsze gwarantują podjęcie lepszej decyzji wskazując dobre (według pewnego kryterium) kierunki poszukiwania, choć mogą pominąć ważne rozwiązania. Do heurystycznych strategii przeszukiwania należą m. in.: zachłanna strategia najpierw najlepszy; strategia A*; strategia heurystycznego przeszukiwania w głąb; IDA* (iterative deepening A*); metoda najszybszego wzrostu; symulowane wyżarzanie; algorytmy ewolucyjne; W ramach niniejszej instrukcji ograniczymy się do pierwszych trzech metod. Zachłanna strategia pierwszy najlepszy Strategia pierwszy najlepszy w wersji zachłannej (ang. greedy best first search) dla oceny atrakcyjności węzła korzysta wyłącznie z funkcji heurystycznej h. Każdemu węzłowi przypisuje szacowany koszt najkrótszej ścieżki od tego węzła do celu węzła docelowego. Za h można przyjąć w zasadzie dowolna funkcję, o ile tylko jest ona dopuszczalna 1. Często dla zagadnień poszukiwania najkrótszej drogi przyjmuje się odległość od węzła do celu w linii prostej. Strategia zachłanna próbuje maksymalnie zmniejszyć koszt dotarcia do celu bez oceny, czy na dłuższą metę jest to najlepsze zachowanie. Do wad metody należy zaliczyć również to, iż może ona źle wystartować i utknąć w ślepej uliczce. Strategia nie jest algorytmem optymalnym (niekoniecznie znajduje rozwiązanie o minimalnym koszcie) jak również nie jest jest algorytmem zupełnym (nie zawsze znajduje rozwiązanie). 1 Funkcję heurystyczną nazywa się dopuszczalną, jeśli w każdym stanie n spełnia następujący warunek: h(n) h*(n), gdzie h*(n) jest rzeczywistym koszt ścieżki od stanu n do celu. Funkcja przypisująca każdemu węzłowi odległość do celu w linii prostej spełnia ten warunek nie można przecież znaleźć krótszej drogi... 2

Strategia A* Strategia A* (ang. A* strategy) jest innym wariantem strategii pierwszy najlepszy. Jest ona wysoce efektywną metodą przeszukiwanie, zaproponowaną w 1968 roku przez Peter Harta, Nilsa Nilssona oraz Bertrama Raphaela. Strategia ta umożliwia znalezienie najkrótszej drogi między wierzchołkiem początkowym a dowolnym z wierzchołków docelowych w grafie. W tym celu wykorzystuje ona funkcję oceny w postaci: f (n) = g(n) + h(n) gdzie: g(n) dotychczasowy (rzeczywisty) koszt dotarcia do stanu n; h(n) oszacowanie kosztu od stanu bieżącego n do stanu docelowego. A* jest algorytmem optymalnym, jeśli heurystyka h jest dopuszczalna. A* jest też algorytmem zupełnym, jeśli nie ma nieskończenie wielu stanów takich, że f f(g), gdzie: G - stan docelowy. Strategia heurystycznego przeszukiwania w głąb Strategia heurystycznego przeszukiwania w głąb (ang. heuristic depth search) jest wersją ślepego przeszukiwania w głąb, w której używana jest wiedza heurystyczna o problemie. Algorytm przeszukiwania w głąb jest zmodyfikowany w ten sposób, że przeszukiwane lokalne z zastosowaniem heurystyki pozwala na znalezienie najlepszego (z punktu widzenia danej heurystyki) węzła potomnego, miast rozwijać węzeł leżący najbardziej z lewej strony. Jeśli jako funkcję oceny węzłów zastosuje się funkcję ze strategii A* a w dodatku zastosuje się metodę iteracyjnego pogłębiania 2, to otrzymamy algorytm IDA* (iteracyjnie pogłębiane A*). Algorytm ten można przedstawić jako: 1. Stosuj algorytm szukania w głąb. 2. Oceniaj całkowite koszty f (n) = g(n) + h(n) heurystyką A*. 3. Jeśli f (n) > T cofaj się. 4. Jeśli nie znaleziono rozwiązania zwiększ T i powtarzaj. IDA* jest, podobnie jak A*, algorytmem zupełnym kompletnym i optymalnym, jednak ma mniejsze niż strategia A* wymagania pamięciowe. Do wykonania Skorzystaj ponownie z programu do tworzenia i przeszukiwania grafów ze strony internetowej AIspace (http://aispace.org). Poszukujemy w dalszym ciągu najkrótszej z Rybnika (Rondo Gliwickie) na wydział MT. Korzystając z programu Search Applet spróbujemy znaleźć taką drogę korzystając tym razem z heurystycznych strategii przeszukiwania. Uruchom program Search Applet. Otwórz plik z grafem z poprzednich zajęć (lub utwórz nowy plik) i zapisz go pod inną nazwą. Dla każdego węzła wprowadź wartość funkcji heurystycznej h(n) 2 Metoda iteracyjnego pogłębiania wykonuje sie przeszukiwanie w głąb ograniczone do pewnej głębokości T. Jeżeli przeszukiwanie nie zakończy sie sukcesem, to zwiększana jest wartość T o jeden i przeszukiwanie jest przeprowadzane ponownie. Metoda ta jest pewnym kompromisem między przeszukiwaniem wszerz i przeszukiwaniem w głąb, będąc metodą jednocześnie zupełną i optymalną. Mimo wielokrotnego rozwijania tych samych węzłów użycie pamięci (pesymistyczne) jest niewiele większe, niż w metodzie przeszukiwania wszerz. 3

w tym przypadku będzie to odległość poszczególnych węzłów od celu w linii prostej. Odległości te zebrano w Tab. 1. Włącz wyświetlanie wartości funkcji heurystycznych dla węzłów (View-> Show Node Heuristics). Na Rys. 1 przedstawiono graf z wprowadzonymi odległościami w linii prostej od celu. Jeśli nie uda się w programie wprowadzić wartości ułamkowych zaokrąglij je do jedności. Tab. 1 Odległości poszczególnych węzłów od celu (Wydział MT) w linii prostej Węzeł Odległość od celu (wartość f. heuryst. h(n)), [km] Węzeł Odległość od celu (wartość f. heuryst. h(n)), [km] Rybnik 23.3 Ochojec 17.3 Staniowice 18.2 Wilcza 12.8 Bełk 17.7 Rudy 19.8 Węzeł Knurów 8.3 Stanica 15.4 Węzeł Sośnica 4.5 Pilchowice 12.6 Czerwionka-Leszczyny 16.1 Sośnicowice 11.1 Knurów 8.0 Wójtowa Wieś 2.7 Żernica 4.2 MT 0 Rys. 1. Wybrane węzły i krawędzie na trasie Rybnik-MT Wykonaj przeszukiwanie grafu (klikając ikonę Step) dla trzech rozważanych strategii po kolei. Zanotuj w protokole (Tabela 1) znalezioną ścieżkę, koszt znalezionego rozwiązania (odległość w kilometrach) oraz liczbę odwiedzonych węzłów dla pierwszego rozwiązania znalezionego przez algorytm. 4

Utwórz lustrzane odbicie (względem osi pionowej) grafu, przeciągając poszczególne węzły. Sprawdź, jak skuteczne okażą się poszczególne strategie w tym przypadku. Wyniki zamieść w protokole (Tabela 2). Zmodyfikuj graf według własnego uznania dodając węzły i krawędzie (możesz modyfikować wersję pierwotną lub lustrzane odbicie). W tym celu skorzystaj z dowolnej strony internetowej, która umożliwia znalezienie trasy (np. Mapy Google). Z kolei w celu określenia odległości w linii prostej pomiędzy miastami możesz na przykład skorzystać ze strony www.odleglosci.info. Zapisz utworzony graf. Przeprowadź poszukiwania dla takiego grafu wypełniając Tabelę 3. Sprawozdanie Sprawozdanie ma być dostarczone wyłącznie w formie elektronicznej. Nazwa pliku wg wzorca: MH_lab2_Jan_Kowalski.doc/pdf. Strona pierwsza to strona tytułowa. W sprawozdaniu należy zamieścić: 1. Cel ćwiczenia. 2. Opis problemu (w tym wszystkie rozważane grafy). 3. Skan/fotografię protokołu. 4. Przemyślenia i wnioski z części przeprowadzonej na zajęciach. 5. Graf reprezentujący połączenie między miejscem Twego urodzenia a miejscem zamieszkania dowolnej bliskiej Ci osoby (np. kolega, koleżanka, członek rodziny), który mieszka w innej miejscowości, niż Twoje miejsce urodzenia. Graf ma zawierać co najmniej 14 węzłów (w tym start i koniec) oraz co najmniej 4 alternatywne trasy. Sprawdź działanie rozważanych strategii na stworzonym przez siebie grafie i zanotuj wyniki. 6. Wnioski wynikające z punktu 5. Literatura i źródła [1] http://wazniak.mimuw.edu.pl materiały dydaktyczne przygotowane w ramach projektu Opracowanie programów nauczania na odległość na kierunku studiów wyższych Informatyka. [2] http://www.aispace.org strona AIspace. [3] S. Wierzchoń: Elementy sztucznej inteligencji. Materiał udostępniony na prawach rękopisu. Instytut Podstaw Informatyki PAN, 2009. [4] Wikipedia algorytm A* (http://pl.wikipedia.org/wiki/a*). 5

METODY HEURYSTYCZNE Protokół do laboratorium 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne Imię i nazwisko Rok ak. Gr. Sem. Komp. Data Podpis prowadzącego 20 / ME3 I Tabela 1. Graf Rybnik-MT w wersji pierwotnej Metoda przeszukiwania pierwszy najlepszy Znaleziona trasa Koszt [km] Liczba odwiedzonych węzłów heurystyczne w głąb A* Tabela 2. Graf Rybnik-MT w wersji lustrzanej Metoda przeszukiwania pierwszy najlepszy Znaleziona trasa Koszt [km] Liczba odwiedzonych węzłów heurystyczne w głąb A* Tabela 3. Graf Rybnik-MT w wersji zmodyfikowanej Metoda przeszukiwania pierwszy najlepszy Znaleziona trasa Koszt [km] Liczba odwiedzonych węzłów heurystyczne w głąb A* Notatki (na drugiej stronie):