• Nie Znaleziono Wyników

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 10 PRZESZUKIWANIE GRAFÓW Z WYKORZYSTANIEM METODY W GŁĄB Prowadzący: ……………………………

N/A
N/A
Protected

Academic year: 2021

Share "Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 10 PRZESZUKIWANIE GRAFÓW Z WYKORZYSTANIEM METODY W GŁĄB Prowadzący: ……………………………"

Copied!
4
0
0

Pełen tekst

(1)

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i

Telekomunikacji

Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI

Laboratorium nr 10

PRZESZUKIWANIE GRAFÓW Z WYKORZYSTANIEM METODY W GŁĄB

Prowadzący: ………..

Zakres ćwiczeń:

1. Idea metody przeszukiwania w głąb

2. Implementacja metody przeszukiwania w głąb

3. Złożoność obliczeniowa metody przeszukiwania w głąb

Wstęp teoretyczny

Przeszukiwanie w głąb zaczyna się od korzenia i porusza się w dół do samego końca gałęzi, po czym wraca się o jeden poziom wyżej aby testować kolejne gałęzi. Przeszukiwanie zawsze jest prowadzone od ostatnio sprawdzanego węzła, którego nie wszystkie gałęzie były jeszcze rozwijane. Główna operacją strategii w głąb jest ekspansja węzłów, tzn. generowanie wszystkich ich potomków. Strategia w głąb może być nieskuteczna, gdy zostanie zastosowana dla grafów o dużej głębokości. W tym przypadku wybieranie węzłów o coraz większej głębokości mogłoby być nieskuteczne nawet w przypadku, gdyby węzeł celu miał głębokość skończoną. Z tego powodu omawiana strategia jest zazwyczaj uzupełniania mechanizmem kontroli ograniczenia głębokości. Najważniejszą cechą strategii w głąb jest badanie kolejnych węzłów wzdłuż jednej ścieżki. Z tego powodu strategia ta jest naturalna dla tych problemów i grafów, w których ocena właściwości węzłów zależy ściśle od oceny właściwości ich rodziców. W strategii w głąb stosunkowo łatwo można oszacować wymagania pamięciowe. W pamięci są przechowywane tylko węzły z aktualnie badanej ścieżki grafu. Oszacowane koszty obliczeniowe strategii w głąb nie są zazwyczaj osiągane w rzeczywistości.

Implementacja metody w głąb wymaga podobnie jak dla strategii wszerz 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 ostatnio dodany 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. 5). 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.

(2)

Rys. 5. 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= D(A),C(A),B(A), closed=A(-)

c) Rozwinięcie węzła B:

open= D(A),C(A),F(B),E(B) closed=A(-),B(A)

d) Rozwinięcie węzła E:

open= D(A),C(A),F(B) closed=A(-),B(A),E(B)

e) Rozwinięcie węzła F:

open= D(A),C(A)

closed=A(-),B(A),E(B), F(B)

f) Rozwinięcie węzła C:

open= D(A),C(A),H(C),G(C) closed=A(-),B(A),E(B), F(B),C(A)

g) Rozwinięcie węzła G (znaleziono cel):

open= D(A),C(A),H(C)

closed=A(-),B(A),E(B), F(B),C(A),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 w głąb:

 złożoność czasowa O(bm)

(3)

 złożoność pamięciowa O(bm)

 algorytm nie jest kompletny

 algorytm nie jest optymalny

gdzie b to współczynnik rozwijania a m to maksymalna głębokość grafu.

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 w głąb. 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.

(4)

3. Porównaj wyniki osiągnięte dla problemu układania puzli z wykorzystaniem strategii wszerz i w głąb

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/

Cytaty

Powiązane dokumenty

Przygotuj system ekspertowy w oparciu o wnioskowanie wstecz do zadania diagnostyki uszkodzenia zasilania elektrycznego dla mieszkania (szczegóły problemu

Parametry algorytmu: liczebność populacji, współczynnik modyfikacji, pułapka ewolucyjna, współczynnik degeneracji, liczba epok oraz współrzędne punktu alokacji

Dokonać operacji odwrotnej (plik ZAD1B.m), otrzymaną liczbę w zapisie dwójkowym przekonwertować na liczbę dziesiętną?. Czy otrzymana w ten sposób liczba jest

Do klasy Osoba oraz Adres musisz dodać właściwości przy pomocy, których będzie można uzyskać dostęp do pól klasy. Zabezpiecz program tak, aby nie można było utworzyć

Twoim zadaniem jest zaimplementowanie i przetestowanie hierarchii składającej się z następujących klas: Osoba, Student, Wykładowca oraz Stypendysta. Poszczególne

Serializacja (ang. Serialization) jest procesem konwersji stanu obiektu do postaci, która może być zachowana na dysku lub przesłana przez sieć komputerową.. Proces

Zapoznaj się ze wstępem teoretycznym dotyczącym technologii Active Server Pages dla platformy .Net (prowadzący zajęcia udostępni w tym celu materiały Microsoft IT Academy)..

Zapoznaj się ze wstępem teoretycznym dotyczącym kontrolek danych dla ASP.NET (prowadzący zajęcia udostępni w tym celu materiały Microsoft IT Academy).. Zadanie polega