Podejście symulacyjno-heurystyczne w kierunku

Download Report

Transcript Podejście symulacyjno-heurystyczne w kierunku

Podejście symulacyjno-heurystyczne
w kierunku stworzenia
wszechstronnego gracza GGP
mgr inż. Maciej Świechowski
koordynator: prof. nzw dr hab. Jacek Mańdziuk
Plan prezentacji
Wprowadzenie do GGP
Opis modelu i języka definicji gry
Najskuteczniejsi gracze
Moje podejście – opis algorytmu
Podsumowanie
General Game Playing (GGP)
 Idea:
Stworzenie programu (gracza), który będzie potrafił efektywnie grać w nieznaną
sobie wcześniej grę.
 Motywacja:
Większe pole do popisu dla metod sztucznej inteligencji, a nie tylko wyspecjalizowanych
algorytmów pod konkretny problem.
Metoda ciekawsza z punktu widzenia nauki, ponieważ w bardzo ogólny sposób łączy ze
sobą wiele dziedzin takich jak:
- reprezentacja wiedzy
- abstrakcyjne wnioskowanie
- uczenie
- podejmowanie racjonalnych decyzji
General Game Playing
 Turniej zaproponowany przez Uniwersytet Stanford’a.
http://games.stanford.edu/
 Od 2005 roku ogólnoświatowy turniej GGP organizowany pod
patronatem konferencji AAAI.
- 10 000$ dla zwycięzcy
 2009 rok - pierwszy turniej niemiecki oraz europejski.
Turniej General Game Playing
(START
<MATCHID>
<ROLE>
<DESCRIPTION>
<STARTCLOCK>
<PLAYCLOCK>)
Game Master
Gracz
<READY>
<ACTION> <MOVE_NAME [parameters]
 Komunikacja po HTTP
 Jeśli gracz nie odpowie w dozwolonym czasie, wybierany jest za niego
losowy legalny ruch.
Klasa możliwych gier w GGP
• skończone
• deterministyczne
• synchroniczne
TAK
NIE
Model gry
 Model gry można utożsamiać z maszyną stanów z następującymi
elementami:
S – zestaw ‘stanów’ gry
r1, ..., rn – nazwy ról w n-osobowej grze
I1, ..., In - zestaw n akcji, jeden zestaw dla każdego gracza
a1, ..., an – zestaw legalnych akcji, ai ⊆ Ii x S
n – funkcja uaktualnienia stanów I1 x ... x In x S → S
s1 – stan początkowy, element należący do S
g1, ..., gn – para [cel,wypłata], gi ⊆ S x [0...100]
t – stan końcowy (terminalny)
Reprezentacja explicite wszystkich możliwych stanów i akcji
praktycznie niemożliwa.
Np. w szachach jest około 1030 możliwych stanów.
Język opisu gry (GDL – ang. Game Definition Language)
 Formalny język logiczny, oparty na Datalogu.
- Datalog – podzbiór Prologa
 Oparty na logice pierwszego rzędu z wyróżnioną notacją dla zmiennych, stałych,
obiektów, funkcji, relacji i operatorów logicznych.
 Wyróżnione słowa kluczowe:
