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

Podobne dokumenty
Rozwiązywanie problemów metodą przeszukiwania

Heurystyki. Strategie poszukiwań

Wstęp do Sztucznej Inteligencji

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

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

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA

Sztuczna Inteligencja i Systemy Doradcze

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

Planowanie drogi robota, algorytm A*

Podstawy sztucznej inteligencji

Heurystyczne metody przeszukiwania

Elementy kognitywistyki II:

Metody przeszukiwania

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Ogólne wiadomości o grafach

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

Wprowadzenie do Sztucznej Inteligencji

Podstawy Sztucznej Inteligencji (PSZT)

Wprowadzenie do Sztucznej Inteligencji

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

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Matematyczne Podstawy Informatyki

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

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

Wprowadzenie do Sztucznej Inteligencji

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

Sztuczna Inteligencja i Systemy Doradcze

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

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

9.9 Algorytmy przeglądu

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

Digraf. 13 maja 2017

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

PRZEWODNIK PO PRZEDMIOCIE

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

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

Programowanie obiektowe

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

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

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do programowania

Zadanie 1: Piętnastka

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

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Programowanie dynamiczne i algorytmy zachłanne

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

PRZEWODNIK PO PRZEDMIOCIE

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

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

Programowanie obiektowe

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

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Algorytmy i struktury danych

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

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

Generowanie i optymalizacja harmonogramu za pomoca

Zadania laboratoryjne i projektowe - wersja β

Metodyki i techniki programowania

Abstrakcyjne struktury danych - stos, lista, drzewo

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

Algorytmiczna teoria grafów

Metoda Tablic Semantycznych

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

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

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

ALGORYTMY I STRUKTURY DANYCH

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

Nazwa przedmiotu: METODY SZTUCZNEJ INTELIGENCJI W ZAGADNIENIACH EKONOMICZNYCH Artificial intelligence methods in economic issues Kierunek:

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

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

Lista liniowa dwukierunkowa

Metodyki i techniki programowania

Sprawozdanie do zadania numer 2

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

Drzewa poszukiwań binarnych

Matematyka dyskretna - 7.Drzewa

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Podstawy sztucznej inteligencji

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

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

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Informatyki. Metody dostępu do danych

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Wybrane podstawowe rodzaje algorytmów

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

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

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

PRZEWODNIK PO PRZEDMIOCIE

Grafy i sieci w informatyce - opis przedmiotu

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

Algorytmy i Struktury Danych

Transkrypt:

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z WYKORZYSTANIEM METODY WSZERZ Prowadzący:.. Zakres ćwiczeń: 1. Idea metody przeszukiwania wszerz 2. Implementacja metody przeszukiwania wszerz 3. Złożoność obliczeniowa metody przeszukiwania wszerz Wstęp teoretyczny Jedną z metod automatycznego rozwiązywania zadań, problemów np. przez komputery jest podejście opierające się na przeszukiwaniu możliwych stanów w jakich może znaleźć się zadanie w celu znalezienia stanu odpowiadającego rozwiązaniu problemu. Aby możliwa była implementacja wspominanych metod konieczne jest sprowadzenie zadania do odpowiedniej formy, dla której wymaga się zdefiniowania dla danego problemu lub zadania następujących pojęć: stan początkowy, opisujący stan, z którego rozpoczynamy poszukiwania rozwiązania przestrzeń stanów czyli zbiór stanów osiągalnych ze stanu początkowego w wyniku wykonania dozwolonych sekwencji akcji sekwencje operacji prowadzącą z jednego stanu do innego nazwać będziemy ścieżką akcje są zbiorem operacji jakie można wykonać na zadaniu, problemie aby przejść ze stanu bieżącego do innych dozwolonych stanów test dotarcia do celu określa czy zadanie lub problem reprezentowane przez odpowiedni stan zostało już rozwiązane rozwiązanie problemu lub zadania reprezentowane jest przez odpowiednią ścieżkę od stanu początkowego do znalezionego stanu docelowego. Ogólną procedurę przeszukiwania przestrzeni stanów w poszukiwaniu docelowego stanu można przedstawić w postaci następującej sekwencji operacji: a) sprawdzenie czy bieżący stan jest stanem poszukiwanym b) rozwinięcie bieżącego stanu czyli wygenerowanie nowych stanów, które są osiągalne w wyniku wykonania dozwolonych akcji na stanie bieżącym c) wybór jednego stanu ze zbioru stanów dozwolonych d) uczynienie stanu bieżącego ze stanu wybranego w punkcie c

