Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Metody przeszukiwania przestrzeni

2,454 views

Published on

Podstawy przeszukiwania grafów z przykładem kodu

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

Metody przeszukiwania przestrzeni

  1. 1. Metody przeszukiwania przestrzeni<br />Dawid Cieszyński<br />http://cieszak.eu<br />
  2. 2. Agenda<br />Sposób na rozwiązywanie problemów<br />Algorytm rozwiązywania<br />Wybrane strategie<br />Narzędzia<br />Podsumowanie<br />
  3. 3. Twierdzenie o kojarzeniu małżeństw<br />Problem komiwojażera<br />Problem chińskiego listonosza<br />Problem marszrutyzacji<br />Rozwiązywanie problemów<br />
  4. 4. Algorytm przeszukiwania przestrzeni <br />At – zbiór węzłów do odwiedzenia<br />Vt – zbiór węzłów odwiedzonych<br />st – bieżący węzeł<br />t = 0<br />V0 = {s0}<br />At=N(s0)<br />Powtarzaj {<br />Wybierz st+1 z At<br />Vt+1 = Vt U {st+1}<br />t = t + 1<br />} Dopóki niespełniony warunek zatrzymania<br />N(st) – funkcja zwracająca sąsiadów wezła st<br />
  5. 5. Strategie przeszukiwania przestrzeni<br />Strategie ślepe<br />W głąb<br />Wszerz<br />Strategie z funkcją oceny(„najpierw najlepszy”)<br />Równomiernego kosztu (zysku) <br />Wykorzystujące funkcję heurystyczną:<br />zachłanna<br />A*<br />
  6. 6. Strategie ślepe<br />
  7. 7. Przeszukiwanie w głąb(Depth-first search)<br />Przeszukiwanie zaczyna się od korzenia i porusza się w dół do samego końca gałęzi, po czym wraca się o jeden poziom i próbuje kolejne gałęzie itd.<br />Zbiór Atjest reprezentowany jako kolejka LIFO (stos)<br />
  8. 8. Przeszukiwanie wszerz(Breadth-first search) <br />Algorytm zaczyna od korzenia i odwiedza wszystkie połączone z nim węzły. Następnie odwiedza węzły połączone z tymi węzłami i tak dalej, aż do odnalezienia celu.<br />zbiór Atjest kolejką FIFO <br />
  9. 9. Strategie z funkcją oceny<br />
  10. 10. Funkcja oceny węzła<br />g: S -> R<br />Problem plecakowy<br />
  11. 11. Równomiernego kosztu (zysku) <br />5<br />8<br />7<br />3<br />4<br />1<br />6<br />2<br />
  12. 12. Funkcja heurystyczna<br />h: S -> R<br />Przykłady funkcji heurystycznych:<br /><ul><li>Odległość geograficzna
  13. 13. Problem plecakowy: „Największy obiekt, który się jeszcze zmieści”
  14. 14. Piętnastka/Dzięwiątka: „Ilość ruchów potrzebnych do przemieszczenia liczby na właściwąpozycję”</li></li></ul><li>A*<br />Algorytm A* od wierzchołka początkowego tworzy ścieżkę, za każdym razem wybierając wierzchołek x z dostępnych w danym kroku niezbadanych wierzchołków tak, by minimalizować funkcję f(x) zdefiniowaną:f(x) = g(x) + h(x)gdzie:g(x) – droga pomiędzy wierzchołkiem początkowym a x. Dokładniej: suma wag krawędzi, które należą już do ścieżki plus waga krawędzi łączącej aktualny węzeł z x.<br /> h(x) – przewidywana przez heurystykę droga od x do wierzchołka docelowego.<br />W każdym kroku algorytm dołącza do ścieżki wierzchołek o najniższym współczynniku f. Kończy w momencie natrafienia na wierzchołek będący wierzchołkiem docelowym.<br />
  15. 15. Metoda zachłanna<br />g(s) + h(s)<br />
  16. 16. Demo<br />Przykładowy problem<br />
  17. 17. 1<br />2<br />3<br />4<br />9<br />10<br />5<br />0<br />11<br />7<br />16<br />6<br />8<br />21<br />15<br />12<br />22<br />13<br />18<br />14<br />17<br />19<br />20<br />
  18. 18. Narzędzia<br />Graphviz-Graph Visualization Software<br /><ul><li>http://www.graphviz.org/</li></li></ul><li>Narzędzia<br />QuickGraph: A 100% C# graph library with Graphviz Support.<br /><ul><li>http://quickgraph.codeplex.com/documentation</li></li></ul><li>Narzędzia<br />A+ Pathfinding Algorithm<br />http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=62790&lngWId=1<br />
  19. 19. Podsumowanie<br />Różne metody, w zależności od problemu<br />Gotowe narzędzia do obsługi grafów wraz z gotowymi strategiami<br />
  20. 20. Dziękuję za uwagę<br />Metody przeszukiwania przestrzeni<br /><ul><li>http://mediawiki.ilab.pl/index.php/Sztuczna_inteligencja/SI_Moduł_5_-_Wnioskowanie_jako_metoda_przeszukiwania
  21. 21. http://mediawiki.ilab.pl/index.php/Sztuczna_inteligencja/SI_Modu%C5%82_6
  22. 22. http://pl.wikipedia.org/wiki/Przeszukiwanie_grafu
  23. 23. http://aragorn.pb.bialystok.pl/~radev/ai/se/zal/ready/kossakowska.htm</li></ul>Źródła rysunków:<br /><ul><li>http://mediawiki.ilab.pl/index.php/Sztuczna_inteligencja/SI_Modu%C5%82_5_-_Wnioskowanie_jako_metoda_przeszukiwania
  24. 24. http://tapety.tja.pl/tapeta_37627.html
  25. 25. http://www.nexto.pl/e-ksiazki/arkusze_oceny_okresowej_pracownika_-_ebook_p2186.xml
  26. 26. http://www.bing.com/maps/</li>

×