1 / 26

ALGORYTMY ROZWIĄZYWANIA GIER C.D.

ALGORYTMY ROZWIĄZYWANIA GIER C.D. Algorytm „rozwiązywania” (slove) Algorytm PAB (Principal Variation Alfabeta) Algorytm rozpoznawania (scout) Algorytm SSS* Algorytm B* Porównanie wybranych algorytmów. Algorytm „rozwiązywania” (ang. slove).

geordi
Download Presentation

ALGORYTMY ROZWIĄZYWANIA GIER C.D.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORYTMY ROZWIĄZYWANIA GIER C.D. • Algorytm „rozwiązywania” (slove) • Algorytm PAB (Principal Variation Alfabeta) • Algorytm rozpoznawania (scout) • Algorytm SSS* • Algorytm B* • Porównanie wybranych algorytmów

  2. Algorytm „rozwiązywania” (ang. slove) Najprostsza metoda wyznaczania drzewa rozwiązania bez badania wszystkich wierzchołków

  3. Algorytm „rozwiązywania” (ang. slove) c.d. Dodatkowe założenie algorytmu: dopuszczalne są jedynie dwa stany liścia (WYGRANY albo PRZEGRANY) e(w) =

  4. Algorytm „rozwiązywania” (ang. slove) c.d.

  5. Algorytm PAB (Principal Variation Alfabeta) • zaprezentowany przez Fishburna i Finkela 1980-tym roku

  6. Algorytm PAB (Principal Variation Alfabeta) c.d. • Idea algorytmu: • wybieramy dowolną ścieżkę • przyjmujemy hipotezę, że wartość funkcji oceniającej na liściu tej ścieżki jest równa wartości minimxowej korzenia • sprawdzamy hipotezę • jeżeli znajdziemy lepsze alternatywy: uruchamiamy algorytm alfa-beta

  7. Algorytm rozpoznawania (ang. scout) • zaprojektowany przez J. Pearla • opiera się na podobnej idei co PAB • wykorzystywany do teoretycznej analizy drzew gier • w algorytmie wykorzystywane są testy

  8. Algorytm rozpoznawania (ang. scout) c.d. TESTY: Celem testów jest rozstrzygnięcie czy węzeł powinien być dokładnie analizowany czy nie. Funkcja testowania może mieć schemat podobny do algorytmu „rozwiązywania”

  9. Algorytm rozpoznawania (ang. scout) c.d. • Algorytm ten jest: • stosunkowo łatwy do analizy teoretycznej • bardziej efektywny gdy rośnie głębokość drzewa badanych gier

  10. Algorytm SSS* (State space search) • 1979 r. Stockman • z rodziny A* • wg. Zasady „najpierw najlepszy” (best first) • poszukuje optymalnego drzewa rozwiązania • reprezentacja optymalnej strategii gracza • przypomina metody heurystycznego przeszukiwania

  11. Algorytm SSS* c.d. • węzeł „w” drzewa analizowany jest z punktu widzenia zbioru poddrzew z korzeniem „w” • na podstawie wartości liści takich poddrzew ustala się ich główne ograniczenia • poddrzewo o największym górnym ograniczeniu analizowane jest jako pierwsze • zakończenie przeszukiwania następuje w chwili znalezienia pierwszego drzewa rozwiązania

  12. Algorytm SSS* c.d. Z każdym węzłem „w” związana jest informacja s(w) oraz liczba h(w). Funkcja s(w) jest dwuwartościowa: s(w) = Liczba h(w) jest wartością przypisywaną węzłowi „w” podczas wykonywania algorytmu

  13. Algorytm SSS* c.d. Przykład planszy gry testowej (4x4) dla algorytmu SSS*

  14. Algorytm SSS* c.d. Tworzenie węzłów w trakcie działania SSS* rozpoczynamy od węzła początkowego (0) i jego potomków (1) i (2). Każdy z nich reprezentuje grupę drzew rozwiązania

  15. W przypadku występowania kilku węzłów o tej samej wartości jako pierwszy do dalszej analizy wybrany zostanie węzeł położony najbardziej na lewo Algorytm SSS* c.d.

  16. Algorytm SSS* c.d.

  17. Algorytm SSS* c.d. Zaleta: wyznacza jako pierwsze optymalne drzewo rozwiązania Wady: skomplikowana struktura, olbrzymie wymagania pamięciowe

  18. Algorytm B* • opublikowany przez Hansa Berlinera w 1979-tym roku. • funkcja heurystyczna zwraca dwie wartości (pesymistyczną i optymistyczną ocenę pozycji) • znajduje najlepsze posunięcie

  19. Algorytm B* c.d. Dwie strategie: PROVEBEST I DISPROVEREST Koniec algorytmu: pesymistyczna wartość jednego posunięcia >= optymistycznym wartościom pozostałych

  20. Algorytm B* c.d. PROVEBEST: pewne posunięcie jest lepsze od pozostałych DISPROVEREST: wszystkie posunięcia są od jednego wybranego

  21. Algorytm B* c.d. Wybór węzła do dalszego rozpatrywania: PROVEBEST bada poddrzewo związane z założonym najlepszym posunięciem DISPROVEREST bada poddrzewo związane z pewnym hipotetycznie słabym posunięciem

  22. Porównanie wybranych algorytmów Analizujemy wariant gry na planszy 8x8 z liczbami dodatnimi z przedziału <1, 9> i ujemnymi z przedziału <-9, -1>

  23. Porównanie wybranych algorytmów c.d. Przykładowa plansza gry

  24. Porównanie wybranych algorytmów c.d. Algorytm SSS* lepszy w 58% przypadków Algorytm alfa-beta był lepszy 37% przypadków 5% wynik identyczny 5% przypadków algorytm „rozpoznawania” charakteryzował się mniejszą liczbą przetestowanych i wartościowanych wierzchołków w porównaniu z liczbą badanych wierzchołków w algorytmie alfa-beta W pozostałych przypadkach w trakcie wykonywania algorytmu „rozpoznawania” liście były testowane wielokrotnie

  25. KONIEC

More Related