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