Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk.

Podobne prezentacje


Prezentacja na temat: "Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk."— Zapis prezentacji:

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 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów Plan prezentacji Go 9x9 Zastosowanie sieci neuronowych Nauka sieci neuronowych Struktury danych Modyfikacje algorytmu alfa-beta

3 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

4 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

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

6 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

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

8 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów Konstrukcja sieci – wariacja podstawowa neurony wejściowe – po 2 na każde pole 2. 9 x 5 neuronów, każda piątka zbiera informacje z jednego regionu planszy + 10 neuronów zbierających kontekst globalny 3. 9 x 5 neuronów, każda piątka połączona z odpowiednią piątką z poprzedniej warstwy i 10 neuronami globalnymi + 15 neuronów połączonych z całą poprzednią warstwą neuronów wyjściowych

9 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

10 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

11 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

12 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

13 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

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

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

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

17 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów Algorytm Bouzyego – c.d. 3. 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)

18 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów Algorytm Bouzyego - przykład Po 2 operacjach dilation:

19 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów Algorytm Bouzyego - przykład Po 3 operacjach dilation i 7 erosion: Czyli te 2 kamienie otaczają 1 pole terytorium

20 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

21 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

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

23 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

24 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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ć

25 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

26 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

27 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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ę

28 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów 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

29 Dziękujemy za uwagę Czas na pytania…


Pobierz ppt "Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk."

Podobne prezentacje


Reklamy Google