problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową
DESCRIPTION
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: - PowerPoint PPT PresentationTRANSCRIPT
Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową
Magda KusiakKarol Walędzik
prof. dr hab. Jacek Mańdziuk
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 204-01-2006
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 ... 304-01-2006
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 ... 404-01-2006
Konsekwencje
Rząd drzewa gry:81 w pierwszym ruchumaleją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 ... 504-01-2006
Nasz wersja AI
Dla każdego rozpatrywanego węzła1. 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
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 604-01-2006
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 ... 704-01-2006
Konstrukcja sieci neuronowych
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 904-01-2006
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 ... 1004-01-2006
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 ... 1104-01-2006
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 ... 1204-01-2006
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 ... 1304-01-2006
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 ... 1404-01-2006
Heurystyka
Sieć przewidująca podział planszy może być albodouczana na podstawie gier profesjonalnych
albouzupełniana funkcją wpływu / algorytmem
Bouzy’ego
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 1504-01-2006
Algorytm Bouzy’ego
2 rodzaje operacji: dilation i erosion Do wyznaczania terytorium stosuje się
zwykle wersję algorytmu 5/21:5 operacji dilation21 operacji erosion
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 1604-01-2006
Algorytm Bouzy’ego – 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), 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 ... 1704-01-2006
Algorytm Bouzy’ego – 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)
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 1804-01-2006
Algorytm Bouzy’ego - przykład
128 0 128
1 1
2 2 3 2 2
1 2 132 4 132 2 1
2 2 3 2 2
1 1
Po 2 operacjach dilation:
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 1904-01-2006
Algorytm Bouzy’ego - przykład
128 0 128
132 8 132
Po 3 operacjach dilation i 7 erosion:
Czyli te 2 kamienie otaczają 1 pole terytorium
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 2004-01-2006
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 gruphistorię ruchów
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 2104-01-2006
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 ... 2204-01-2006
Skompresowany opis sytuacji
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 2304-01-2006
Skompresowany opis sytuacji
Pełen opis planszy to mniej niż 21 bajtów:64 bity na zewnętrzny kwadrat48 bitów na kolejny32 bitów na kolejny16 bitów na przedostatni2 bity na środkowe pole
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ... 2404-01-2006
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 ... 2504-01-2006
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 ... 2604-01-2006
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 ... 2704-01-2006
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 ... 2804-01-2006
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
Dziękujemy za uwagę
Czas na pytania…