ALG 7

ALG 7



10,5. Algorytm Floyda_257

10.6.Przeszukiwanie grafów

Dużo interesujących zadań algorytmicznych, w których użyto grafu do modelowania pewnej sytuacji, wymaga systematycznego przeszukiwania grafu, „ślepego” lub kierującego się pewnymi zasadami praktycznymi (tzw. heurysty-kami). W szczególności temat ten jest przydatny w'e wszelkich zagadnieniach związanymi z tzw'. teorią gier. ale do tej kwestii jeszcze powrócimy w rozdziale 12. Teraz skupimy się na dwóch najprostszych technikach przechadzania się po grafach: strategii „w głąb” (ang. depth first) i strategii „wszerz” (ang. breadth first). Analizując przykłady, będziemy się koncentrować na samym procesie przeszukiwania. bez zastanawiania się znad jego celowością. Pamiętajmy zatem, że w ostateczności przeszukiwanie grafit nut „czemuś" służyć: odnaleźć optymalną strategię gry, rozwiązać łamigłówkę lub konkretny problem techniczny przedstawiony przy pomocy grafów...

Uwaga: nasze przykłady będą używały wyłącznie reprezentacji tablicowej grafów Zabieg ten pozwala na uproszczenie prezentowanych przykładów, ale należy pamiętać, że nie jest to jedyna możliwa reprezentacja! W przypadku algorytmów przeszukiwania dla bardzo dużych grafów użycie tablic jest niemożliwe. Jedynym wyjściem w takiej sytuacji jest użycie reprezentacji popartej na słowniku węzłów. Wiąże się z tym modyfikacja wspomnianych algorytmów, zatem dla ułatwienia zostaną również podane w pseudo-kodzie, tak aby możliwe było ich przepisanie na użytek kon-kretnej struktury danych. _


10.6.1.Strategia „w głąb”

Nazwa tytułowej techniki eksploracji grafów jest związana z topologicznym kształtem ścieżek, po których się przechadzamy podczas badania grafu. Algorytm przeszukiwania „w głąb” bada daną drogę, aż do jej całkowitego wyczerpania (w przeciwieństwie do algorytmu „wszerz”, który najpierw bada wszystkie poziomy grafu o jednakowej głębokości)1. Jego cechą przewodnią jest zatem maksymalnii eksploatacja raz obranej drogi, przed ewentualnym wybraniem następnej.

Rysunek 10 - 10. przedstawia niewielki graf, który posłuży nam za ilustrację problemu.

W naszej dotychczasowej dyskusji na temat grafów nie używaliśmy, co prawda, zacytowanej powyżej terminologii, ale jej znaczenie powinno się szybko wyjaśnić podczas analizy konkretnych przykładów.


Wyszukiwarka

Podobne podstrony:
ALG 5 10.5. Algorytm Floyda 255 •    W/iJ]~wartość przypisana krawędzi lub00 (inaczej
ALG 3 10.4. Algorytm Roy-Warshalla 253 Algorytm Roy-Warshalla może być w dość prosty sposób zmodyfik
10 Algorytm Floyda-Warshalla Rozważmy graf G — (V,E), w którym z każdą krawędzią skojarzono nieujemn
ALG$9 10.2. Sposoby reprezentacji grafów 249 10.2. Sposoby reprezentacji grafów 249 Rys. 10- 5. a)
ALG 9 116. Przeszukiwanie grafów    259 zwiedzaj(i) ( zaznacz ’i jako
ALG&1 10 6 Przeszukiwanie gratów 261 { V:ki=l;    // zaznaczamy k jako
ALG&5 10.7. Problem właściwego doboru_ 265 Algorytm doboru można zamknąć w rozbudowanej funkcji inci
Sztuczna inteligencja 110.    Metody przeszukiwania grafów i przykładowe ich
202 203 202 X    V 5.11.5. Mnożenie binarna Jak pamiętam? (patrz p. 1.2.10), algorytm
202 203 202X    Y 5.11.3. Mnożenie binarne Jak pamiętamy (patrz p. 1.2.10), algorytm
10.2.1. Algorytm wyznoczonlo dondrytu dróg najdłuższych O o n c x Siać cklorowann boz dróg cykliczny
DSC00303 (8) ip.ł. DROPI PROSTR. BK3TKBMAŁNB W SIECIACH ACYKLICZNYCH 10.2.1. Algorytm wyznaczania ma
DSC00304 (9) 10,3. OROOl PROSTE, ■KmUlMAt.Nt W SIECIACH CYKLICZNYCH 10.3.1. Algorytm wyznaczania mak
METODY HEURYSTYCZNEProtokół do ćwiczenia 1: Przeszukiwanie grafów cz. 1 - strategie ślepe Imię i
30602 RZYM 107 że w innych okolicznościach miałby dużo do powiedze nia. — Ale chcę coś wyjaśnić w z

więcej podobnych podstron