• Nie Znaleziono Wyników

Algorytm MIN-MAX — historia, odmiany, usprawnienia

N/A
N/A
Protected

Academic year: 2021

Share "Algorytm MIN-MAX — historia, odmiany, usprawnienia"

Copied!
77
0
0

Pełen tekst

(1)

— historia, odmiany, usprawnienia

Przemysław Kl ˛esk pklesk@wi.zut.edu.pl

Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej

(2)

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

(3)

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

(4)

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.

(5)

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.

(6)

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).

(7)

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).

(8)

Przykład dla twierdzenia

B wybiera b

1

B wybiera b

2

B wybiera b

3

A wybiera a

1

3 −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?

(9)

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.

(10)

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)

(11)

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.

(12)

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 (s1, . . . , sn) stanowi równowag ˛e Nasha, wtedy i tylko wtedy, gdy:

∀i ∀s ∈ S : W(s, . . . , s, . . . , s) > W(s, . . . , s, . . . , s). (6)

(13)

Równowaga Nasha (NEQ)

Innym sposobem wypowiedzenia NEQ, jest to, ˙ze sijest rozwi ˛azaniem:

maxsi∈Si

Wi(s1, . . . , si, . . . , sn) (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).

(14)

Paradoks Braess’a

A

B

C

D 1 +

100n

0.25

2 1 +

100n

2

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

(15)

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.

(16)

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.

(17)

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

(18)

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.

(19)

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).

(20)

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.

(21)

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.

(22)

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

3

10

5

connect 4 42 10

13

10

21

warcaby angielskie 32 10

20

10

31

tak ˙ze: Nash lub John hex 121 10

56

?

szachy 64 10

47

10

123

connect 6 361 10

172

10

140

backgammon

tak ˙ze: tryk-trak 28 10

20

10

144

tak ˙ze: batuk Go 361 10

171

10

360

(23)

Projekt 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).

(24)

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.

(25)

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.

(26)

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

(27)

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.

(28)

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.

(29)

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 β.

(30)

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

(31)

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.

(32)

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)

(33)

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 voznacza 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) ⇒ v6v (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.

(34)

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.

(35)

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ół.

(36)

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.

(37)

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).

(38)

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.

(39)

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 vjest 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: v6v.

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.

(40)

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.

(41)

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 α.

(42)

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 β.

(43)

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

(44)

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

?

(45)

Algorytm Scout

Warunek D − d > 2 ·

12

sprawdza, 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.

(46)

Algorytm Negamax

Fakt:

∀n ∈ N ∀a

1

, a

2

, . . . , a

n

min{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.

(47)

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).

(48)

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)

(49)

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 α.

(50)

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.

(51)

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.

(52)

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).

(53)

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.

(54)

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.

(55)

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.

(56)

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

(57)

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.

(58)

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.

(59)

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”.

(60)

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?

(61)

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!

(62)

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

(63)

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

(64)

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 - · · · .

(65)

Ilustracja Expectiminimax

(66)

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:

(67)

Przykład: backgammon (pol. tryk-trak)

(68)

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).

(69)

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

(70)

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).

(71)

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.

(72)

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 (?).

(73)

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 (?).

(74)

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.

(75)

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?

(76)

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.

(77)

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/).

Cytaty

Powiązane dokumenty

Znale´z´c si l¸e wywieran¸a przez tak¸a mas¸e na mas¸e punktow¸a znajduj¸ac¸a si¸e w odleg lo´sci x od ´srodka kuli.. Znajd´z energi¸e potencjaln¸a tego

Zak ladaj¸ac, ˙ze b l¸edy pomiar´ow maj¸a rozk lad normalny o nieznanym σ, na poziomie ufno´sci 0.95 znale´z˙c przedzia l ufno´sci dla odchylenia standardowego σ.. W celu

Zak ladaj¸ac, ˙ze b l¸edy pomiar´ow maj¸a rozk lad normalny o nieznanym σ, na poziomie ufno´sci 0.95 znale´z˙c przedzia l ufno´sci dla odchylenia standardowego σ5. W celu

On the basis of visualization of 7-dimensional data by observational tunnels method the view for All pairs of coal types were obtained from which it occurred that the

[r]

[r]

[r]

The high efficiency is related to the energy policy aimed to protect the environment from the consequences of the adopted energy management and to enhance energy security by reducing