Title: Problem wstepnego sortowania ruch
1Problem wstepnego sortowania ruchów w programie
grajacym w gre dwuosobowa
- Magda Kusiak
- Karol Waledzik
- prof. dr hab. Jacek Mandziuk
2Plan prezentacji
- Go 9x9
- Zastosowanie sieci neuronowych
- Nauka sieci neuronowych
- Struktury danych
- Modyfikacje algorytmu alfa-beta
3Zasady
- Plansza 9x9
- Ko
- Zakaz jedynie cykli o dlugosci 2 (uzupelniony
limitem ruchów w partii) - Zakaz samobójstw
- Punktacja terytorium wlasne kamienie
4Konsekwencje
- Rzad drzewa gry
- 81 w pierwszym ruchu
- malejacy w kolejnych
- Glebokosc drzewa
- kilkadziesiat ruchów
- Wniosek
- Jest nadzieja, ze algorytm alfa-beta z dobrym
sortowaniem ruchów okaze sie wystarczajacy
5Nasz wersja AI
- Dla kazdego rozpatrywanego wezla
- Przyporzadkowujemy kazdemu ruchowi wartosc
okreslajaca jego jakosc - Algorytm alfa-beta rozpatruje kilkanascie ruchów,
zaczynajac od najlepszych - W lisciach drzewa przeszukiwan uruchamiamy
heurystyke przewidujaca koncowy podzial planszy
6Sieci neuronowe
- Pierwsza siec kazdemu ruchowi mozliwemu w danej
sytuacji przyporzadkowuje wartosc okreslajaca,
jak korzystny jest ten ruch - Druga siec ocenia pozycje, próbujac przewidziec,
jaki bedzie podzial planszy po zakonczeniu gry
7Konstrukcja sieci neuronowych
8Konstrukcja sieci wariacja podstawowa
- 162 neurony wejsciowe po 2 na kazde pole
- 9 x 5 neuronów, kazda piatka zbiera informacje z
jednego regionu planszy 10 neuronów
zbierajacych kontekst globalny - 9 x 5 neuronów, kazda piatka polaczona z
odpowiednia piatka z poprzedniej warstwy i 10
neuronami globalnymi 15 neuronów polaczonych z
cala poprzednia warstwa - 81 neuronów wyjsciowych
9Wejscie i wyjscie sieci
- Wejsciem obu sieci jest pozycja na planszy (dwa
neurony na kazde pole) - Pierwsza siec zwraca dla wszystkich pól wartosci
z przedzialu 0,1 okreslajace zasadnosc
wykonania ruchu na danym polu - Druga siec zwraca wartosci z przedzialu -1,1
oznaczajace kolor gracza, do którego dane pole
bedzie nalezalo po zakonczeniu gry
10Nauka sieci
- Algorytm back-propagation
- Nauka nasladownictwa programu grajacego w Go (np.
GNUGo) lub gier profesjonalistów - Wiele schematów nauki do przetestowania
11Nauka sieci c.d.
- Nauka na podstawie gier profesjonalnych pomysl
najprostszy - Wektory wzorcowe skladajace sie z samych zer i
jednej jedynki w miejscu ruchu profesjonalisty - Problem moze istniec kilka dobrych ruchów o
bardzo podobnej jakosci. Profesjonalista wybral
tylko jeden z nich reszta zostanie potraktowana
na równi z ruchami ewidentnie zlymi
12Nauka sieci c.d.
- Jeden z pomyslów rozwiazania
- Wstepna nauka na bazie programu podajacego w
danej sytuacji ocene wszystkich mozliwych ruchów - Program GNU Go
- Pozycje wykorzystywane do nauki generowane
poprzez rozegranie fragmentu gry przez GNU Go z
losowymi ustawieniami jakosci gry - GNU Go wykorzystywane takze do predykcji podzialu
planszy po zakonczeniu gry
13Nauka sieci c.d.
- Douczanie z wykorzystaniem gier profesjonalistów
- Wektor wzorcowy zalezny od odpowiedzi sieci
- Jesli siec dobrze wskaze najlepszy ruch, jako
wektor wzorcowy podajemy wynik jej dzialania, ew.
odsuwajac najlepszy ruch od pozostalych - w ten
sposób akcentujemy najlepsze rozwiazanie, ale nie
tracimy pozostalych - W p.p. rozsuniecie musi byc silniejsze
wartosc ruchu profesjonalisty przemnazana jest
przez wspólczynnik gt1 proporcjonalny do jej
odleglosci od najwyzej ocenionego ruchu,
pozostale wartosci sa mnozone przez wspólczynnik
lt1
14Heurystyka
- Siec przewidujaca podzial planszy moze byc albo
- douczana na podstawie gier profesjonalnych
- albo
- uzupelniana funkcja wplywu / algorytmem Bouzyego
15Algorytm Bouzyego
- 2 rodzaje operacji dilation i erosion
- Do wyznaczania terytorium stosuje sie zwykle
wersje algorytmu 5/21 - 5 operacji dilation
- 21 operacji erosion
16Algorytm Bouzyego c.d.
- Przypisz wysoka wartosc na pozycjach z kamieniami
czarnymi i jej odwrotnosc z bialymi oraz 0
polom pustym - Wykonaj n operacji dilation
- Do kazdego pola o wartosci gt0 (lt0), nie
sasiadujacego z polem lt0 (gt0) dodaj (odejmij)
liczbe sasiadów gt0 (lt0)
17Algorytm Bouzyego c.d.
- Wykonaj m operacji erosion
- Od kazdego pola o wartosci gt0 (lt0), odejmij
(dodaj) liczbe sasiadów lt0 - Liczba operacji powinna wynosic n/(1n(n-1)), by
pojedynczy kamien nie generowal terytorium i stad
wybór 5/21 (4/13 nie zawsze jest wystarczajace)
18Algorytm Bouzyego - przyklad
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
19Algorytm Bouzyego - przyklad
128 0 128
Po 3 operacjach dilation i 7 erosion
132 8 132
Czyli te 2 kamienie otaczaja 1 pole terytorium
20Struktury danych
- Stuktura planszy powinna zawierac
- informacje o zawartosci dla kazdego pola wraz z
identyfikatorem grupy (dla niepustych pól) - liczbe liberties kazdej z grup
- historie ruchów
21Struktury danych
- Dla celów porównywania sytuacji (z lub bez
uwzgledniania izomorfizmu), przechowywania ich w
transposition tables i podawania sieci neuronowej
wprowadzana jest struktura skompresowana planszy
22Skompresowany opis sytuacji
23Skompresowany opis sytuacji
- Pelen opis planszy to mniej niz 21 bajtów
- 64 bity na zewnetrzny kwadrat
- 48 bitów na kolejny
- 32 bitów na kolejny
- 16 bitów na przedostatni
- 2 bity na srodkowe pole
24Skompresowany opis sytuacji
- Obrót planszy wymaga jedynie kilku obrotów
bitowych skladowych opisu - Izomorfizm wzgledem obrotów latwo uzyskac
wprowadzajac funkcje wyznacznika naroznego
obszaru planszy i obracajac tak, by uzyskac
maksimum w konkretnym narozniku - Analogicznie dokonac mozna odbic
25Skompresowany opis sytuacji
- Pomysly na funkcje wyznacznika dla naroznego
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 kazdej szesnastce
okreslajaca liczbe kamieni kazdego z kolorów
26Modyfikacje algorytmu alfa-beta
- Iterative deepening
- Transposition tables
- byc moze przechowujace dla kazdej pozycji
wszystkie ruchy zaproponowane przez siec wraz z
ocenami - Aspiration search
- Principal variation
- History heuristic
27Modyfikacje algorytmu alfa-beta
- Aspiration search
- Kolejne przeszukiwania rozpoczynane sa z oknami
zawezonymi na podstawie dotychczasowych
informacji - Principal variation
- Przyjmujac zalozenie, ze sortowanie ruchów do
przeanalizowania jest wlasciwe, mozna dla
drugiego i dalszych ruchów wykorzystac
przeszukiwanie z zerowym oknem, by zweryfikowac
te hipoteze
28History heuristic
- Za kazdym razem, gdy dany ruch okaze sie
najlepszym jaki mozna wykonac, zwiekszana jest
jego wartosc - Wartosc ta wykorzystywana jest do sortowania
ruchów do analizy (w naszym przypadku po
zsumowaniu z ocenami wygenerowanymi przez siec) - Wartosc ruchu powinna byc zwiekszana
proporcjonalnie do glebokosci przeszukiwania,
które wykazalo, ze jest on najlepszym z mozliwych
29Dziekujemy za uwageCzas na pytania