Cała procedura jest powtarzana aż do znalezienia rozwiązania albo do braku możliwości rozwijania nowych stanów. W wyniku generowania kolejnych stanów tworzony jest graf zawierający węzły reprezentujące rozwijane stany (Rys.1). Rys. 1. Przykładowy graf W przypadku grafu każdy ze stanów może być osiągnięty przez różne ścieżki co w praktycznych zagadnieniach może prowadzić do wielu problemów. Z tego względu często definiuje się dozwolone akcje rozwijające bieżący stan na nowe stany tak aby w wyniku tej operacji powstawało drzewo czyli acykliczny graf skierowany. Drzewo charakteryzuje się tym, że dowolna para stanów posiada dokładnie jedną ścieżkę, która je łączy co jest z punktu widzenia implementacji algorytmów przeszukiwania drzew bardzo istotną zaletą. Przykładowa struktura drzewa oraz elementy składowe drzewa przedstawiono na rys. 2. Należy zauważyć, że podstawowym elementem drzewa jest węzeł, który przechowuje informacje o stanie i dodatkowe informacje typu dowiązania do rodzica, dowiązania do potomków, itp. Rys. 2. Elementy drzewa Zbiór wszystkich liści w drzewie w danym momencie przeszukiwania nazywamy krawędzią (Rys. 3). Większość algorytmów przeszukiwania drzewa wymaga aby węzły drzewa, które tworzą krawędź były przetrzymywane w pamięci komputera ponieważ spośród elementów krawędzi wybierany jest jeden węzeł, który jest rozwijany w celu dalszych poszukiwań.

Rys.3 Węzły oznaczone na biało tworzą krawędź drzewa Poszczególne metody przeszukiwania drzew różnią się strategią wybierania węzła z krawędzi drzewa w celu dalszych poszukiwań. Poszczególne strategie ocenia się pod względem następujących właściwości: kompletności poszukiwań (czy algorytm zapewnia znalezienie rozwiązania jeżeli rozwiązanie istnieje) optymalności strategii (czy znaleziona ścieżka do celu jest najkrótszą z możliwych) złożoności pamięciowej (jak rośnie zapotrzebowanie na pamięć wraz ze złożonością rozwiązywanego problemu) złożoności czasowej (jak rośnie liczba analizowanych węzłów wraz ze wzrostem złożoności problemu ) Istnieje wiele różnych metod i ich odmian nieinformowanego przeszukiwania drzew: metoda wszerz (breadth-first search) metoda w głąb (depth first search) metoda w głąb z limitem zagłębiania (depth-limited search) metoda dwukierunkowa (bidirectional search) metoda iteracyjnego zagłębiania (iterative deepening search) metoda stałych kosztów (uniform cost search) W trakcie laboratorium analizie i implementacji poddane zostaną dwie najbardziej podstawowe strategie wszerz oraz w głąb. Strategia poszukiwań wszerz Strategia wszerz, bada kolejno poziomy grafu o jednakowej głębokości, przyznaje wyższy priorytet węzłom o mniejszej głębokości. Algorytm wyznacza węzeł celu o najmniejszej głębokości (w porównaniu z innymi węzłami celu). Główna operacją strategii wszerz jest ekspansja węzłów. Strategia ta daje gwarancję, że dla lokalnie skończonych grafów (czyli każdy węzeł ma skończoną liczbę potomków) osiągnie się węzeł celu, jeżeli istnieje. Tak więc strategia wszerz ma bardzo pożądaną cechę zbieżności. Dodatkowo, jako pierwsze wyznacza rozwiązanie optymalne pod względem długości ścieżki rozwiązania. Strategia wszerz ma jednak poważne wady. Analizowane są wszystkie węzły o głębokości mniejszej od głębokości wyznaczonego węzła celu. Zamiast jednej ścieżki w pamięci są przechowywane wszystkie węzły o danej głębokości przed wygenerowaniem jakiegokolwiek węzła o głębokości o jeden większej. Tak więc w strategii tej występują duże wymagania dotyczące pamięci. W każdym kroku strategii następują powroty do węzłów wygenerowanych i przechowywanych w pamięci od wielu kroków. Implementacja metody wszerz wymaga zdefiniowania dwóch list open oraz closed, na których przechowywane są węzły drzewa. Na liście open przechowywane są węzły będące

