1 / 28

Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową

Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową. Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk. Plan prezentacji. Go 9x9 Zastosowanie sieci neuronowych Nauka sieci neuronowych Struktury danych Modyfikacje algorytmu alfa-beta. Zasady. Plansza 9x9 Ko:

hazina
Download Presentation

Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową

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. Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk

  2. Plan prezentacji • Go 9x9 • Zastosowanie sieci neuronowych • Nauka sieci neuronowych • Struktury danych • Modyfikacje algorytmu alfa-beta Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  3. Zasady • Plansza 9x9 • Ko: • Zakaz jedynie cykli o długości 2 (uzupełniony limitem ruchów w partii) • Zakaz samobójstw • Punktacja: terytorium + własne kamienie Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  4. Konsekwencje • Rząd drzewa gry: • 81 w pierwszym ruchu • malejący w kolejnych • Głębokość drzewa: • kilkadziesiąt ruchów • Wniosek: • Jest nadzieja, że algorytm alfa-beta z dobrym sortowaniem ruchów okaże się wystarczający Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  5. Nasz wersja AI Dla każdego rozpatrywanego węzła • Przyporządkowujemy każdemu ruchowi wartość określającą jego jakość • Algorytm alfa-beta rozpatruje kilkanaście ruchów, zaczynając od najlepszych • W liściach drzewa przeszukiwań uruchamiamy heurystykę przewidującą końcowy podział planszy Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  6. Sieci neuronowe • Pierwsza sieć każdemu ruchowi możliwemu w danej sytuacji przyporządkowuje wartość określającą, jak korzystny jest ten ruch • Druga sieć ocenia pozycję, próbując przewidzieć, jaki będzie podział planszy po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  7. Konstrukcja sieci neuronowych Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  8. Wejście i wyjście sieci • Wejściem obu sieci jest pozycja na planszy (dwa neurony na każde pole) • Pierwsza sieć zwraca dla wszystkich pól wartości z przedziału [0,1] określające zasadność wykonania ruchu na danym polu • Druga sieć zwraca wartości z przedziału [-1,1] oznaczające kolor gracza, do którego dane pole będzie należało po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  9. Nauka sieci • Algorytm back-propagation • Nauka naśladownictwa programu grającego w Go (np. GNUGo) lub gier profesjonalistów • Wiele schematów nauki do przetestowania Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  10. Nauka sieci – c.d. • Nauka na podstawie gier profesjonalnych – pomysł najprostszy: • Wektory wzorcowe składające się z samych zer i jednej jedynki w miejscu ruchu profesjonalisty • Problem – może istnieć kilka dobrych ruchów o bardzo podobnej jakości. Profesjonalista wybrał tylko jeden z nich – reszta zostanie potraktowana na równi z ruchami ewidentnie złymi Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  11. Nauka sieci – c.d. • Jeden z pomysłów rozwiązania: • Wstępna nauka na bazie programu podającego w danej sytuacji ocenę wszystkich możliwych ruchów • Program GNU Go • Pozycje wykorzystywane do nauki generowane poprzez rozegranie fragmentu gry przez GNU Go z losowymi ustawieniami jakości gry • GNU Go wykorzystywane także do predykcji podziału planszy po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  12. Nauka sieci – c.d. • Douczanie z wykorzystaniem gier profesjonalistów: • Wektor wzorcowy zależny od odpowiedzi sieci • Jeśli sieć dobrze wskaże najlepszy ruch, jako wektor wzorcowy podajemy wynik jej działania, ew. „odsuwając” najlepszy ruch od pozostałych - w ten sposób akcentujemy najlepsze rozwiązanie, ale nie tracimy pozostałych • W p.p. „rozsunięcie” musi być silniejsze – wartość ruchu profesjonalisty przemnażana jest przez współczynnik >1 proporcjonalny do jej odległości od najwyżej ocenionego ruchu, pozostałe wartości są mnożone przez współczynnik <1 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  13. Heurystyka • Sieć przewidująca podział planszy może być albo • douczana na podstawie gier profesjonalnych albo • uzupełniana funkcją wpływu / algorytmem Bouzy’ego Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  14. Algorytm Bouzy’ego • 2 rodzaje operacji: dilation i erosion • Do wyznaczania terytorium stosuje się zwykle wersję algorytmu 5/21: • 5 operacji dilation • 21 operacji erosion Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  15. Algorytm Bouzy’ego – c.d. • Przypisz wysoką wartość na pozycjach z kamieniami czarnymi i jej odwrotność z białymi oraz 0 – polom pustym • Wykonaj n operacji dilation: • Do każdego pola o wartości >=0 (<=0), nie sąsiadującego z polem <0 (>0) dodaj (odejmij) liczbę sąsiadów >0 (<0) Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  16. Algorytm Bouzy’ego – c.d. • Wykonaj m operacji erosion: • Od każdego pola o wartości >0 (<0), odejmij (dodaj) liczbę sąsiadów <=0 • Liczba operacji powinna wynosić n/(1+n(n-1)), by pojedynczy kamień nie generował terytorium i stąd wybór 5/21 (4/13 nie zawsze jest wystarczające) Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  17. Algorytm Bouzy’ego - przykład 128 0 128 Po 2 operacjach dilation: 1 1 2 2 3 2 2 1 2 132 4 132 2 1 2 2 3 2 2 1 1 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  18. Algorytm Bouzy’ego - przykład 128 0 128 Po 3 operacjach dilation i 7 erosion: 132 8 132 Czyli te 2 kamienie otaczają 1 pole terytorium Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  19. Struktury danych • Stuktura planszy powinna zawierać: • informację o zawartości dla każdego pola wraz z identyfikatorem grupy (dla niepustych pól) • liczbę liberties każdej z grup • historię ruchów Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  20. Struktury danych • Dla celów porównywania sytuacji (z lub bez uwzględniania izomorfizmu), przechowywania ich w transposition tables i podawania sieci neuronowej wprowadzana jest struktura skompresowana planszy Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  21. Skompresowany opis sytuacji Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  22. Skompresowany opis sytuacji • Pełen opis planszy to mniej niż 21 bajtów: • 64 bity na zewnętrzny kwadrat • 48 bitów na kolejny • 32 bitów na kolejny • 16 bitów na przedostatni • 2 bity na środkowe pole Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  23. Skompresowany opis sytuacji • Obrót planszy wymaga jedynie kilku obrotów bitowych składowych opisu • Izomorfizm względem obrotów łatwo uzyskać wprowadzając funkcję wyznacznika narożnego obszaru planszy i obracając tak, by uzyskać maksimum w konkretnym narożniku • Analogicznie dokonać można odbić Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  24. Skompresowany opis sytuacji • Pomysły na funkcję wyznacznika dla narożnego obszaru 4x4: • Kombinacja liniowa liczb kamieni obu graczy • Z wagami przeciwnych znaków (np. 1 i -0.99) • Z wagami tych samych znaków (np.. 1 i 0.99) • 32 bity, liczba jedynek w każdej szesnastce określająca liczbę kamieni każdego z kolorów Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  25. Modyfikacje algorytmu alfa-beta • Iterative deepening • Transposition tables • być może przechowujące dla każdej pozycji wszystkie ruchy zaproponowane przez sieć wraz z ocenami • Aspiration search • Principal variation • History heuristic Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  26. Modyfikacje algorytmu alfa-beta • Aspiration search • Kolejne przeszukiwania rozpoczynane są z oknami zawężonymi na podstawie dotychczasowych informacji • Principal variation • Przyjmując założenie, że sortowanie ruchów do przeanalizowania jest właściwe, można dla drugiego i dalszych ruchów wykorzystać przeszukiwanie z zerowym oknem, by zweryfikować tę hipotezę Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  27. History heuristic • Za każdym razem, gdy dany ruch okaże się najlepszym jaki można wykonać, zwiększana jest jego wartość • Wartość ta wykorzystywana jest do sortowania ruchów do analizy (w naszym przypadku po zsumowaniu z ocenami wygenerowanymi przez sieć) • Wartość ruchu powinna być zwiększana proporcjonalnie do głębokości przeszukiwania, które wykazało, że jest on najlepszym z możliwych Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...

  28. Dziękujemy za uwagęCzas na pytania…

More Related