Przeszukiwanie przestrzeni rozwiązań, szukanie
Transkrypt
Przeszukiwanie przestrzeni rozwiązań, szukanie
POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb AUTOR: Krzysztof Górski PROWADZĄCY: Dr inŜ. Marek Piasecki Indeks: 133247 e-mail: [email protected] OCENA PRACY: Wrocław 2007 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Spis treści 1. WPROWADZENIE ..............................................................................................3 1.1 1.2 1.3 GENEZA PROBLEMU ...........................................................................................3 TERMINOLOGIA ..................................................................................................3 METODY PRZESZUKIWANIA ................................................................................4 2. PRZESZUKIWANIE NA ŚLEPO.......................................................................6 2.1 2.2 2.3 2.4 2.5 2.6 PRZESZUKIWANIE WSZERZ .................................................................................6 STRATEGIA JEDNOLITEGO KOSZTU .....................................................................7 PRZESZUKIWANIE WGŁĄB ..................................................................................8 PRZESZUKIWANIE OGRANICZONE WGŁĄB ...........................................................8 PRZESZUKIWANIE ITERACYJNIE POGŁĘBIANE .....................................................9 PRZESZUKIWANIE DWUKIERUNKOWE ...............................................................10 3. ZASTOSOWANIE ..............................................................................................11 4. PODSUMOWANIE ............................................................................................12 LITERATURA...........................................................................................................13 2 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 1. Wprowadzenie 1.1 Geneza problemu Na co dzień, często nie zastanawiając się nad tym, spotykamy się z problemami, które staramy się rozwiązać i uzyskać jak najlepszy wynik, który pozwoli nam zaoszczędzić czas lub cenne dla nas środki, bądź osiągnąć satysfakcję. MoŜe to być próba dostania się na drugi koniec miasta z dobrym rozplanowaniem przesiadek, bądź próba pokonania przeciwnika w jakiejś grze. Często nie jesteśmy sami w stanie objąć całej złoŜoności problemu, kierujemy się intuicją i wybrane przez nas rozwiązanie nie jest najlepszym z moŜliwych. Często jest na tyle dobre, Ŝe zaprzątanie sobie głowy rozwaŜaniami czy istnieje lepsze, nie ma sensu. 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 Terminologia Chcąc rozwiązać dany, rzeczywisty problem naleŜy określić co ma kluczowe znaczenie dla jego opisu, a które elementy nie są istotne lub nie mają znaczącego wpływu na jego istotę. Świat rzeczywisty jest zbyt skomplikowany aby odwzorowywać go w sposób jak najbardziej zbliŜony do rzeczywistości. Dlatego jednym z podstawowych zadań w trakcie formułowania problemu jest określenie modelu świata odpowiadającego potrzebie odwzorowania problemu w sposób moŜliwie precyzyjny, upraszczając lub pomijając niektóre aspekty. W celu przedstawienia reprezentacji problemu określa się jego następujące cechy: • stany – reprezentujące opisy roŜnych stanów świata rzeczywistego, • akcje – określające działania, które zmieniają stan bieŜący, • koszt akcji – w sytuacji gdy interesuje nas jakość rozwiązania, a akcje charakteryzują się roŜnymi kosztami ich wykonania. Ze względu na konieczność wykorzystania formalnych środków w celu rozwiązania problemu, przestrzeń stanów musi być niejako abstrakcyjna, wyrwana 3 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH z rzeczywistości, akcje natomiast reprezentują złoŜone operacje rzeczywiste. Zbiór stanów i akcji składa się na przestrzeń rozwiązań rozwaŜanego problemu. Gdy zdefiniowane zostały juŜ środki do opisu reprezentacji problemu, naleŜy określić pojęcia, które pozwolą na jego formalne sformułowanie: • Stan początkowy – stan przed rozwiązaniem problemu. • Cel – stan docelowy, lub zbiór stanów spełniających warunki postawionego zadania. • Rozwiązanie – ścieŜka bądź zbiór akcji prowadzących ze stanu początkowego do stanu docelowego. • Koszt rozwiązania – suma kosztów akcji składających się na rozwiązanie danego problemu. W zaleŜności od wybranego zadania, moŜemy szukać rozwiązania o najniŜszym lub najwyŜszym koszcie. Gdy po etapach określenia reprezentacji problemu i jego sformułowaniu, wybrana zostanie metoda rozwiązania, nim przystąpi się do jej implementacji warto zwrócić uwagę na pojęcie węzła. Węzeł jest strukturą danych i stanowi część przeszukiwanego drzewa. Charakteryzuje się poprzednikiem (rodzicem), następnikami (potomkami), głębokością oraz kosztem ścieŜki od korzenia. Elementów tych nie posiadają stany, a dane te są niezwykle waŜne przy implementacji przeszukiwania przestrzeni rozwiązań. 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, kierunkiem poruszania się po drzewie rozwiązań. Kolejny podział na podgrupy metod przeszukiwania moŜna przeprowadzić ze względu na rodzaj informacji wykorzystywanej 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 4 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH • Strategia jednolitego kosztu • Przeszukiwanie wgłąb • Przeszukiwanie ograniczone wgłąb • Przeszukiwanie iteracyjnie 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 jednoznacznie 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, przedstawionych w dalszej części, występują symbole: • b – maksymalne rozgałęzienie drzewa przeszukiwań, liczba akcji; • d – głębokość rozwiązania optymalnego; • m – maksymalna głębokość drzewa przeszukiwania; 5 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 2. Przeszukiwanie na ślepo Metody przeszukiwania na ślepo charakteryzują się wykorzystaniem tylko informacji zawartych w definicji problemu. Dzielą się one na trzy grupy: strategie warstwowe dokonujące ekspansji poziomej drzewa, strategie wgłębne eksplorujące drzewa w pionie oraz strategie łączące elementy z obu grup. 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 Metoda ta zawsze dostarcza rozwiązania o ile liczba akcji jaka moŜe zostać wykonana na danym stanie jest skończona. ZłoŜoność czasowa jest wykładnicza względem głębokości rozwiązania optymalnego i jest opisana wzorem: 1+b+b2+b3+…+bd+b(bd-1)=O(bd+1) W pamięci przechowywany jest kaŜdy odwiedzony do tej pory węzeł, stąd złoŜoność pamięciowa równieŜ jest zaleŜnością wykładniczą O(bd+1). O ile koszt kaŜdej akcji jaką moŜna wykonać jest taki sam, strategia ta dostarcza optymalne rozwiązanie. 6 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 2.2 Strategia jednolitego kosztu Metoda ta jest modyfikacją przeszukiwania wszerz, stosowaną w sytuacji, gdy akcje jakie moŜna wykonać charakteryzują się róŜnymi kosztami. Polega ona na ekspansji węzła o najmniejszym koszcie g spośród węzłów do tej pory nie rozwiniętych. Rys. 2. Strategia jednolitego kosztu O ile koszt wszystkich akcji jest większy lub równy od pewnego ε > 0, to metoda ta dostarcza rozwiązania. ZłoŜoność czasowa jest opisana liczbą węzłów, których koszt g jest mniejszy od kosztu C* optymalnego rozwiązania i jest rzędu O(b┌ C*/ε ┐). Podane oszacowanie opisuje równieŜ złoŜoność pamięciową tej metody. Strategia dostarcza optymalnego rozwiązania, gdyŜ porządkuje węzły w kolejności rosnącej względem g(n). 7 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 2.3 Przeszukiwanie wgłąb Jest to strategia wgłębna. Polega na ekspansji najgłębszego węzła, ze zbioru węzłów jeszcze nie rozszerzonych. Rys. 3. Przeszukiwanie wgłąb Strategia ta zawodzi w sytuacji, gdy przeszukiwana przestrzeń rozwiązań ma nieskończoną głębokość lub zawierających pętle. Po spełnieniu warunków eliminacji stanów powtarzających się wzdłuŜ ścieŜki i skończoności przestrzeni rozwiązań, metoda dostarcza rozwiązania. ZłoŜoność czasowa wynosi O(bm) i jest wykładnicza względem maksymalnej głębokości drzewa przeszukiwania. Metoda charakteryzuje się liniową złoŜonością pamięciową, która wynosi O(bm), jednak nie dostarcza ona optymalnego rozwiązania. 2.4 Jest Przeszukiwanie ograniczone wgłąb modyfikacją strategii przeszukiwania wgłąb. Przeszukiwanie ma ograniczoną głębokość l, czyli węzły na głębokości l nie mają potomków. Metoda znajduje rozwiązanie, o ile głębokość rozwiązania d jest mniejsza lub równa głębokości l. ZłoŜoność czasową opisuje O(bl), a złoŜoność pamięciową O(bl) – liniowa zaleŜność od ograniczenia głębokości. Tak samo jak w przypadku zwykłego przeszukiwania wgłąb, metoda ta nie dostarcza optymalnego rozwiązania. 8 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 2.5 Przeszukiwanie iteracyjnie pogłębiane W metodzie tej powtarzane jest przeszukiwanie wgłąb, przy czym ograniczenie na głębokość przeszukiwania l rośnie. Rys. 4. Przeszukiwanie iteracyjnie pogłębiane Strategia dostarcza rozwiązania, charakteryzuje się złoŜonością czasową zaleŜną wykładniczo od głębokości rozwiązania, opisaną wzorem: (d+1)b0+db1+(d-1)b2+…+bd=O(bd) ZłoŜoność pamięciowa jest liniowa i wynosi O(bd). Strategia dostarcza optymalnego rozwiązania, jęsli wszystkie akcje mają taki sam koszt. W przeciwnym wypadku, aby metoda dawała rozwiązanie optymalne, moŜna ją przekształcić do postaci, aby analizowała drzewo jednolitego kosztu. 9 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 2.6 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. Rys. 5. Przeszukiwanie dwukierunkowe Metoda zawsze dostarcza rozwiązania, o ile wykorzystano metodę przeszukiwania wszerz. PoniewaŜ w tej metodzie najwaŜniejsze jest znalezienie węzła naleŜącego do ścieŜki rozwiązania, leŜącego w jej połowie, złoŜoność czasową i pamięciową opisuje O(bd/2). Strategia dostarcza optymalnego rozwiązania w tych samych sytuacjach jak przeszukiwanie wszerz i zastosowanie strategii jednolitego kosztu, o ile odpowiednie strategie zostały zastosowane przy przeszukiwaniu w obu kierunkach. 10 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 3. Zastosowanie Metody przeszukiwania przestrzeni rozwiązań znajdują zastosowanie w implementacji sztucznej inteligencji w wielu grach, które da się reprezentować w postaci przestrzeni stanów i operatorów. Dotyczy to gier typu kółko i krzyŜyk, warcaby, szachy, puzzle 8 i 15 elementowe, NIM. W ich przypadku reprezentacja stanu gry i akcji moŜliwych do wykonania w pełni opisuje całą grę. W zaleŜności od rozmiaru drzewa gry, moŜliwa jest analiza całej przestrzeni rozwiązań lub tylko interesującego w danej chwili fragmentu. Często ograniczenia czasowe sprawiają, Ŝe nie jesteśmy w stanie zanalizować całego drzewa, wtedy w sukurs przychodzi nam metoda przeszukiwania ograniczonego wgłąb. Parametrem maksymalnej głębokości przeszukiwania przestrzeni rozwiązań moŜemy sterować szybkością reakcji komputerowego gracza, bądź poziomem jego umiejętności. Im przeciwnik dłuŜej „myśli”, tym trudniejszy do pokonania. 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. To wskazuje na potencjalną moŜliwość wykorzystania strategii jednolitego kosztu. Natomiast zastosowanie metody przeszukiwania z ograniczoną głębokością, nie tylko przyspieszy reakcje przeciwnika, lecz równieŜ zasymuluje ograniczoną widoczność na mapie, co wyrówna szanse gracza i komputera oraz pozytywnie wpłynie na realizm rozgrywki. 11 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH 4. Podsumowanie W zbiorze przedstawionych metod przeszukiwania przestrzeni rozwiązań znajdują się strategie o róŜnych własnościach, złoŜoności czasowej i zapotrzebowaniu na pamięć. Od charakterystyki problemu zaleŜy, która strategia jest w danym przypadku najlepsza. 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ń. Strategia jednolitego kosztu znajduje zastosowanie gdy akcje charakteryzują się róŜnymi wartościami kosztów. Przeszukiwanie wgłąb ma mniejsze zapotrzebowanie na pamięć, lecz nie zawsze dostarcza optymalnego rozwiązania i jest wraŜliwe na pętle i stany powtarzające się. Zabezpieczeniem przed fiaskiem tej metody w powyŜszym przypadku jest zastosowanie metody z ograniczoną głębokością. Przeszukiwanie dwukierunkowe pozwala na szybsze znalezienie rozwiązania, przy zuŜyciu mniejszej ilości zasobów, a dodatkowo pozwala zastosować metodę odpowiednią do rozwiązywanego problemu.. Bardzo interesujące z punktu widzenia złoŜoności czasowej i pamięciowej jest przeszukiwanie z iteracyjnym pogłębianiem. Liniowe zapotrzebowanie na pamięć, złoŜoność czasowa na poziomie pozostałych metod oraz fakt, Ŝe dostarcza optymalnego rozwiązania, sprawia, Ŝe jest to najlepsza metoda z przedstawionych w tym opracowaniu. Główną wadą wszystkich przedstawionych metod jest wykładnicza złoŜoność czasowa. Chcąc znajdować rozwiązania szybciej naleŜy zwrócić się w kierunku strategii heurystycznych, które co prawda nie dostarczają zawsze optymalnego rozwiązania, ale szybkość ich działania oraz jakość rozwiązania zbliŜona do najlepszego, sprawiają, Ŝe doskonale nadają się do przeszukiwania rozległych przestrzeni rozwiązań. 12 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Literatura A. Wojna, Przeszukiwanie przestrzeni stanów, http://www.mimuw.edu.pl/~awojna/SID S. Russell, P. Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall 2003, wydanie drugie G. Luger, Artificial Intelligence: structures and strategies for complex problem solving, Addison Wesley 2005, wydanie piąte T. Mitchell, Machine Learning, McGraw Hill 1997 13