krawędzią drzewa a na liście closed węzły, które były już wcześniej przeglądane. W kolejnych krokach wybierany jest pierwszy węzeł na liście open i stosowna jest dla niego ogólna procedura tzn. wybrany węzeł testowany jest czy przechowuje stan docelowy, jeśli tak to koniec poszukiwań a jeśli nie to generowane są stany potomne, które dopisywane są na koniec listy open a węzeł macierzysty przenoszony jest na listę closed. Prześledźmy zachowanie się algorytmu oraz zawartości list open oraz closed w kolejnych krokach dla przykładowego drzewa (Rys. 4). Inicjalizacja algorytmu wymaga umieszczenia węzła korzenia na liście open. Każdy węzeł przechowywany na listach powinien zawierać informację na temat swojego rodzica tak aby po znalezieniu stanu docelowego możliwe było odtworzenie ścieżki będącej rozwiązaniem problemu. Rys. 4. Przeszukiwanie wszerz (liczby określają kolejność przeglądania węzłów, węzeł G przechowuje stan docelowy) Kolejne stany list open i closed dla kolejnych kroków algorytmu (w nawiasach podawane są węzły macierzyste): a) Inicjalizacja: open=a(-) closed= pusta b) Rozwinięcie węzła A: open=b(a),c(a),d(a) closed=a(-) c) Rozwinięcie węzła B: open=c(a),d(a),e(b),f(b) closed=a(-),b(a) d) Rozwinięcie węzła C: open=d(a),e(b),f(b),g(c),h(c) closed=a(-),b(a),c(a) e) Rozwinięcie węzła D: open=e(b),f(b),g(c),h(c),i(d),j(d) closed=a(-),b(a),c(a),d(a) f) Rozwinięcie węzła E: open=f(b),g(c),h(c),i(d),j(d) closed=a(-),b(a),c(a),d(a),e(b)

g) Rozwinięcie węzła F: open= G(C),H(C),I(D),J(D) closed=a(-),b(a),c(a),d(a),e(b),f(b) h) Rozwinięcie węzła G (znaleziono cel): open=h(c),i(d),j(d) closed=a(-),b(a),c(a),d(a),e(b),f(b),g(c) Po znalezieniu węzła docelowego następuje odtworzenie ścieżki, która doprowadziła do rozwiązania na podstawie listy closed oraz informacji o rodzicach węzłów. Właściwości strategii wszerz: złożoność czasowa O(b d+1 ) złożoność pamięciowa O(b d+1 ) algorytm jest kompletny jeśli graf jest skończony algorytm jest optymalny gdzie b to współczynnik rozwijania a d głębokość, na której znajduje się węzeł docelowy Zadania: 1. Zapoznaj się z problemem 8 elementowych puzli. Zadanie ułożenia puzzli sprowadza się do wykonywania dozwolonych ruchów za pomocą poszczególnych elementów puzzli tak aby osiągnąć zadany stan docelowy (rys. 6). Stan początkowy może być generowany losowo. Rys 6. Stan początkowy i stan docelowy W celu uproszczenia rozważań oraz implementacji problemu należy pustą przestrzeń w strukturze puzzli oznaczyć liczbą 0 i kolejne ruchy rozważać jako ruchy elementu 0. Należy również zwrócić szczególną uwagę na stan początkowy, z którego rozpoczyna się układanie puzzli ponieważ nie każdy stan końcowy może być osiągnięty z wybranego stanu początkowego. Tylko połowa wszystkich możliwych stanów (czyli rozkładów puzzli) może być osiągnięta z dowolnego stanu początkowego za pomocą dozwolonych ruchów. W przypadku problemu układania puzzli przy użyciu metody wszerz lub w głąb należy zwrócić uwagę na możliwość wystąpienia cykli w grafie, w którym będzie poszukiwany stan docelowy (powtarzanie się tych samych ułożeń puzzli). Implementowany algorytm musi śledzić ponowne wystąpienia stanów, które wcześniej były już analizowane i odrzucać je co pozwoli uniknąć utykania algorytmu w cyklach. Implementacja strategii wszerz oraz w głąb dla przedstawionego problemu puzzli wymaga określenia struktury danych pozwalającej przechowywać pojedynczy

stan puzzli (np. tablica 3x3) oraz implementację list open i closed w postaci list dynamicznych jednokierunkowych lub dwukierunkowych, na których będą przechowywane węzły, które przechowują między innymi informację o stanie puzzli. Poszczególne operacje na elementach list dynamicznych powinny zostać rozbite na elementarne funkcje co znacząco ułatwia analizę algorytmu przeszukiwania oraz przyśpiesza znajdowanie ewentualnych błędów. 2. Utwórz program do gry w puzzle gdzie decyzję o kolejnych ruchach będzie podejmował komputer wykorzystując strategię przeszukiwania wszerz. Na wstępie program powinien wylosować stan startowy a następnie po wyznaczeniu stanu końcowego przedstawić sekwencje ruchów prowadzącą do stanu ułożenia, Literatura: 1. Rutkowska D.,Piliński M., Rutkowski L.: Sieci neuronowe. Algorytmy genetyczne i systemy rozmyte, PWN, Warszawa, 1997. 2. Mulawka J. J. Systemy ekspertowe, WNT, Warszawa 1996. 3. Brandys Cz, Fujarewicz K, Gałuszka A., Simek K., Świrniak K., Wojciechowski K. : Metody sztucznej Inteligencji Laboratorium, Wydawnictwo Politechniki Ślaskiej, Gliwice 1998. 4. Rich E.: Artificial intelligence. McGraw-Hill, New York 1983. 5. http://aima.cs.berkeley.edu/