role(r)
init(p)
true(p)
does(r,a)
next(p)
goal(r)
terminal
distinct(v,w)
Przykład – fragment gry kółko i krzyżyk 1/3
(role
(role
(init
(init
(init
...
(init
(init
white)
black)
(cell 1 1 b))
(cell 1 2 b))
(cell 1 3 b))
(cell 3 3 b))
(control xplayer))
(<= (next (cell ?m ?n x))
(does xplayer (mark ?m ?n))
(true (cell ?m ?n b)))
(<= (next (cell ?m ?n b))
(does ?w (mark ?j ?k))
(true (cell ?m ?n b))
(or (distinct ?m ?j) (distinct ?n ?k)))
...
Przykład – fragment gry kółko i krzyżyk 2/3
(<= (legal white (mark ?x ?y))
(true (cell ?x ?y b)))
(<= (legal black (mark ?x ?y))
(true (cell ?x ?y b)))
...
(<= (row ?m ?x)
(true (cell ?m 1 ?x))
(true (cell ?m 2 ?x))
(true (cell ?m 3 ?x)))
...
(<=
(<=
(<=
(<=
...
(line ?x) (row ?m ?x))
(line ?x) (column ?m ?x))
(line ?x) (diagonal ?x))
open (true (cell ?m ?n b)))
Przykład – fragment gry kółko i krzyżyk 3/3
(<= (goal xplayer 100)
(line x))
(<= (goal xplayer 50)
(not (line x))
(not (line o))
(not open))
(<= (goal xplayer 0)
(line o))
(<= (goal oplayer 100)
(line o))
...
(<= terminal
(line x))
(<= terminal
(line o))
(<= terminal
(not open))
Język opisu gry (GDL – ang. Game Definition Language)
(<= (legal ?player (move ?piece ?u ?v ?x ?y))
(true (control ?player))
(not (in_check ?player))
(piece_owner_type ?piece ?player ?ptype)
(distinct ?ptype king)
(true (cell ?u ?v ?piece))
(legal2 ?player (move ?piece ?u ?v ?x ?y))
(true (cell ?x ?y b))
(piece_owner_type ?king ?player king)
(true (cell ?kx ?ky ?king))
(not (threatened ?player ?kx ?ky ?u ?v)))
Pełna definicja szachów w GDL – 17 stron A4, Courier New 11px !!
Istniejące podejścia do GGP
Zwycięzcy turniejów na AAAI
 2005: Cluneplayer
- heurystyka oparta na 5 parametrach (payoff, control, termination, payoff
stability, control stability)
 2006: Fluxplayer
- heurystyka automatycznie konstruowana na podstawie analizy leksykalnej
opisu gry w GDL
- założenie istnienia pewnych cech wspólnych dla większości gier
 2007, 2008: Cadiaplayer
- podejście bazujące na symulacjach Monte-Carlo wykorzystujące UCT
(Upper-Confidence Bounds Applied for Trees)
 2009, 2010: Ary
- podobny do Cadiaplayer, symulacje Monte-Carlo + UCT
Problemy w stworzeniu wszechstronnego agenta GGP
 Określenie legalnych w danym momencie ruchów jest trywialne,
natomiast wybranie dobrego jest już bardzo trudne.
 Sposób definicji gry nie pokazuje wyraźnego związku między akcją a
wynikiem (nie ujawnia typowego scenariusza gry).
 Sposób definicji gry nie pomaga w odnalezniu matematycznych reguł
czy zależności. Nawet działania arytymetyczne definiowane są
leksykalnie np.
(++ 1 2) , (++ 3 4), (add5 2 7)
Problemy w stworzeniu wszechstronnego agenta GGP
 Pełna dowolność gier w ramach możliwej klasy nie pozwala wprowadzić
żadnych założeń specyficznych dla konkretnej gry np. plansza, pionek
(program powinien takie elementy rozpoznać sam).
 Potencjalna złożoność gier (branching-factor) przeważnie jest na tyla
duża, że nie da się skonstruować pełnego drzewa gry.
Symulacje losowe powinny być wspomagane przez sensowny system
przeszukiwań.
 Ideałem byłoby, gdyby program przeanalizował reguły zapisane w GDL
tak jak człowiek i wykazywał podobne możliwości poznawcze podczas
gry.
Problemy w stworzeniu wszechstronnego agenta GGP
Czym kieruje się człowiek podczas gry?

1. statyczna analiza reguł gry
-
np. czytanie instrukcji
2. doświadczenie w grze
3. intuicja
Moje podejście postara się zamodelować doświadczenie oraz intuicje w
postaci symulacji gry w połączeniu z konstrukcją heurystyki.
Podejście heurystyczne
Podejście heurystyczne
 Wygrało dwa pierwsze turnieje, obecnie wypierane przez metody
