— historia, odmiany, usprawnienia
Przemysław Kl ˛esk pklesk@wi.zut.edu.pl
Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
Teoria gier
Gał ˛a´z matematyki zajmuj ˛aca si ˛e zachowaniami w sytuacjach konfliktowych (strategicznych), gdzie wynik uczestnika, zale ˙zy od wyborów
podejmowanych przez niego i innych. Bywa nazywana teori˛a racjonalnych zachowa ´n. Oprócz informatyki stosowana w naukach socjologicznych, ekonomicznych, militarnych (historycznie wcze´sniej).
Wa ˙zne historycznie prace:
Émil Borel, Aplikacje dla gier losowych (fr. Applications aux Jeux de Hasard), 1938.
John von Neuman i Oskar Morgenstern, Teoria gier i zachowa´n
ekonomicznych (ang. Theory of Games and Economic Behavior), 1944.
Poj ˛ecia
Gra
Pewna sytuacja konfliktowa, gdzie:
mo ˙zna wskaza´c co najmniej dwóch graczy,
ka ˙zdy gracz ma do wyboru pewn ˛a liczb ˛e mo ˙zliwych strategii, okre´slaj ˛acych dokładnie sposób rozgrywania przez niego gry,
wynik gry jest jednoznacznie okre´slony przez kombinacj ˛e strategii wybranych przez graczy.
Strategia
Pełnyzestaw decyzji (o wyborach, ruchach), które gracz ma podj ˛a´c, dla wszystkich mo ˙zliwych do zastania stanów gry.
Strategia jest cz ˛esto niemo ˙zliwa do spisania/przechowania, ze wzgl ˛edu na swój rozmiar.
Poj ˛ecia
Gra sko ´nczona
Gra, w której istnieje gwarancja, ˙ze gra ulegnie zako ´nczeniu.
Gra o sumie zerowej
Gra, w której wypłaty wszystkich graczy (zdeterminowane przez wynik gry), sumuj ˛a si ˛e do zera.
Dla szachów konwencja: 0, 1,
12(suma zero powstaje przez przeskalowanie:
2x − 1).
Twierdzenie o minimaksie
Twierdzenie o minimaksie (von Neuman, 1928)
Dla ka ˙zdej sko ´nczonej gry dwuosobowej o sumie zero, istnieje przynajmniej jedna optymalna strategia mieszana. Tym samym istnieje warto´s´c gry v, taka
˙ze gracz pierwszy stosuj ˛ac optymaln ˛a strategi ˛e gwarantuje sobie oczekiwan ˛a wypłat ˛e niegorsz ˛a ni ˙z v, a gracz drugi stosuj ˛ac optymaln ˛a strategi ˛e
gwarantuje sobie wypłat ˛e niegorsz ˛a ni ˙z −v.
Dla gier o sumie zerowej rozwi ˛azanie minimaksowe jest to ˙zsame z
równowag ˛a Nasha (szersze poj ˛ecie).
Przykład dla twierdzenia
B wybiera b
1B wybiera b
2B wybiera b
3A wybiera a
13 −2 3
A wybiera a
2−1 0 4
A wybiera a
3−4 −3 1
Macierz wypłat W = {w
ij} dla gry o sumie zerowej, gdzie gracze A i B wykonuj ˛a jednoczesne ruchy.
Co jest minimaksowym wyborem dla A i B?
Czy jest to rozwi ˛azanie stabilne?
Czy istniej ˛a wybory zdominowane?
Przykład dla twierdzenia
Bwybiera b1 Bwybiera b2 Bwybiera b3
Awybiera a1 3 −2 3
Awybiera a2 −1 0 4
Awybiera a3 −4 −3 1
Minimaksowym wyborem dla A jest a2, poniewa ˙z najgorszym mo ˙zliwym wynikiem dla Ajest wówczas −1:
maxi min
j wij= −1. (1)
Minimaksowym wyborem dla B jest b2, poniewa ˙z najgorszym mo ˙zliwym wynikiem dla B jest wówczas 0:
minj max
i wij=0. (2)
Rozwi ˛azanie (a2, b2) jest niestabilne, poniewa ˙z je ˙zeli B wierzy, ˙ze A wybierze a2, to B wybierze b1, aby dosta´c wypłat ˛e −1; wówczas, je˙zeli A wierzy, ˙ze B wybierze b1, to A wybierze a1, aby dosta´c wypłat ˛e 3, itd.
Wybory zdominowane: a3i b3— niezale ˙znie od wyboru przeciwnika, pozostałe nasze wybory s ˛a lepsze (dokładnie: niegorsze). St ˛ad, macierz mo ˙zna zredukowa´c wykre´slaj ˛ac trzeci wiersz i trzeci ˛a kolumn ˛e.
Przykład dla twierdzenia
Bwybiera b1 Bwybiera b2
Awybiera a1 3 −2
Awybiera a2 −1 0
p 1 − p
· W · q 1 − q
!
= −q − 2p + 6pq. (3)
Strategia mieszanato kombinacja wyborów — strategii czystych — z okre´slonymi prawdopodobie ´nstwami (cz ˛esto´sciami).
Obecno´s´c termu pq wskazuje na istnienie punktu siodłowego.
˙Z ˛adaj ˛ac, aby∂p∂· =0 i∂q∂· =0, otrzymujemy rozwi ˛azanie:
p = 1 6, q =1
3. (4)
Warto´s´c gry: v = −13.
Formalnie, je ˙zeli P i Q reprezentuj ˛a strategie mieszane (wektory prawdopodobie ´nstw), to:
maxP min
Q PT· W · Q = min
Q max
P PT· W · Q = v. (5)
Równowaga Nasha (NEQ)
John Nash, ur. 1928, laureat nagrody Nobla w 1994 (z ekonomii).
Nieformalnie
W grze wieloosobowej, mówimy ˙ze pewien zestaw strategii poszczególnych
graczy stanowi równowag˛e Nasha, wtedy i tylko wtedy, gdy ka ˙zda strategia
w´sród nich stanowi najlepsz ˛a odpowied´z na wszystkie pozostałe i ˙zaden
gracz nie mo ˙ze zyska´c poprzez zmian ˛e swojej strategii przy ustalonych
pozostałych.
Równowaga Nasha (NEQ)
Formalnie
W grze o n graczach, niech Sioznacza zbiór mo ˙zliwych strategii dla gracza i.
Niech S oznacza przestrze ´n wszystkich strategii jako produkt kartezja ´nski zbiorów strategii poszczególnych graczy:
S = S1× S2× · · · × Sn
Dla pewnego zestawu strategii (s1, . . . , sn) pochodz ˛acych od poszczególnych graczy, niech Wi(s1, . . . , sn) okre´sla wypłat ˛e i-tego gracza. Zatem Wijako funkcja jest odwzorowaniem:
Wi: S → R.
Niech W oznacza funkcj ˛e wektorow ˛a: W = (W1, . . . , Wn).
Gr ˛emo ˙zna rozumie´c jako par ˛e (S, W).
Mówimy, ˙ze zestaw strategii (s∗1, . . . , s∗n) stanowi równowag ˛e Nasha, wtedy i tylko wtedy, gdy:
∀i ∀s ∈ S : W(s∗, . . . , s∗, . . . , s∗) > W(s∗, . . . , s, . . . , s∗). (6)
Równowaga Nasha (NEQ)
Innym sposobem wypowiedzenia NEQ, jest to, ˙ze s∗ijest rozwi ˛azaniem:
maxsi∈Si
Wi(s∗1, . . . , si, . . . , s∗n) (7) dla wszystkich i.
Idea NEQ jest stosowana do analizy/przewidywania co stanie si ˛e, gdy kilka osób/instytucji musi podj ˛a´c równocze´snie decyzj ˛e, i gdy wynik zale ˙zy od wszystkich decyzji. Wyniku nie mo ˙zna przewidzie´c, analizuj ˛ac decyzje graczy oddzielnie (w izolacji).
NEQ nie musi koniecznie oznacza´c najlepszego grupowego (sumarycznego) wyniku z gry i mo ˙ze wydawa´c si ˛e nieracjonalna z punktu widzenia osób poza gr ˛a (np. dylemat wi˛e´znia, paradoks Braess’a).
W wielu przypadkach gracze mogliby poprawi´c sumaryczny wynik, gdyby uzgodnili strategie ró ˙zne od NEQ (np. kartele biznesowe zamiast konkurencji).
Paradoks Braess’a
A
B
C
D 1 +
100n0.25
2 1 +
100n2
Zadanie
Zakładaj ˛ac samolubno´s´c i racjonalno´s´c kierowców, znale´z´c oczekiwany przepływ ruchu ulicznego (równowag ˛e Nasha) dla 100 kierowców podró ˙zuj ˛acych z A do D w dwóch przypadkach: (1) gdy kraw ˛ed´z BC nie istnieje, (2) gdy kraw ˛ed´z BC istnieje.
Potraktowa´c problem jako gr ˛e, gdzie ka ˙zdy gracz ma odpowiednio 2 lub 3 strategie: ABD, ACD i ewentualnie ABCD. Wypłat ˛a jest czas podró ˙zy wybran ˛a drog ˛a. Dla kraw ˛edzi AB i BD, n
Paradoks Braess’a — rozwi ˛azanie
p, q, r — liczba kierowców, którzy wybrali odpowiednio strategie: ABD, ACD, ABCD.
Przypadek 1
1 +
100p+ 2 = 1 +
100q+ 2;
p + q = 100. (8)
Rozwi ˛azanie: p = q = 50, koszt drogi (warto´s´c gry) v = 3.5.
Paradoks Braess’a — rozwi ˛azanie
Przypadek 2
1 +
p+r100+ 2 = 1 +
q+r100+ 2 = 1 +
p+r100+ 0.25 + 1 +
q+r100;
p + q + r = 100. (9)
Rozwi ˛azanie: p = q = 25, r = 50, koszt drogi (warto´s´c gry) v = 3.75.
Kierowcy jechaliby krócej, gdyby umówili si ˛e, ˙ze nie u ˙zywaj ˛a BC.
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
Drzewo gry
Dla pewnego stanu s przyjmijmy, ˙ze istnieje n mo ˙zliwych wyborów: a
1, a
2, . . . , a
n, powoduj ˛acych powstanie ze stanu s nowych stanów gry,
odpowiednio: s
1, s
2, . . . , s
n. Dalej, dla ka ˙zdego z tych stanów mamy znowu
pewien zestaw mo ˙zliwych wyborów. Kontynuuj ˛ac to post ˛epowanie w
naturalny sposób otrzymujemy struktur˛e drzewa.
Problemy przeszukiwania
zbyt du˙za przestrze ´n przeszukiwa ´n — gdy stworzenie pełnego drzewa niemo ˙zliwe lub zbyt kosztowne pami ˛eciowo/obliczeniowo (problem wykładniczy).
gry o niepełnej informacji — gracze nie posiadaj ˛a pełnej informacji o stanie gry (np. karty trzymane przez przeciwnika, kostki przeciwnika w Rummikub, literki w Scrabble).
czynnik losowy — gdy elementem gry s ˛a generatory losowe (np. rzut
kostk ˛a, tasowanie talii kart).
Mierniki zło ˙zono´sci gier
1
Zło˙zono´s´c przestrzeni stanów (ang. state-space complexity) — liczba dozwolonych pozycji w grze osi ˛agalnych poczynaj ˛ac od pozycji pocz ˛atkowej. Bywa szacowana z góry, gdy łatwiej w rachunku uwzgl ˛edni´c nielegalne pozycje.
2
Rozmiar drzewa gry (ang. game tree size) — liczba mo ˙zliwych do rozegrania ró ˙znych gier; lub równowa ˙znie, liczba li´sci w drzewie z korzeniem ustalonym na pozycj ˛e pocz ˛atkow ˛a. Uwzgl ˛ednia si ˛e tu mo ˙zliwo´s´c powtarzania si ˛e w drzewie tych samych stanów gry
osi ˛aganych w wyniku tych samych ruchów, ale wykonanych w ró ˙znym
porz ˛adku. Bywa szacowana z góry dopuszczaj ˛ac rozrost drzewa w
wyniku nielegalnych ruchów.
Mierniki zło ˙zono´sci gier
3
Zło˙zono´s´c decyzyjna (ang. decision complexity) — liczba li´sci w najmniejszym drzewie decyzyjnym, które ustala ocen ˛e pozycji pocz ˛atkowej.
4
Zło˙zono´s´c drzewa gry (ang. game tree complexity) — liczba li´sci w najmniejszym drzewie decyzyjnym o pełnej szeroko´sci, które ustala ocen ˛e pozycji pocz ˛atkowej. Takie drzewo uwzgl ˛ednia wszystkie mo ˙zliwo´sci decyzyjne dla obu graczy. Odpowiada liczbie potrzebnych operacji w przeszukiwaniu minimaksowym.
Drzewo decyzyjne (z punktu widzenia pierwszego gracza)
Poddrzewo drzewa gry, w którym wszystkie stany maj ˛a etykiety: zwyci˛estwo, remis, pora˙zka.
Stan uzyskuje etykiet ˛e zwyci˛estwo, gdy dowolny stan potomny ma etykiet ˛e zwyci˛estwo.
Stan uzyskuje etykiet ˛e pora˙zka, gdy wszystkie stany potomne maj ˛a etykiet ˛e pora˙zka.
Stan uzyskuje etykiet ˛e remis, gdy przynajmniej jeden stan potomny ma etykiet ˛e remis, a wszystkie pozostałe pora˙zka.
Drzewo decyzyjne uwzgl ˛ednia wszystkie mo ˙zliwo´sci dla ka ˙zdej decyzji drugiego gracza, i tylko jedn ˛a mo ˙zliwo´s´c (najlepsz ˛a) dla ka ˙zdej decyzji pierwszego gracza.
Szacunki zło ˙zono´sci dla niektórych gier
gra
rozmiar planszy
(liczba pól) zło ˙zono´s´c
przestrzeni stanów zło ˙zono´s´c drzewa gry
kółko i krzy˙zyk 9 10
310
5connect 4 42 10
1310
21warcaby angielskie 32 10
2010
31tak ˙ze: Nash lub John hex 121 10
56?
szachy 64 10
4710
123connect 6 361 10
17210
140backgammon
tak ˙ze: tryk-trak 28 10
2010
144tak ˙ze: batuk Go 361 10
17110
360Projekt Chinook (warcaby)
Dla warcab angielskich (8 × 8, damki ruszaj ˛a si ˛e w dowolnym kierunku ale o 1 pole).
Projekt rozpocz ˛eto w 1989. Cel: pokonanie człowieka w mistrzostwach ´swiata w warcabach.
Autorzy:(tył od lewej) Yngvi Bjørnsson, Neil Burch, Rob Lake, Joe Culberson (przód od lewej) Paul Lu, Jonathan Schaeffer, Steve Sutphen. Uniwersytety: Rejkjavik (Islandia), Alberta (Kanada), Hakodate (Japonia).
Projekt Chinook (warcaby)
W 1990 uznano prawo programu do udziału w mistrzostwach i grze przeciwko człowiekowi.
Program przegrał mistrzostwa w 1992, ale wygrał w 1994. W 1996 wycofano mo ˙zliwo´s´c udziału Chinooka (program silniejszy ni ˙z którykolwiek człowiek).
Przestrze ´n przeszukiwa ´n rz ˛edu: 5 · 1020. Baza danych z ewidencj ˛a wielu stanów gry i informacj ˛a o najlepszym posuni ˛eciu w danym stanie.
29.04.2007 r. autorzy projektu ogłosili warcaby angielskie za rozwi ˛azane!Czarne (rozpoczynaj ˛ace gr ˛e) maj ˛a gwarancj ˛e remisu przy doskonałej grze. Białe maj ˛a równie ˙z gwarancj ˛e remisu, niezale ˙znie od pierwszego posuni ˛ecia czarnych.
Po dzi´s dzie ´n warcaby, to najwi ˛eksza rozwi ˛azana gra.
Projekt Chinook — dziedzictwo Samuela
Artur Samuelnapisał silnik programu w 1950 r. w ramach projektu sponsorowanego przez IBM.
W 1952 r. dodano genetyczny element samouczenia — dwa programy graj ˛ace przeciw sobie, z powtórzeniami. Wyewoluowany program pokonywał amatorów i
´sredniozaawansowanych graczy.
Po prezentacji programu w 1956 r. udziałowcom IBM, akcje IBM skoczyły o 15 punktów procentowych.
W 1962 r. program rozegrał upubliczniony mecz przeciwko Robertowi Nealy (niewidomy mistrz warcabowy), w którym odniósł zwyci ˛estwo (mocno rozreklamowane). Nealy nie był graczem „z najwy ˙zszej półki”.
W efekcie projektu rozpowszechniło si ˛e fałszywe przekonanie, ˙ze warcaby zostały rozwi ˛azane na tamten moment.Bjørnsson miał z tego tytułu problemy z uzyskaniem finansowania dla Chinooka w latach 80-ych.
Rok pó´zniej program przegrał rewan ˙z: 1 pora ˙zka, 5 remisów. W 1966 program przegrał 8 kolejnych gier przeciwko lepszym graczom: Derekowi Oldbury, Walterowi Hellman’owi.
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
Algorytm MIN-MAX (lub minimaks)
Procedura mmEvaluateMax(s, d, D)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Przypisz v = −∞.
3 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= max{v, mmEvaluateMin(t, d +12, D)}.
4 Zwró´c v.
Procedura mmEvaluateMin(s, d, D)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Przypisz v = ∞.
3 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= min{v, mmEvaluateMax(t, d +12, D)}.
4 Zwró´c v.
Algorytm przycinanie α-β
(ang. α-β cut-offs lub α-β pruning)
Wielu niezale ˙znych odkrywców: Samuel (1952), McCarthy (1956), Newell i Simon (1958).
W trakcie analizy drzewa propagowane s ˛a w dół i gór ˛e drzewa warto´sci:
α — gwarantowana dotychczas wypłata gracza maksymalizuj ˛acego, β — gwarantowana dotychczas wypłata gracza minimalizuj ˛acego.
W wywołaniu dla korzenia zadaje si ˛e α = −∞, β = ∞.
Dzieci (i ich poddrzewa) s ˛a analizowane dopóki α < β.
W momencie gdy α > β, przestajemy rozpatrywa´c kolejne dzieci (i ich poddrzewa) — nie b ˛ed ˛a one miały wpływu na wynik całego drzewa, s ˛a wynikiem nieoptymalnego post ˛epowania graczy.
W optymistycznym przypadku zysk w zło˙zono´sci wzgl ˛edem MIN-MAX’a z O(bD) na O
bD/2
=O√ bD
, gdzie b — branching factor (stały lub ´sredni współczynnik rozgał ˛eziania). Np. dla szachów b ≈ 40.
Dzi ˛eki zyskowi w zło ˙zono´sci mo ˙zna szuka´c gł ˛ebiej.
Algorytm przycinanie α-β (wersja fail-hard zwraca wynik z przedziału [α, β])
Procedura alphaBetaEvaluateMax(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= alphaBetaEvaluateMin(t, d +12, D, α, β).
2 Je ˙zeli β 6 v, to zwró´c β. (przyci ˛ecie)
3 α := max{α, v}.
3 Zwró´c α.
Procedura alphaBetaEvaluateMin(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= alphaBetaEvaluateMax(t, d +12, D, α, β).
2 Je ˙zeli v 6 α, to zwró´c α. (przyci ˛ecie)
3 β := min{β, v}.
3 Zwró´c β.
Ilustracja przycinania α-β — przykład 1
MAX
MIN
MAX α = −∞
β = ∞, 5
α = −∞, 5 β = ∞
α = −∞, 5 β = ∞
5 4
α = −∞, 6
β = 5 α = 5, 7, 10
β = ∞ α = 5
β = ∞, 10, 5
α = 5 β = 10
6 ∗ 7 10 4 4
Dlaczego optymistyczna zło ˙zono´s´c O(b D/2 )?
W tradycyjnym MIN-MAX:
O(b · b · · · b
| {z }
D-krotnie b
) = O(bD). (10)
W α-β przy parzystej liczbie poziomów, optymistycznie mamy:
O(b · 1 · b · 1 · · · b · 1
| {z }
D/2-krotnie b
) = O bD/2
. (11)
Wyja´snienie:potrzebujemy zbudowa´c wszystkie mo ˙zliwe dzieci dla pierwszego gracza, ale zakładamy, ˙ze ruchu s ˛a optymalnie posortowane i w zwi ˛azku z tym w ka ˙zdym dziecku ju ˙z pierwszy ruch drugiego gracza pozwoli odrzuci´c wszystkie dalsze ruchy drugiego gracza (zajdzie α > β) jako nieoptymalne. I tak dalej rekurencyjnie.
Istniej ˛a oszacowania dla przypadku ´sredniego (losowe posortowanie), daj ˛ace O(b34D).
W szachach dla: b = 40 i D = 12 (12 półruchów), stosunek liczby odwiedzonych stanów przy pesymistycznym sortowaniu do liczby odwiedzonych stanów przy optymistycznym sortowaniu jest 406czyli rz ˛edu 109.
Algorytm przycinanie α-β (wersja fail-soft, wynik nie musi nale ˙ze´c do przedziału [α, β])
Procedura fsAlphaBetaEvaluateMax(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= fsAlphaBetaEvaluateMin(t, d +12, D, α, β).
2 α := max{α, v}.
3 Je ˙zeli α > β, to zwró´c α. (przyci ˛ecie)
3 Zwró´c α.
Procedura fsAlphaBetaEvaluateMin(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= fsAlphaBetaEvaluateMax(t, d +12, D, α, β).
2 β := min{β, v}.
3 Je ˙zeli α > β, to zwró´c β. (przyci ˛ecie)
Twierdzenie Knuth’a-Moore’a (1975)
Praca: Knuth D.E., Moore R.W., „An Analysis of Alpha-Beta Pruning”, Artificial Intelligence, 1975.
„Twierdzenie o oknie α-β”
Niech v∗oznacza prawdziwy (dokładny) wynik gry otrzymany procedur ˛a MIN-MAX. Niech v oznacza wynik procedury fsAlphaBeta (fail-soft) uruchomionej na rzecz korzenia z parametrami pocz ˛atkowymiα, β. Wówczas, mo˙zliwe s ˛a trzy sytuacje:
1 α < v < β ⇒ v = v∗,
2 v 6α (failing low) ⇒ v∗6v (v stanowi górne ograniczenie na v∗),
3 β 6 v (failing high) ⇒ v 6 v∗ (v stanowi dolne ograniczenie na v∗).
Jedna z konsekwencji: fsAlphaBeta(korze ´n, −∞, ∞) = v∗.
Twierdzenie przydaje si ˛e do zbudowania zaawansowanych algorytmów przeszukiwa ´n:
Negascout, MTD-f opartych o tzw. zerowe okna przeszukiwa´n.
Algorytm Quiescence
Próbuje na´sladowa´c intuicj ˛e ludzi w grach, poprzez: dalsze rozwijanie drzewa i analiz ˛e dla li´scigło´snych, a nie rozwijanie drzewa dla li´sci cichych (tylko od razu zwrot heurystyki).
Cz ˛e´sciowo rozwi ˛azuje problem efektu horyzontu.
Cich ˛anazywamy sytuacj ˛e, gdzie nie wyst ˛epuj ˛a gwałtowne zmiany w warto´sci funkcji heurystycznej pomi ˛edzy danym stanem a rodzicem (np. bicia).
Ocena czy sytuacja jest cicha czy nie, mo ˙ze nie by´c łatwa i mo ˙ze wymaga´c heurystyki.
Wa ˙zne, aby była szybka i kosztowała mniej ni ˙z rozwini ˛ecie kolejnego poziomu w drzewie.
Algorytm Quiescence niekoniecznie musi by´c zastosowany na poziomie li´sci, a ju ˙z wcze´sniej. Elementem heurystyki oceniaj ˛acej cicho´s´c mo ˙ze by´c gł ˛eboko´s´c w drzewie tj. im gł ˛ebiej tym wi ˛eksza ch ˛e´c do pozostawienia cichych stanów nierozwini ˛etych.
Dokładny opis np. u: D. Laramée, Chess Programming Part V: Advanced Search, 2000.
Sortowanie stanów-dzieci w przycinaniu α-β
Warto sortowa´c ruchy, zwłaszcza „u góry drzewa”, gdzie jest to wzgl ˛ednie tanie (bo mniej stanów na wy ˙zszych poziomach), a mo ˙ze skutkowa´c spor ˛a oszcz ˛edno´sci ˛a gł ˛ebiej.
Heurystyki sortuj ˛ace
w szachach: ruchy „zbijaj ˛ace najpierw”,
w wielu grach karcianych np. w bryd ˙zu: karty „skrajne najpierw,
´srodkowe pó´zniej”; np. układ A, D, 8, 6, 5, 2 posortowa´c do:
A, 2, D, 5, 8, 6; mo ˙zna te ˙z porz ˛adek ustali´c na podstawie pozycji gracza w ramach jednej lewy (np. gracz ostatni zwykle wysoka karta najpierw, gracz drugi zwykle niska najpierw, itp.),
sortowanie wg heurystyki pozycyjnej — oce ´n i posortuj od razu dzieci
za pomoc ˛a heurystyki h pozycj ˛e, przed uruchomieniem rekurencji w
dół.
Sortowanie stanów-dzieci w przycinaniu α-β
Heurystyki sortuj ˛ace (ci ˛ag dalszy)
„refutation table”(pol. tablica odrzucenia) — tablica zapami ˛etuj ˛aca ruchy (refutation moves), które spowodowały odci ˛ecia, zwykle dla płytkich gł ˛eboko´sci, co pozwala rozpatrywa´c te ruchy w pierwszej kolejno´sci w kolejnych iteracjach algorytmu — (tzw. progressive search lub iterative search). Historycznie, pierwsze programy szachowe z du ˙zymi ograniczeniami na pami ˛e´c trzymały zwykle b ruchów odrzucaj ˛acych b ˛ed ˛acych ruchami w dzieciach korzenia korzenia, lub ewentualnie b + b2bior ˛ac poziom dalej.
Nazywana te ˙z tablic˛a najlepszych kontynuacji.
„killer heuristic”— przechowywanie dla ka ˙zdego poziomu krótkiej listy ruchów killer moves(zwykle 2, 3), które spowodowały α-β przyci ˛ecie i rozwa ˙zanie tych ruchów w pierwszej kolejno´sci dla innych stanów na tym poziomie oraz w kolejnych iteracjach;
intuicyjne uzasadnienie: je ˙zeli ruch był dobry w pewnym stanie, to by´c mo ˙ze jest on te ˙z dobry w stanie do niego podobnym.
Je ˙zeli ruch non-killer spowodował przyci ˛ecie, to jest on wprowadzany na list ˛e killer moves w miejsce „najsłabszego” z nich.
Tablica transpozycji
Nazwa wywodzi si ˛e z szachów i oznacza mo ˙zliwo´s´c otrzymania tej samej pozycji (stanu) poprzez ró ˙zne sekwencje ruchów.
Je ˙zeli rekurencja wgł ˛ab dla takiej pozycji jest ju ˙z przeliczona, to mo ˙zna zaoszcz ˛edzi´c czas bior ˛ac gotowy wynik.
Implementowana jako mapa haszuj˛aca (szybko´s´c, analogia do zbioru Closed odwiedzonych stanów w A
∗, BFS, itp.). Kluczami w mapie s ˛a stany b ˛ad´z ich skróty (np. w szachach tylko pozycje maks. 32 bierek plus informacje o roszadach i biciach en passant).
Warunki wykorzystania stanu z tablicy transpozycji:
Gł ˛eboko´s´c stanu w tablicy niewi ˛eksza ni ˙z stanu nowego (aby wiedzie´c, ˙ze gotowa ocena pochodzi z analizy poddrzewa o takim samym lub wi ˛ekszym rozmiarze).
Sprawdzenie, czy przyci ˛ecia α-β nie sprawiły, ˙ze odwiedzony stan nie był zbadany wystarczaj ˛aco gł ˛eboko a teraz nowy stan powinien by´c (widełki α-β dla stanu w tablicy powinny by´c niew ˛e ˙zsze).
Bywa stosowana jako ksi ˛a ˙zka debiutów lub ko ´ncówek (szachy,
warcaby).
Algorytm Scout (pol. Zwiadowca)
Historycznie pomysł J. Pearl’a (1980): mo ˙zna „zwiadowczo” i mniej kosztownie bada´c, czy dotychczasow ˛a wypłat ˛e mo ˙zna poprawi´c. Dwie rekurencyjne procedury eval(·) i test(·), ta druga zwracała warto´s´c logiczn ˛a, czy mo ˙zliwa poprawa.
Pomysł wykorzystał i udoskonalił A. Reinefeld, „An Improvement to the Scout Tree Search Algorithm”, ICCA Journal, (1983), wprowadzaj ˛ac tzw. zerowe okna α-β (ang. null window, zero window, scout window).
Je ˙zeli wypłaty w grze s ˛a tylko całkowitoliczbowe, to zerowe okno ma miejsce wtedy, gdy
α + 1 = β. (12)
Pomysł „współpracuje” z twierdzeniem Knuth’a-Moore’a.
Algorytm Scout
Definicja
Mówimy, ˙ze zadane okno α-β poskutkowało (ang. succeeded), je ˙zeli warto´s´c v zwrócona przez procedur ˛e fsAlphaBeta (fail-soft) jest taka ˙ze: α < v < β. Wynika z tego (Knuth-Moore), ˙ze prawdziwa warto´s´c gry v∗jest równa v.
Definicja
Mówimy, ˙ze zadane okno α-β zawiodło dołem (ang. failed low), je ˙zeli warto´s´c v zwrócona przez procedur ˛e fsAlphaBeta (fail-soft) jest taka ˙ze: v 6 α. Wynika z tego (Knuth-Moore), ˙ze v jest górnym oszacowaniem warto´sci gry: v∗6v.
Definicja
Mówimy, ˙ze zadane okno α-β zawiodło gór ˛a (ang. failed high), je ˙zeli warto´s´c v zwrócona przez procedur ˛e fsAlphaBeta (fail-soft) jest taka ˙ze: β 6 v. Wynika z tego (Knuth-Moore), ˙ze v jest dolnym oszacowaniem warto´sci gry: v 6 v∗.
Algorytm Scout
Im zadane okno jest w ˛e˙zsze, tym wi ˛eksza szansa na powstawanie odci ˛e´c.
Tylko pierwsze dziecko ka ˙zdego stanu jest analizowane z pełnym oknem α-β, drugie dziecko i dalsze dzieci s ˛a analizowane zerowym oknem, tj. α-(α + 1) lub (β − 1)-β odpowiednio dla stanów typu MAX, MIN.
Zerowe okno musi zawie´z´c w jedn ˛a ze stron.
Je ˙zeli zerowe okno nastawione dla dziecka stanu MAX zawiedzie dołem, to nie przejmujemy si ˛e — wypłaty gracza maksymalizuj ˛acego nie mo ˙zna było poprawi´c w ramach tego dziecka (zysk obliczeniowy, prawdopodobna wi ˛eksza liczba odci ˛a´c w ramach poddrzewa tego dziecka).
Je ˙zeli zerowe okno nastawione dla dziecka stanu MAX, zawiedzie gór ˛a, to musimy przeszukiwanie drzewa dla tego dziecka powtórzy´c (strata obliczeniowa) z szerszym oknem v-β, aby uzyska´c dokładn ˛a warto´s´c poddrzewa dziecka. Uwaga: i tak jest to okno w ˛e ˙zsze ni ˙z pełne α-β.
Powy ˙zsze dwie uwagi odpowiednio odwrotne dla w ˛ezłów MIN.
Algorytm Scout
Procedura scoutMax(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 b:= β.
3 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= scoutMin(t, d +12, D, α, b).
2 Je ˙zeli t nie jest pierwszym dzieckiem i D − d > 2 ·12 i b 6 v(failing high), to:
1 v:= scoutMin(t, d +12, D, v, β). (ponowne przeszukanie szerszym oknem)
3 α := max{α, v}.
4 Je ˙zeli α > β, to zwró´c α. (przyci ˛ecie)
5 b:= α + 1.
4 Zwró´c α.
Algorytm Scout
Procedura scoutMin(s, d, D, α, β)
1 Je ˙zeli s jest terminalem, to zwró´c h(s).
2 a:= α.
3 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= scoutMax(t, d +12, D, a, β).
2 Je ˙zeli t nie jest pierwszym dzieckiem i D − d > 2 ·12 i v 6 a(failing low), to:
1 v:= scoutMax(t, d +12, D, α, v). (ponowne przeszukanie szerszym oknem)
3 β := min{β, v}.
4 Je ˙zeli α > β, to zwró´c β. (przyci ˛ecie)
5 a:= β − 1.
4 Zwró´c β.
Ilustracja Scout’a — przykład 1
MAX
MIN
MAX α = −∞
β = ∞, 5
α = −∞, 5 β = ∞
α = −∞, 5 β = ∞
5 4
α = 4, 6
β = 5 α = 5, 7
β = 6
α = 5 β = 6, 5
α = 5 β = 6
6 ∗ 7 ∗ 4 4
Ilustracja Scout’a — przykład 2
MAX
MIN
MAX α = −∞
β = ∞, 5
α = −∞, 5,6 (6 6 v∗), fail high, bo 6 = b > v = 6 β = ∞
α = −∞, 5 β = ∞
5 4
α = 4, 6
β = 5 α = 5, 7
β = 6 α = 5
β =6
α = 5,8 β = 6
6 ∗ 7 ∗ 4 8
?
Algorytm Scout
Warunek D − d > 2 ·
12sprawdza, czy jeste´smy na gł ˛eboko´sci 2 półruchy do ko ´nca lub gł ˛ebszej. Je ˙zeli tak, to niepotrzebne jest powtórne
przeszukanie pomimo sytuacji fail, bo algorytm działa dokładnie na tych gł ˛eboko´sciach.
Algorytm dobrze sprawdza si ˛e w progressive search we współpracy z heurystykami sortuj ˛acymi ruchy, szczególnie z killer heuristic, gdzie najlepszy ruch (i najlepsza ´scie ˙zka) jest zwykle rozpatrywany jako pierwszy. Z tego powodu bywa nazywany Principal Variation Search.
Do´swiadczenia wskazuj ˛a, ˙ze zyski obliczeniowe wynikaj ˛ace z zerowych okien i cz ˛ estszych odci ˛ e´c s ˛ a zwykle wi ˛ eksze ni˙z straty wynikaj ˛ ace z powtórnych dokładnych przeszuka ´n.
Do´swiadczenia Reinefelda pokazały, ˙ze dla drzew o rozgał ˛ezianiu
b ∈ [20, 60] (np. szachy), Scout odwiedzał około 20% mniej li´sci. Testy
dla gł ˛eboko´sci 4, 5 półruchów.
Algorytm Negamax
Fakt:
∀n ∈ N ∀a
1, a
2, . . . , a
nmin{a
1, a
2, . . . , a
n} = − max{−a
1, −a
2, . . . , −a
n}.
Dzi ˛eki temu mo ˙zna upro´sci´c implementacj ˛e zast ˛epuj ˛ac bli´zniacze procedury rekurencyjne jedn ˛a procedur ˛a we wszystkich algorytmach:
Negamax (tak naprawd ˛e negaAlphaBeta), Negascout, itp.
Algorytm Negamax
Procedura negaMax(s, d, D, α, β, color)
1 Je ˙zeli s jest terminalem, to zwró´c color · h(s).
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 α := max{α, −negaMax(t, d +12, D, −β, −α, −color)}.
2 Je ˙zeli α > β, to zwró´c α.
3 Zwró´c α.
Wywołanie zewn ˛etrzne na rzecz maksymalizuj ˛acego korzenia: negaMax(korze ´n, 0, D, −∞, ∞, 1).
Ilustracja Negamax’u — przykład 1
MAX
-MAX
MAX α = −∞, −5
β = ∞
α = −∞, 5 β = ∞
α = −∞, 5 β = ∞
5 4
α = −∞, 6
β = 5 α = 5, 7, 10
β = ∞
α = −∞, −10, −5 β = −5
α = 5 β = 10
6 ∗ 7 10 4 4 −h(s)
Algorytm Negascout
Procedura negascout(s, d, D, α, β, color)
1 Je ˙zeli s jest terminalem, to zwró´c color · h(s).
2 b:= β.
3 Dla wszystkich stanów t b ˛ed ˛acych potomkami s wykonuj:
1 v:= −negascout(t, d +12, D, −b, −α, −color).
2 Je ˙zeli t nie jest pierwszym dzieckiem i D − d > 2 ·12 i b 6 v(failing high), to:
1 v:= −negascout(t, d +12, D, −β, −v). (ponowne przeszukanie szerszym oknem)
3 α := max{α, v}.
4 Je ˙zeli α > β, to zwró´c α. (przyci ˛ecie)
5 b:= α + 1.
4 Zwró´c α.
Warcabnik (Mateusz Bo ˙zykowski) (1)
Praca magisterska: Mateusz Bo˙zykowski, Implementacja samoucz ˛acego si˛e programu do gry w warcaby, WI, 2009.
Warcaby: mi ˛edzynarodowe (tzw. polskie) (100-polowe, gracze maj ˛a po 20 pionów), brazylijskie(64-polowe, po 12 pionów), angielskie (64-polowe, po 12 pionów, damki ruszaj ˛a si ˛e o 1 pole).
Implementacja przycinania α-β z wykorzystaniem tablicy transpozycji i algorytmu Quiescence.
Wiele programów warcabowych graj ˛acych wg ró ˙znych heurystyk konkurowało przeciw sobie w ramach ewolucji genetycznej.
Osobniki to˙zsame z heurystykamioceniaj ˛acymi pozycj ˛e (ró ˙zne SI). Najprostsza heurystyka materialna, symetryczna:
h = w1Pp+w2Kp− w1Po− w2Ko, (13) gdzie P, K oznaczaj ˛a odpowiednio liczb ˛e pionów i damek (pawns, kings) a indeksy p, o oznaczaj ˛a odpowiednio gracza oceniaj ˛acego (player) i przeciwnika (opponent).
Parametrami do optymalizacji genetycznej s ˛a w1, w2.
Warcabnik (Mateusz Bo ˙zykowski) (2)
Nie mo ˙zna przyporz ˛adkowa´c liczbowego przystosowania osobnikom, a nawet rankingu
— zdarzały si ˛e przypadki „kamie ´n-no˙zyce-papier” (ang. three-ways-draw): A wygrywa z B, B wygrywa z C, C wygrywa z A.
Nasuwa si ˛e selekcja turniejowa. Problemy: (1) cz ˛esto spotykane remisy (kogo wówczas przenie´s´c do populacji nast ˛epnej?), (2) mo ˙zliwo´s´c utraty najlepszego osobnika, (3) wskazanie jednego najlepszego osobnika w ko ´ncowej populacji.
Ostatecznie: autorski pomysł na selekcj ˛e turniejow ˛a z rozmiarem populacji b ˛ed ˛acym pot ˛eg ˛a dwójki n = 2m. Osobniki parowane losowe do meczy, n/2 populacji napełniane zwyci ˛ezcami turniejów (w przypadku remisu dodawane 1 dziecko skrzy ˙zowanych rodziców), reszta populacji dopełniana iteracyjnie zwyci ˛ezcami pojedynków pomi ˛edzy wcze´sniej dodanymi osobnikami.
Zwyci ˛ezca ostatniego pojedynku (zwyci ˛ezca w´sród zwyci ˛ezców) uznawany za najlepszego osobnika w ostatniej populacji.
Warcabnik (Mateusz Bo ˙zykowski) (3)
Krzy˙zowanie liniowe— losujemy liczb ˛e α ∈ (0, 1), dziecko C rodziców A i B otrzymuje heurystyk ˛e:
wi(C) = αwi(A) + (1 − α)wi(B). (14) Krzy˙zowanie jednorodne— dla ka ˙zdego wilosujemy, od którego rodzica pochodzi (i ustawiamy bez zmian). Sugerowana dodatkowo mutacji.
Mutacjao stałym promieniu, ka ˙zdy gen zmieniany o warto´s´c losow ˛a z [−20, 20].
Prawdopodobie ´nstwo mutacji wygaszane liniowo od 0.9 w pierwszej iteracji do 0.3 w ostatniej iteracji.
Mo ˙zliwo´s´c nastawy ró ˙znej gł ˛eboko´sci drzewa w zale ˙zno´sci od numeru iteracji genetycznej (im AG dalej tym wi ˛eksze drzewo).
Warcabnik (Mateusz Bo ˙zykowski) (4)
Badane heurystyki:
materialna, niesymetryczna
h = w1Pp+w2Kp+w3Pp+w4Kp (15)
materialno-pozycjna, symetryczna(ogólnie h = hp− ho)
hs=w1Ps+w2Ks+w3Cs+w4Ss+w5OTs+w6PTs+w7KDs, (16) gdzie: C — liczba bierek w centrum, S — liczba bierek po bokach, OT — liczba pionów na linii przemiany przeciwnika (bronienie przemiany), PT — liczba pionów o jedno pole od własnej przemiany, KD — liczba damek na głównej przek ˛atnej.
rozszerzona materialno-pozycjna, symetryczna(ogólnie h = hp− ho)
hs=w1Ps+ · · · + w7KDs+w8Ms+
w9 Ds
Ps+Ks
+w10KD2s, (17) gdzie: M ∈ 0, 1 — bonus za ruch, D — liczba zdublowanych bierek (stykaj ˛acych si ˛e rogami), KD2 — liczba damek na podwójnej przek ˛atnej.
Warcabnik (Mateusz Bo ˙zykowski) (5)
Badane heurystyki:
materialno-wierszowa— piony maj ˛a ró ˙zne warto´sci w ró ˙znych wierszach.
hs=
N−1X
i=1
wiPi+wNK, (18)
gdzie: N — liczba wierszy warcabnicy, Pi— liczba pionów w i-tym wierszu.
materialno-strukturalna, symetryczna— powstała w wyniku obserwacji, ˙ze heurystyka wierszowa była istotnie słabsza od rozszerzonej materialno-pozycyjnej (próba
podratowania wierszowej), oraz obserwacji, ˙ze liczba zdublowanych bierek miała wpływ ujemny:
hs=w1Ps+w2Ks+w3OTs+w4PTs+w5Is+w6Fs (19) gdzie: I — liczba niezbijalnych bierek, F — liczba unieruchomionych bierek.
Warcabnik (Mateusz Bo ˙zykowski) (6)
Uzyskane wyniki optymalizacji:
materialna, niesymetryczna:
Pp=5, Kp=12, Po= −7, Ko=10.
Komentarz: agresywna gra pionami, zbicie cudzego piona podnosi ocen ˛e pozycji o 2.
Ostro ˙zna gra damkami w ko ´ncówce, bo własne wi ˛ecej warte od przeciwnika.
materialno-pozycyjna, symetryczna:
Ps=24, Ks=65, Cs=1, Ss=1, OTs= −11, PTs=27, KDs=0.
Komentarz: dziwi uznanie pionów broni ˛acych linii przemiany za negatywne, oraz damek na przek ˛atnej za oboj ˛etne.
Warcabnik (Mateusz Bo ˙zykowski) (7)
Uzyskane wyniki optymalizacji:
rozszerzona materialno-pozycyjna, symetryczna:
Ps=5, Ks=16, Cs=0, Ss=0, OTs=0, PTs=6, KDs=0, Ms=0, Ds= −7, KD2s=0.
Komentarz: zaskakuje wyzerowanie wi ˛ekszo´sci parametrów; istotne wydaj ˛a si ˛e piony tu ˙z przed przemian ˛a i kara za dublowanie bierek.
rozszerzona materialno-wierszowa, symetryczna:
P1=2, P2=1, P3=2, P4=2, P5=2, P6=2, P7=1, P8=3, P9=6, K = 12.
Komentarz: interesuj ˛ace wyrównanie warto´sci w wierszach od 3 do 6, pion w 8-ym wierszu ju ˙z zaczyna by´c wi ˛ecej warty.
rozszerzona materialno-strukturalna, symetryczna:
Ps=13, Ks=85, OTs=0, TTs=6, Is=1, Fs= −1.
Komentarz: wida´c, ˙ze niezbijalno´s´c niesie dodatni wpływ, a unieruchomienie ujemny, co
Warcabnik (Mateusz Bo ˙zykowski) (7)
Porównanie z darmowymi programami warcabowymi:
Dam 2.0— wysoko ceniony program, rozwijany od 1987 r. Brak mo ˙zliwo´sci nastawy gł ˛eboko´sci drzewa — porównanie niemiarodajne. Test: najlepsze SI Warcabnika z drzewem 7 półruchów vs. kolejne poziomy Dam 2.0. Warcabnik wygrywa z poziomami Beginner A, B, remisuje z Beginner C, D, zaczyna przegrywa´c na poziomie powy ˙zej Beginner (tak naprawd ˛e przegrywa ko ´ncówki damkowe).
Little polish v0.7— program Piotra Belinga do gry w warcaby brazylijskie. Ograniczono przeciwnika do 1 s na ruch. Warcabnik zremisował, mimo ˙ze przeciwnik analizował czasami nawet pozycje na 18 półruchów wgł ˛ab. Pojedynki z silniejszymi SI (> 1 s) Warcabnikprzegrywał.
Windames 3D— pozwala na ustawienie 9 poziomów gry. Warcabnik wygrywał z trzema pierwszymi poziomami i przegrywał z kolejnymi. Poniewa ˙z czasy wykonywania ruchów na poziomie czwartym u obu podobne, mo ˙zna przypuszcza´c, ˙ze podobna gł ˛eboko´s´c przeszukiwa ´n.
Warcabnik (Mateusz Bo ˙zykowski) (8)
Porównanie z darmowymi programami warcabowymi:
Warcaby v.1.2— program Marcina ˙Zółtkowskiego do gry w warcaby polskie i brazylijskie, pozwala nastawi´c gł ˛eboko´s´c przeszukiwa ´n (bardziej miarodajne porównanie). Testy na gł ˛eboko´sci 6 półruchów (maks. dopuszczalny u przeciwnika). Warcabnik wygrał w obie odmiany i był znacznie szybszy (ok. 2 s na ruch, a przeciwnik ok. 30 s). Ustawiaj ˛ac 1 półruch płycej przeszukiwanie Warcabnika, uzyskiwał on remis w brazylijskie.
Gui Checkers 1.05+— program Jona Kreuzera do gry w warcaby angielskie. Pozwala nastawi´c maks. gł ˛eboko´s´c i czas. Testy na gł ˛eboko´sci 10 półruchów — Warcabnik przegrywał nawet po ustawieniu mu 1 półruchu wi ˛ecej. Wniosek: zbadane heurystyki oceniaj ˛ace niewystarczaj ˛ace.
Bryd ˙z — problem „double dummy”
Double dummy
Wersja bryd ˙za nieporównawczego jako gry o pełnej informacji. Przydaje si ˛e do analizy optymalnej rozgrywki bryd ˙zowej, w momencie gdy ju ˙z całe rozdanie jest wiadome. Istniej ˛ace programy: Deep finesse, GIB.
Praca in ˙zynierska: Katarzyna Kubasik, Zastosowanie algorytmów przeszukiwania drzew gier do znajdowania punktów minimaksowych dla problemów “double dummy” w grze w bryd˙za, WI, 2011.
Implementacja przycinania α-β z wykorzystaniem tablicy transpozycji.
Mimo, ˙ze 4 graczy N, E, S, W; gracze naprzemienni N i S oraz E i W stanowi ˛a pary, które mo ˙zemy uto ˙zsamia´c jako dwóch graczy: maksymalizuj ˛acego i minimalizuj ˛acego.
Zagrania ka ˙zdego z graczy stanowi ˛a osobny poziom w drzewie. Pełne drzewo ma 4 · 13 = 52 poziomy.
Drzewo przeszukiwa ´n nie jest naprzemienne poziomami MAX i MIN — nale ˙zy sprawdza´c, która strona wzi ˛eła ostatni ˛a lew ˛e (wzi ˛atk ˛e).
Usprawniaj ˛ace elementy: bie˙z ˛ace sprawdzanie sekwensów (np. układ 6, 4, 2, staje si ˛e sekwensem po tym, je ˙zeli pozostali gracze zagraj ˛a 5 i 3); sortowanie zagra ´n wg heurystyki:„skrajne najpierw, ´srodkowe pó´zniej”.
Przykład problemu „double dummy”
♠ A10x
♥ A10x
♦ xxxx
♣ xxx
♠ KQJ
♥ KQJ
♦ xxx
♣ xxxx
N
W E
S
♠ xxxxx
♥ xxxxx
♦ xx
♣ x
♠ xx
♥ xx
♦ AKQJ
♣ AKQJ10
Kontrakt: 6 bez atu, graj ˛a NS. Pierwsze zagranie W: K♠. Jak ma gra´c NS,
aby wzi ˛a´c 12 lew?
Rozwi ˛azanie przykładu
Gracz N powinien przepu´sci´c (nie zabija´c asem) pierwsz ˛a lew ˛e. Po dowolnej kontynuacji W powstanie w ko ´ncówce przymus pikowo-kierowy. Np. po kontynuacji Q♠.
♠ 10
♥ A10
♦
♣
♠ J
♥ KQ
♦
♣
N
W E
S
nieistotne
♠
♥ xx
♦
♣ 10
S gra teraz 10♣ i W jest w przymusie. Bez przepuszczenia w pierwszej lewie przymus nie zaistnieje — pierwsze zagranie N ma skutek 40 poziomów gł ˛ebiej!
Rozwi ˛azanie przykładu
Po innej kontynuacji (innym drugim zagraniu W), np. K♥ powstanie ko´ncówka:
♠ A10
♥ 10
♦
♣
♠ QJ
♥ J
♦
♣
N
W E
S
nieistotne
♠ xx
♥
♦
♣ 10
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
Algorytm Expectiminimax (Michie, 1966)
Przeznaczony do gier, których wynik po cz ˛e´sci zale ˙zy od wyborów graczy, a po cz ˛e´sci od czynników losowych: np. rzut kostk ˛a do gry, rzut monet ˛a, zaczerpni ˛ecie karty z zakrytej potasowanej talii, itp.
Pomysł: oprócz w ˛ezłów drzewa realizuj ˛acych operacje MIN, MAX wprowadza si ˛e dodatkowe w ˛ezły CHANCE, który realizuj ˛a operacj ˛e
´sredniej arytmetycznej lub ´sredniej wa˙zonej.
Miejsce wyst ˛epowania poziomów CHANCE zale ˙zy od reguł gry. W
szczególno´sci np. je ˙zeli ka ˙zdy gracz przed swoim ruchem rzuca kostk ˛a,
to mamy przeplot: CHANCE - MAX - CHANCE - MIN - · · · .
Ilustracja Expectiminimax
Algorytm Expectiminimax
evaluateState(s, d, D) (mieszana procedura rekurencyjna)
1 Oblicz ocen ˛e h := h(s).
2 Je ˙zeli h = ±∞ lub d = D, to zwró´c h.
3 Je ˙zeli s jest stanem MIN:
1 v:= ∞.
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s:
v:= min{v, evaluateState(t, d +12, D)}.
4 Je ˙zeli s jest stanem MAX:
1 v:= −∞.
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s:
v:= max{v, evaluateState(t, d +12, D)}.
5 Je ˙zeli s jest stanem CHANCE:
1 v:= 0.
2 Dla wszystkich stanów t b ˛ed ˛acych potomkami s:
Przykład: backgammon (pol. tryk-trak)
Przykład: backgammon (pol. tryk-trak)
Rzut dwiema kostkami — mo ˙zliwo´sci: 21 = 2+6−12 . Rozgał ˛ezianie na poziomie CHANCE: b = 21.
Dla n = 15 ˙zetonów, w wyniku „typowego rzutu” (nie „dubla”) gracz w maksymalnie swobodnym przypadku mo ˙ze poruszy´c wybranym jednym ˙zetonem (suma oczek), lub wybranymi dwoma. Liczba mo ˙zliwo´sci: n(n − 1) = 210.
W przypadku tzw. „dubli” (taka sama liczba oczek na obu kostkach) gracz ma do dyspozycji 4 pojedyncze ruchy o tej samej warto´sci. Liczba mo ˙zliwo´sci: 4+n−14 = 3060.
Duble pojawiaj ˛a si ˛e z prawdopodobie ´nstwem16.
Blokady pól zmniejszaj ˛a istotnie liczb ˛e mo ˙zliwych ruchów. ´Sredni ˛a warto´s´c rozgał ˛eziania najlepiej oszacowa´c do´swiadczalnie z gry.
Gdy gł ˛eboko´s´c ro´snie prawdopodobie ´nstwo danego stanu maleje wykładniczo — dalekie przewidywanie nie jest bardzo warto´sciowe.
Program TDGammon u ˙zywa przegl ˛adania na gł ˛eboko´s´c D = 2 (4 półruchy) i bardzo dobrej heurystyki oceniaj ˛acej pozycj ˛e (wystarcza dla gry na poziomie mistrzowskim).
1
Teoria gier
2
Drzewa gier i przeszukiwanie
3
Gry o pełnej informacji — algorytmy
4
Gry o pełnej informacji z elementami losowymi — algorytmy
5
Gry o niepełnej informacji
6
´Zródła
Niepełna informacja (ang. imperfect information)
Np. gry karciane, gdzie nie znamy pocz ˛atkowych kart przeciwnika.
Teoretycznie, mo ˙zna policzy´c prawdopodobie ´nstwo ka ˙zdego mo ˙zliwego
rozdania/sytuacji — „troch ˛e jak kostka o bardzo wielu ´scianach rzucona jeden raz na pocz ˛atku gry”.
Pomysł: obliczy´c wypłat ˛e ka ˙zdego zagrania w ka ˙zdym rozdaniu i wybra´c zagranie o najwi ˛ekszej warto´sci oczekiwan ˛a wypłaty.
Przykład: GIB — aktualnie najlepszy program do rozgrywki bryd ˙zowej losuje 100 rozda ´n (próbkowanie Monte-Carlo) zgodnych z dotychczasowymi informacjami i wybiera zagranie, które w ´srednim przypadku daje najwi ˛eksz ˛a liczb ˛e lew.
Szczególny przypadek: je˙zeli istnieje zagranie, które w ka˙zdym rozdaniu daje najwi ˛eksz ˛a wypłat ˛e, to jest ono optymalne.
Uwaga: powy ˙zsza intuicja mo ˙ze by´c mylna i powodowa´c bł ˛edy, je ˙zeli nierówno´s´c jest nieostra (istniej ˛a inne takie zagrania) i je ˙zeli nie obserwujemy wariancji.
Tak naprawd ˛e mo ˙ze by´c koniecznym wielokrotne uruchamianie próbkowania Monte-Carlo, przed ka ˙zdym kolejnym zagraniem (przed ka ˙zdym przeszukaniem).
Mylna intuicja — przykład 1
Wylosowane rozdanie 4-lewowe. Rozgrywane „bez atu”. Gracze musz ˛a dokłada´c do koloru.
Pewne (znane) karty gracza A: K♠, Q♠, A♦, A♣
Pewne (znane) karty gracza B: A♠, J♠, A♥.
Przypu´s´cmy, ˙ze mo ˙zliwa czwarta karta gracza B jest niewiadoma: K♦
lub K♣.
Oceni´c zagranie K♠ z punktu widzenia gracza A.
Mylna intuicja — przykład 1
Mo˙zliwe rozdanie 1 : (gracz A) K♠, Q♠, A♦, A♣ : A♠, J♠, A♥, K♦ (gracz B).
Przykładowy ci ˛ag poprawnych zagra ´n:
1
A: K♠, B: A♠. Pozostałe: (gracz A) Q♠, A♦, A♣ : J♠, A♥, K♦ (gracz B).
2
B: A♥, A: A♣. Pozostałe: (gracz A) Q♠, A♦ : J♠, K♦ (gracz B).
3
B: J♠, A: Q♠. Pozostałe: (gracz A) A♦ : K♦ (gracz B).
4
A: A♦, B: K♦
Obie strony bior ˛a po 2 lewy. Wynik: 0 (?).
Mylna intuicja — przykład 1
Mo˙zliwe rozdanie 2 : (gracz A) K♠, Q♠, A♦, A♣ : A♠, J♠, A♥, K♣ (gracz B).
Przykładowy ci ˛ag poprawnych zagra ´n:
1
A: K♠, B: A♠. Pozostałe: Q♠, A♦, A♣ (gracz A) : J♠, A♥, K♣ (gracz B).
2
B: A♥, A: A♦. Pozostałe: Q♠, A♣ (gracz A) : J♠, K♣ (gracz B).
3
B: J♠, A: Q♠. Pozostałe: A♣ (gracz A) : K♣ (gracz B).
4
A: A♣, B: K♣
Obie strony bior ˛a po 2 lewy. Wynik: 0 (?).
Mylna intuicja — przykład 1
Tak naprawd ˛ e mamy : (gracz A) K♠, Q♠, A♦, A♣ : A♠, J♠, A♥, K∗ (gracz B).
Problem — nale ˙zy odgadn ˛a´c, którego asa wyrzuci´c w momencie gdy B gra A♥.
1
A: K♠, B: A♠. Pozostałe: Q♠, A♦, A♣ (gracz A) : J♠, A♥, K∗ (gracz B).
2
B: A♥, A: A♦/A♣ (?) Pozostałe: Q♠, A♣ (gracz A) : J♠, K∗ (gracz B).
Wynik:
12· (−1) +
12· 0 = −
12.
Uwaga: Inne pierwsze zagrania gracza A: A♦ i A♣ nie s ˛a obarczone dodatni ˛a
wariancj ˛ a i równie˙z daj ˛ a wypłaty 0.
Mylna intuicja — przykład 2
?
♠ KQJxx
♥ AKQ
♦ AJ10
♣ AQ
N
W E
S
♠ Axxxx
♥ xxx
♦ Kxx
? ♣ xx
Kontrakt: 6 pik, graj ˛a WE. Pierwsze zagranie N: x♠. Kluczowe brakuj ˛ace
karty: Q♦, K♣. Czy istnieje rozgrywka gwarantuj ˛aca 12 lew?
Mylna intuicja — przykład 2 — rozwi ˛azanie
?
♠ xx
♥
♦ AJ10
♣ AQ
N
W E
S
♠ xx
♥
♦ Kxx
? ♣ xx
Optymalna rozgrywka:Zabra´c przeciwnikom atuty — piki (graj ˛ac, je ˙zeli potrzeba, trzy rundy pików), zgra´c trzy rundy kierów. Powstanie powy ˙zsza ko ´ncówka. Teraz zagra´c A♣ i Q♣
poddaj ˛ac Q♣ dobrowolnie! Niezale˙znie od kontynuacji N lub S, 12 lew jest pewne.
Inna rozgrywka polegaj ˛aca na próbie złapania K♣ u S (≈ 50% szans), i złapania Q♦ u S lub u N (≈ 50% szans) daje oczekiwan ˛a liczb ˛e lew: ≈1411 +2412 +1413 = 12, ale z wariancj ˛a
≈14(12 − 11)2+24(12 − 12)2+14(12 − 13)2=12lewy.
Wybrane ´zródła
1 J. von Neuman i O. Morgenstern, Theory of Games and Economic Behavior, 1944 (patrz:
http://press.princeton.edu/titles/7802.html).
2 Strona projektu Chinook: http://webdocs.cs.ualberta.ca/~chinook.
3 D.E. Knuth, R.W. Moore, An Analysis of Alpha-Beta Pruning, Artificial Intelligence, 1975 (patrz:
http://www.eecis.udel.edu/~ypeng/articles/An Analysis of Alpha-Beta Pruning.pdf).
4 A. Reinefeld, „An Improvement to the Scout Tree Search Algorithm”, ICCA Journal, 1983 (patrz:
http://www.top-5000.nl/ps/An improvement to the scout tree search algorithm.pdf)
5 D. Larameé, Chess Programming I-V, 2000. http://www.gamedev.net/page/resources/_/reference/programming/
artificial-intelligence/gaming/chess-programming-part-i-getting-started-r1014)
6 M. Bo ˙zykowski, Implementacja samoucz˛acego si˛e programu do gry w warcaby, praca magisterska na WI ZUT, 2009.
7 K. Kubasik, Zastosowanie algorytmów przeszukiwania drzew gier do znajdowania punktów minimaksowych dla problemów
“double dummy” w grze w bryd˙za, praca in ˙zynierska na WI ZUT, 2011.
8 P. Beling, Praktyczne aspekty programowania gier logicznych, praca magisterska, Politechnika Łódzka, 2006.
9 Expectiminimax tree, Wikipedia, (patrz: http://en.wikipedia.org/wiki/Expectiminimax_tree).
10 Materiały o programie bryd ˙zowym GIB, (patrz:
http://www.greatbridgelinks.com/gblSOFT/Reviews/SoftwareReview090301.htmloraz http://www.gibware.com/).