bazujące na losowych symulacjach.
 Problem 1.
Jak uzyskać postać funkcji ewaluacyjnej bez zakładania niczego o grze?
 Problem 2.
Jak wykorzystać uzyskaną funkcję ewaluacyjną w kontekście gier
wieloosobowych? Oryginalny algorytm min-max nie może być
zastosowany bez modyfikacji.
 Problem 3.
Jak stworzyć na tyle dobre rozwiązanie aby pokonało dobrze radzące
sobie w środowisku GGP podejścia MC + UCT.
Podejście symulacyjno-heurystyczne
Podejście symulacyjno-heurystyczne
 Losowa symulacja gier ma zadanie odnaleźć potencjalnych kandydatów
na komponenty funkcji ewaluacyjnej oraz dopasować wagi.
 Podczas gry wykorzystywana będzie już tylko skonstruowana funkcja
oceniająca wraz z planowaniem ruchów.
- głębokość zależna jest od stopnia skomplikowania gry, zwykle od 1 do 5
 Cel:
- utworzenie możliwie ogólnej i skutecznej funkcji oceniającej
- kwestia wydajności - ważna, aczkolwiek na razie uwaga skupiona na samym
sposobie konstrukcji algorytmu
Podejście symulacyjno-heurystyczne
Idea
Wyodrębnienie możliwe dużo istotnych liczb z problemu, który jest z
natury oparty na symbolach.
Obserwacja
Prawie każdą wartość liczbową można wyrazić przy pomocy liczności.
Np.
“Kasia ma 37ºC gorączki”
można przedstawić jako:
„Ilość stopni Celsjusza o wartości 37 występuje w liczności = 1 u Kasi”
Podejście symulacyjno-heurystyczne
Jakie ogólne liczności mogą się zmienić w wyniku uaktualnienia
stanu gry po wykonanym ruchu?
Konwencja nazewnicza:
(cell ?x ?y wb)
(cell 1 2 x)
(<= (queen_move ?u ?v ?x ?y)
 relacja – nazwa predykatu (stanu, implikacji..) np. cell, queen_move
 wiersz – pojedynczy spełniony predykat wraz z argumentami należacy
do relacji np. (cell 2 2 wb), (queen_move a 1 b 2)
 symbol – pojedynczy parametr np. wb, 2
 kolumna – zbiór wszystkich symboli na tej samej pozycji w relacji np.
{wb, x}, {1,2,3...8}, {a,b,...,h}
Podejście symulacyjno-heurystyczne
Jakie ogólne liczności mogą się zmienić w wyniku uaktualnienia
stanu gry po wykonanym ruchu:
 ilość wierszy w relacji
- np. wypełnienie kamienia milowego lub pojawienie się pewnego faktu w grze
 ilość wystąpień danego symbolu w kolumnie
- np. zbicie pionka, dołożenie znacznika, wciśnięcie przycisku
 ilość konkretnych symboli w relacji z pewnym innym symbolem
- np. zmiana pozycji gracza, pionka, piłki
Podejście symulacyjno-heurystyczne
Faza nr 1- analiza zmian stanów:
 Oddzielnie dla każdego gracza brane pod uwagę zmiany stanów, których
warunkiem są wykonane ruchu danego gracza
 Pomiędzy różnymi symulacjami w tym samym kroku czasowym
Podejście symulacyjno-heurystyczne
Faza nr 1- analiza zmian stanów:
 Oddzielnie dla każdego gracza brane pod uwagę zmiany stanów, których
warunkiem są wykonane ruchu danego gracza
<does (move_name player_name ....)>
 Pomiędzy różnymi symulacjami w tym samym kroku czasowym
 Wykonaj N losowych akcji w N symulacjach:
-
Uaktualnij stan w każdej z gier
Oblicz liczbę wierszy dla każdej relacji stanu
Oblicz liczbę symboli w każdej kolumnie każdej relacji stanu
Zapisz do odpowiednich struktur w pamięci relacje oraz symbole, których
liczność się zmieniła:
[relation_id, role]
[column_symbol_id, role]
Podejście symulacyjno-heurystyczne
 Wprowadzony sposób zliczania pozwala stwierdzić, które liczności
naprawdę zależą od wyboru ruchu.
 Wstępna eliminacja informacji o wartościach, które są mało użyteczne z
punktu widzenia heurystyki, bo nie zmieniają się lub zmieniają zawsze w
stały sposób, na który gracz nie ma wpływu.
Im więcej losowych symulacji tym większe prawdopodobieństwo
spełnienia tego założenia.
Podejście symulacyjno-heurystyczne
Przykład dla szachów i roli white:
 Relacje zmieniające liczność:
[check], [pawn_moved_two]
 Symbole zmieniające liczność w obrębie kolumny:
- wszystkie symbole z relacji zmieniających liczność
- {bq, br, bb, bn, bp, b}
Podejście symulacyjno-heurystyczne
 Kolejnym mierzonym parametrem jest dynamika (chaotyczność) symboli:
- jak wiele symboli występujących wraz z mierzonym zmienia się po po przejściu
do następnego stanu
 Wartość jest mierzona między stanami sn-1 a sn w ramach tej samej
symulacji, a różnych kroków
- to bardziej ‘niskopoziomowa’ liczność, która zmienia się bardzo dynamicznie
- tym razem celem nie jest zrozumienie natury różnicy pomiędzy
poszczególnymi akcjami, a natury samej akcji
Podejście symulacyjno-heurystyczne
Niech R(d,tn) to zbiór pozostałych symboli występujących wraz z danym w
wierszach w kroku tn
Miara dynamiki:
1- |R(d,tn)  R(d,tn+1)|/max[R(d,tn), R(d,tn+1)]
A
5
9
A
7
10
B
15
20
B
1
1
A
7
10
A
5
25
Dynamika A = 1/4
Podejście symulacyjno-heurystyczne
 W każdym kroku wyznaczany jest jeden ‘najbardziej dynamiczny’ symbol
i dodawany do zbioru symboli do dalszej analizy.
 Po fazie wstępnej analizy wyselekcjonowane są:
- relacje zmieniające liczbę wierszy
- symbole zmieniające liczność w ramach swojej kolumny
- symbole najczęściej zmieniające swoje powiązanie z resztą symboli
Podejście symulacyjno-heurystyczne
 Konstruowane są struktury danych do przechowywania wartości, które
będą zliczane w losowych symulacjach.
- liczba wierszy dla relacji
(średnia arytmetyczna po czasie)
- liczba wystąpień w kolumnie dla symbolu
(średnia z wartości na początku i wartości po każdej zmianie)
- liczba wystąpień konkretnych wierszy np.. [cell 1 1 b] zawierających
‘dynamiczny’ symbolu
(w pojedynczej symulacji tylko fakt wystąpienia – 0,1)
 Wszystkie powyższe dane w osobnych pojemnikach etykietowanych
parą [rola, czy_max_wynik]
Ilość pojemników = 2*ilość graczy
Podejście symulacyjno-heurystyczne
Przeprowadzany jest szereg losowych symulacji
Po zakończeniu każdej gry obliczona wartość dopisywana jest na listę dla
danej cechy.
Przykład dla szachów, gracza black i liczności symbolu {wq} w kolumnie:
Wygrane: [0,0,1,0,0,1]
Przegrane: [1,1,0,1,1,0,1,0,1,1]
Podejście symulacyjno-heurystyczne
Przykład dla szachów, gracza black i liczności symbolu {wq} w kolumnie:
Wygrane: [0,0,1,0,0,1]
Przegrane: [1,1,0,1,1,0,1,0,1,1]
 wartości są normalizowane przez podzielenie przez maksimum z obu list
 dla każdej pomierzonej cechy liczona jest średnia oddzielna dla gier
wygranych* oraz przegranych*
 waga cechy określana jest przez różnicę między wynikiem dla gier
wygranych a przegranych
dla powyższego przykładu:
w = [0.3333 – 0.7] = -0.36666
Podejście symulacyjno-heurystyczne
 Postać funkcji heurystycznej:
H (S )  W1   (wri * reli )  W2   (wcsi * colSymboli )  W3   (wssi * symbolStatei )
i
i
i
 liniowa kombinacja liczności w testowanym stanie z wagami wyliczonymi
według formuły z poprzednich slajdów
 problem przeskalowania wag dotyczących wartości z różnych dziedzin
przy pomocy współczynników Wi
- np.. zerowanie kolejnych wag i przy pomocy losowych symulacji określenie
rozkładu zwycięstw
- metody inspirowane poszukiwaniem miejsc zerowych?
- metody inspirowane optymalizacją matematyczną?
- algorytmy genetyczne?
Rezultaty
 Metoda na razie bardzo dobrze sprawdza się w szachach, warcabach,
tic-tac-toe oraz connect-four.
 Potrafi określić np. takie parametry jak:
- siła figur
- pozytywny efekt pojawienia się szachu
- uznanie środkowej pozycji w tic-tac-toe oraz connect-four za dobrą
Statystyczne wyniki dla gier szachy oraz kółko i krzyżyk:
Losowe ruchy
Losowy z historią
dobrych ruchów
Kompletne drzewo o
głębokości 2
Szachy
75-19-6 (%)
68-25-7 (%)
54–31–15 (%)
Kółko i krzyżyk
57-22-21 (%)
23-56-21 (%)
21–55–24 (%)
Przeciwnik:
Gra:
Rezultaty
 Bardzo duży wpływ na jakość gry ma głębokość analizy w drzewie gry.
 Gracz sprawdzający wszystkie możliwe kombinacje ruchów wszystkich
graczy 2 kroki wprzód jest trudny do pokonania w większości gier.
Podsumowanie
 Nowa metoda bazująca na losowych symulacjach i konstrukcji funkcji
heurystycznej.
 Dosyć ogólne podejście bazujące na
- zliczaniu faktów, symboli oraz powiązaniu symboli
- rozróżnianiu zmian będących bezpośrednim wynikiem wykonanej akcji, a nie
jakiegokolwiek akcji
- analizowaniu które zmiany statystycznie wpływają na lepszy rezultat
(zwycięstwo, porażkę)
 Pozwala wyodrębnić z gry takie aspekty jak liczność pewnych
elementów (np. figur), dokładanie nowych (np. {x,o} w kółko i krzyżyk),
poruszanie elementów oraz statystyczny wpływ na wynik.
Plany na przyszłość
 Testy dla kolejnych, bardziej różnorodnych gier i trudniejszych
przeciwników
 Uwzględnienie w heurystyce:
- ilości legalnych ruchów
- korelacji pomiędzy poszczególnymi stanami, cechami, akcjami
czy w ogóle wykonalne?
Bibliografia
 „Simulation-based Approach to General Game Playing”, H.Finsson, Y.
Bjornson, AAAI’08 Proceedings, Vol. 1., 2008
 „General Game Playing: Game Description Language Specification”,
N.Love et al., 2008
 „General Game Playing: Overview of the AAAI Competition”,
M. Genesereth, N.Love, 2005
 „Heuristic Evaluation Functions for General Game Playing”, J. Clune,
AAAI’07 Proceedings, pp. 1134-1139
 „Fluxplayer: A Successful General Game Player”, S. Shiffel, M.
Thielscher, AAAI ‘07 Proceedings, pp. 1191-1196
 „Automatic Feature Construction for General Game Playing”, M.
Gunther, master thesis, 2008
Dziękuję za uwagę!