Sztuczna intelegencja w grze Poker
description
Transcript of Sztuczna intelegencja w grze Poker
11
Sztuczna intelegencja w grze Poker
Autor: Pham Hoang Minh
22
Odmiana Pokera „Texas Holdem”
• Cztery fazy rozgrywki:• Pre-flop• Flop• Turn • River
33
Wprowadzenie
• Poker interesująca gra do badań AI
• Gra o niepełnej informacji
• Wieloosobowa rywalizacja
• Probabilistyczna wiedza (o przeciwnikach)
• Ocena ryzyka
• Możliwe oszustwo (blefowanie)
44
Niepełna kontra pełna informacja
• Sukcesy AI w grach typu szachy, warcaby, ...
– Kompletna informacja o stanie gry
– Programy zdolne pokonać najlepszych graczy
• W kontraście gry typu: Poker, Brydż, ...
– Karty innych graczy są nieznane
– Trudność tworzenia programów na poziomie „World-Class”
55
Tradycyjne metody nie działają
• Metoda „Deep Search” (min-max) się nie sprawdza
• Niekompletna informacja to powód wolnego postępu systemów AI gry Pokera
• Lecz to powód większego potencjału badawczego
66
Cel: tworzenie gracza pokera na poziomie „World-Class”
• Atrybuty które gracz pokera na poziomie „World-Class” musi posiadać :
– Umiejętność oceny Hand Evaluation
(Wartości swojej ręki)
– Unpredictability (Nieprzewidywalność)
– Bluffing (Blefowanie)
– Opponent Modeling (Modelowanie przeciwników)
77
Hand Strength
Ocena siły naszej ręki w relacji z rąk przeciwników
• Obliczenie rozważa prawdopodobieństwo każdej możliwej ręki przeciwników, bazując na stan aktualnej gry
• Dokładniejsze obliczenie uwzględnia:
– Ilość graczy nadal uczestniczących w grze– Względnej pozycji gracza przy stole– Historia licytacji aktualnej partii
88
Hand Potential
• Obliczenie prawdopodobieństwo zmiany naszej ręki:
– Prowadzi do zwycięstwa– Prowadzi do porażki
• Przykład:
– Ręka posiadająca 4 karty samego koloru– Niska siła ręki – Duży potencjał na osiągnięcie „kolor” (flush)
99
Unpredictability
• Utrudnia przeciwników do rozpoznania modelu naszej strategii
• Mieszając strategie (spodarycznie rozwiązać daną sytuację różnymi sposobami)
• Przeciwnicy mogą popełnić błędy oparte na niepoprawnych przewidywaniach
1010
Bluffing
• Postawowy atrybut dla pomyślnej gry
• Umożliwia wygranie partii z słabą ręką
• Powoduje niepokój przeciwników
• System może tworzyć teoretycznie optymalną częstość blefowania w poszczególnych sytuacjach
1111
Bluffing c.d.
• Minimalny system blefowania używa:– „Hand Strength”– „Hand Potential”
• Lepszy system identyfikuje:– zysk blefu – wnioskuje w przybliżeniu siły ręki
przeciwników– przewiduje procent ich pasowania (fold)
1212
Opponent Modeling
• Przewiduje postępowanie przeciwników w poszczególnych sytuacjach
• Minimalny system używa pojedynczego modelu dla wszystkich przeciwników
• Ulepszony posiada unikalny model dla każdego oponenta, oparty na jego osobistej historii gry w przeszłości
1313
Inne cechy...
• System AI na poziomie„World-Class” musi posiadać wszystkie wymienione atrybuty
• Istnieją jeszcze drobne cechy potrzebne do osiągnięcia tego poziomu
• Te cechy stanowią część „Betting Strategy” (Strategie Licytacji), która determinuje system: kiedy pasować (fold), wejść (call) czy podbijać (raise) w poszczególnych sytuacjach
1414
Betting Strategy
• Betting Strategy dzieli się na:
– „Pre-flop”
– „Post-flop”
• Fazy te znacząco się od siebie różnią:
– Pre-flop : 2 „hole cards”, wcześniejsze akcje graczy podczas 1-szej licytacji
– Post-flop : pełniejszy kontekst gry, „2 hole cards” i „community cards”, historię wcześniejszych decyzji licytacji przeciwników
1515
Betting Strategies w „Pre-flop”
• Wiedza eksperska:
– Sklansky’s rankings (Rangi Sklanskiego)
– Hutchison system (System Hutchisona)
• Symulacje:
– Roll-out simulation– Iterated Roll-out simulation
• Te metody służą do wyliczenie „income rate” (wartości ręki ) 2 „hole cards” podczas fazy „Pre-flop”
1616
Wiedza eksperska
• Sklansky’s ranking
• Hutchison system
• Przypisanie każdej ręki pewnej ilości punktów wg. ustalonych reguł przez profesjonalistów gry Poker, na podstawie których podejmiemy decyzję licytacji
1717
Sklansky’s ranking
1818
Roll-out simulation
1. Polega na obliczenie kilka milionów partii, gdzie wszystcy gracze wybierają „call” podczas pierwszej licytacji (Big blind)
2. Po czym pozostałe karty zostają rozdane bez jakikolwiek dalszych zakładów
– Nierealistyczna sytuacja
– Jednak daje podstawowe przybliżoną ocenę ręki w danej sytuacji
1919
Iterated Roll-out simulation
• Udoskonalenie symulacji „roll-out”
• Uwzględnia wiedzę zdobytą w poprzednich partiach
• Jeżeli dana 2 kart właśnych ma ujemny bilans w poprzednich partiach, zwiększa się % ze gracz pasuje w fazie „Pre-flop”
• Wady: nie uwzględnia pozycje gracza w stole i działanie przeciwników podczas licytacji
2020
Wartości ręki wyznaczone ekperymentalnie
Hand IR-10 Iterated Hand IR-10 Iterated Hand IR-10 Iterated
AA* +2112 +2920 ATs +736 +640 KQo +515 +310
KK* + 1615 +2180 99* +553 +630 QTs +655 +280
QQ* + 1224 +1700 KQs +858 +620 QJs + 720 +270
JJ* +935 +1270 AQo +555 +560 A9s +538 +220
+714 +920 KJs +767 +480 ATo +335 +200
AKs + 1071 +860 88* +450 +450 KTs +694 +190
AKo +718 +850 77* +364 +390 KJo +391 +160
AQs +915 +780 AJo +430 +380 A8s +469 +110
AJs +813 +680 JTs +657 +360 66* +304 +40
2121
Ważne pojęcia w „Post-flop”
• Probability Triples
• Hand Strength
• Weighting the Enumerations
• Multi-player Considerations
• Hand Potencial
• Effective Hand Strength
• Noise-Factors
• Pot Odds
2222
Probability Triples
• Uporządkowana trójka wartości:PT = {fall,call,raise}, gdzie fall + call + raise = 1
• Reprezentuje dystrybucję prawdopodobieństwa ze następna akcja licytacji w zadanym kontekscie gry będzie odpowiednio:
„fold”, „call”, „raise”
2323
Użycie Probability Triples
• Probability triples używa się w nast. przypadkach:
1. Formula-based Betting Strategy używa Probabilty Triples do wyboru akcji (fold, call, raise)
2. Opponent Modelling używa Probabilty Triples do modyfikacji „Weight Table”
3. Simulation-based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika
2424
Zalety Probability Triples
• Pozwala przekształcić różnych elementów systemu do jednego komponentu, który zwraca Probability Triples
• Przydatne np. podczas używania różnych metod modelowania przeciwnika
• Inne elementy systemu mogą używać takie komponenty jako „black box”
2525
Hand Strength
• Prawdopodobieństwo, że dana ręka jest lepsza od ręki aktywnych oponentów
• Zakładamy, że przeciwnik posiada C(2,n) możliwych dwóch kart właśnych z tym samym prawdopodobieństwem
Gdzie :
C - kombinacja
n - liczba nierozdanych kart
2626
Hand Strength c.d.
• Lepsza ręka : +1pkt
• Remis : +1/2 pkt
• Gorsza ręka : +0 pkt
• Siła ręki = suma pkt/ilość możliwych rąk
• Np. dla pewnej ręki HS wynosi 58%, tzn. ona ma 58% więcej szansy niż losowa ręka
• Lepsza metoda obliczenia siły ręki używa Weighting the Enumerations
2727
Hand Strength (pseudo-kod)
HandStrength(ourCards, boardCards)
{
ahead = tied = behind = 0; // liczniki wyników
ourRank = obliczRank(ourCards, boardCards);
foreach oppCards in allCases
{
oppRank = obliczRank(oppCards, boardCards);
if (ourRank > oppRank) ahead++;
else if(ourRank == oppRank) tied++;
else behind++;
}
handStrength = (ahead+tied/2) / (ahead+tied+behind);
return(handStrength);
}
2828
Weighting the Enumerations
• Zakładaliśmy podczas obliczanie „Hand Strength”, że wszystkie kombinacje 2 „hole cards” są tak samo prawdopodobne (dodaliśmy po 1)
• W prawdziwej grze się znacznie od siebie różnią• Aby to uwzględnić używamy „Weight Tables”
(Tablicę Wag) do uwzględnienie prawdopodobieństwa tych kombinacji
• Każdy przeciwnik posiada właśny „Weight Table” w każdej partii
2929
Przykład „Weight Table” w różnych fazach gry
Każde pole w tablicy posiada liczbę z przedziału [0,1]
Czarny kolor: 1, Biały kolor: 0
3030
Weighting the Enumerations
foreach ‘entry’ in table
{
// obliczenie Probability Triples
ProbabilityDistribution pd[fold, call, raise];
Compute(pd); // „Opponent Modeling” (predict)
table[‘entry’] = table[‘entry’] * pd[A] ;
// A - rzeczywista akcja przeciwnika
}
3131
Multi-player Considerations
• Uwzględnienie wielu graczy dla Hand StrengthHS(n) = HS(p1) * HS(p2) * ... * HS(pn)
p1,p2,...,pn - przeciwnicy
• Nie jest to dokładna wartość, ponieważ HS przeciwników nie są niezależne, np. Weight Table tego nie uwzględnia
3232
Multi-player Considerations c.d.
• Zeby zaoszczędzić czas na obliczenie HS każdego przeciwnika, można używać
„Field Array”
• Jest to tablica wag, w którym wagi stanowią średnią wag wszystkich tablicy wag graczy uczestniczących w grzeHS(n) = [HS(field)]^n
• Daje mniej dokładny wynik, czasami duże błędy
3333
Hand Potencial
• Po „flop” jeszcze następują fazy „turn” i „river”
• 2 nieukazane karty mogą znacznie zmienić siłę naszej ręki
• Hand Potencial dzieli się na:
– Positive Potencial (PPot) – Negative Potencial (NPot)
3434
Hand Potencial c.d.
• PPot : prawdopodobieństwo, że nasza aktualna, nie najlepsza ręka się polepszy i wygramy partię.
PPot = P(ahead|behind) + P(tied|behind)/2 + P(ahead|tied)/2
• NPot : prawdopodobieństwo, że nasza aktualna, najmocniejsza ręka przy stole się pogorszy i przegramy partię.NPot = P(behind|ahead) + P(behind|tied)/2 + P(tied|ahead)/2
3535
Hand Potential (pseudo-kod)
HandPotential(ourCards, boardCards)
{
ourRank = obliczenie_siły_naszej_ręki
foreach oppCards in allCases
{
// Obliczenie wszyskich przypadków wystąpienia kart w turn i river
foreach case in turn
foreach case in river
obliczenie_indeksów_dla_różnych_sytuacjach
}
obliczenie PPot i NPot na postawie wyliczonych indeksów
return(PPot, NPot);
}
3636
Effective Hand Strength
• EHS łączy w sobie siłę ręki i potencjał ręki. Daje względną miarę siły naszej ręki w porównaniu z rękami przeciwnikówEHS = P(ahead)*P(opponent do not improve) + P(behind)*P(we improve) EHS = HS*(1-NPot) + (1-HS)*PPot
• PPot ważniejszy od NPot EHS = HS + (1-HS)*PPot (dla NPot = 0)
• Uwzględnienie wielu graczyEHS(i) = HS(i) + (1-HS(i))*PPot(i)
3737
Noise-Factors• Wartość z przedziału [0,1]
• Reprezentuje niepewność naszej wiedzy, jak akcja wykonana przez przeciwnika odwierciedla posiadanych przez niego kart
• Modyfikuje „Probability Triples”
(dystrybucja {Pr(fold), Pr(call), Pr(raise)}) używana w „Weighting the Enumeration”.
• Każde zdarzenie a w dystrybucji jest zmienionea = a – a*b + b/|D|
gdzie: b - noise-factor, D – probability distribution, |D| = 3
3838
Noise-Factors (przykład)
• Probability Triples {0.0, 0.2, 0.8}noise-factor = 0.5
Obliczenie:Pr(fold) = 0 – 0*0.5 + 0.5/3 = 1/6 = 0.167
Pr(call) = 0.2 – 0.2*0.5 + 1/6 = 0.267
Pr(raise) = 0.8 – 0.8*0.5 + 1/6 = 0.567
• Po uwzględnieniu noice-factor
Probability Triples {0.167, 0.267, 0.567}
3939
Pot Odds
• Stosunek rozmiaru „pot_size” (sumy zakładu na stole) do kwoty naszej licytacji
• Mówi nam, czy z naszą aktualną ręką warto grać dalej (opłacalność inwestycji)
Immediate_pod_odds = amount_to_call / (pot_size + amount_to_call)
4040
Pot Odds (przykład)Immediate_pod_odds = 10zł / (50zł + 10zł) 0.167
• Jeżeli postanowimy „call” w sytuacji, gdy mamy więcej niż 16.7% na osiągnięcie wygrywającej ręki, to oczekiwana opłacalność jest pozytywna
• W przypadku gdy mamy 15% szansy wygranej, wówczas nie opłaca się „call”
Wartość oczekiwana inwestycji = (50zł*0.15) – (10zł*0.85) = -1zł
4141
Pozostałe atrybuty licytacji
• Implied pot odds• Względna pozycja licytacji
• Historia licytacji aktualnej partii
• Kieszeń przeciwnika
• ...
4242
Betting Strategies w „Post-flop”
• Formula-based Betting Strategy (Basic)
• Selective Sampling and Simulation-based Betting Strategy
4343
Formula-based Betting Strategy
• Sprawiedliwa formuła do oceny wartości ręki, daje odpowiedz na właściwą licytację.
• Używamy 3 następujących kroków:
1) Obliczenie „Effective Hand Strength” EHS (Efektywnej Siły Ręki), względną siłę naszej ręki w porównaniu z oponentami
4444
Formula-based Betting Strategy
2) Użycie kontekstu gry, sztywnych zasad do obstawiania, formuł do przekształcenia EHS w dystrybucję prawdopodobieństwa zdarzenia {Pr(fold), Pr(call), Pr(raise)} (Probability Triples)
3) Generowanie losowej liczby [0,1] i użycie jej do wyboru jednej z akcji z dystrybucji. Daje to nieprzewidywalność
4545
Selective Sampling and Simulation-based Betting Strategy
• Formula-based Betting Strategy jest równoważny z statyczną funkcją oceny w grach o pełnych informacjach (szachy, GO,...)
• Próba znajdowania algorytmu podobnego do Alpha-Beta w dziedzinie gry Poker
• Selective Sampling wybiera do symulacji najbardziej prawdopodobne przypadki występowania kart (przeciwników), np. używając „Weight Table”
• Przeprowadzimy symulacje do końca i zbieramy wynik każdy z tych prób
4646
Selective Sampling and Simulation-based Betting Strategy
• Z odpowiednio dużą liczbę prób, symulacji daje statystyczne pewne wyniki
• Dla każdej próby, ręka jest zasymulowana 2 razy
– call (check)
– raise (bet)
• Nie używamy pełnych przeszukiwań
• Używamy rzadkich, lecz głębokich symulacji wielokrotnie aż do liści
4747
Różnica między klasycznym drzewem gry a symulacją
4848
Simulation (pseudo-kod)
Simulation()
{
trials = callEV = raiseEV = 0;
while (trials < MAX_TRIALS)
{
przydzielKarty();
callEV += simulate(call);
raiseEV += simulate(raise);
trials++;
}
callEV = callEV / trials;
raiseEV = raiseEV / trials;
return(callEV, raiseEV);
}
4949
Selective Sampling and Simulation-based Betting Strategy
• Dla każdej decyzji używamy 200-300 symulacji, ze względu na ograniczenie czasowe gry
• Po kilkuset symulacji średnia ilość zwycięstw lub przegranych po akcji „call”, „raise” zbiega sie do
oczekiwanych wartości akcji (Expected Value EV)
• EV dla „fold” może być obliczony bez symulacji, ponieważ nie wpływa na przyszłych zysków czy strat
5050
Zalety i Wady Simulation Betting Strategy
• W przeciwieństwie do Formula-based Betting Strategy, nie jest on sztywną strategią
• Może drastycznie się zmienić w zalezności od „opponent models”
• Dostosowuje się do różnych oponentów
• Silna relacja jakości symulacji do funkcji oceny akcji przeciwników (Opponent Modeling)
• Taktyka przeciwnika (bluffing, slowplaying, check-raising) jest odkryta podczas symulacji
5151
Opponent Modeling
• Nie istnieje system gry Pokera bez dobrego modelowania przeciwników (Opponent Modeling)
• Każdy silny gracz Pokera musi zmieniac swój sposób gry, dostosowując się do sposobu gry przeciwników
• Niektórzy przeciwnicy mogą często blefować, a niektórzy rzadko
5252
Opponent Modeling c.d.
• Używa się Opponent Modeling do przynajmniej 2 celów : – wnioskowanie siły ręki przeciwnika, bazując
się na jego wcześniejszych akcji– przewidywanie jego akcji w konkretnych
sytuacjach • Główny cel „Opponent Modeling” to zgadnięcie
akcji przeciwników (Predictor)• Praca Predictor’a to zamiana konkretnego stanu
gry na dystrybuanty prawdopodobieństwa akcji(Probability Triples)
5353
Trudności wOpponent Modeling c.d.
• Uncertainty (Niepewność)
• Missing Information (Brakujące Informacje)
• Unknown Dimensions (Nieznane Wymiary)
• Intuition (Intuicja)
• Multiple Levels (Wielokrotne poziomy)
• Moving Targets (Ruchome Obiekty)
5454
Uncertainty
• Wiele niewiadomych kart w grze
• Każda partia może być zupełnie inna niż poprzednia
– różnią się „hole cards”– „community cards”
• Ogromna liczba partii musi być rozegrana aby powtórzyły się kilka najczęściej występujących sytuacji
5555
Missing Information
• Nie wiele partii udaje się doprowadzić do „showdown”
• Często niewielki procent ręki jest pokazana w „showdown”, gracz który pasuje nie pokazuje swoich kart
• Możemy weryfikować tylko małą ilość rąk pokazanych przez przeciwnikow
5656
Unknown Dimensions
• Niewiadoma jest liczba czynników wpływających na to, jak gracz bedzie grał w danej partii
• Niektóre czynniki są ważniejsze od innych
• Niektóre czynniki są istotne dla niektórych graczy, a dla niektórych wręcz obojętne
• Nawet humor dnia gracza może znacząco wpływać na jego grę
5757
Intuition
• Po małej liczbie obszerwacji, człowiek tworzy teorię o przeciwnika, bazując się głównie na intuicję i doświadczeniu
• Jeżeli teoria się sprawdza w przyszłych obszerwacjach, wówczas używa się ją w przyszłych decyzjach licytacji
• Człowiek może zmieniać swój sposób gry, aby testować swoją teorię
• Maszyna zwykle potrzebuje ogromną liczbę obszerwacji aby zbudować system wiedzy, opierając na historię przeszłych partii. Proces ten jest niezwykle powolny
5858
Multiple Levels
• Jeżeli obszerwujemy przeciwnika grającego przeciwko innego przeciwnika, możemy przyjąć błędną tezę, iż bedzie tak samo grał przeciwko nam
• Przeciwnik modeluje swoich przeciwników, przystosowują swojej gry do każdego konkretnego przeciwnika
• Potrzebujemy nie tylko ogólnego modelu przeciwnika, lecz jak przeciwnik modeluje innych przeciwników
5959
Moving Targets
• Możemy zdobywać wiedzę o przeciwnika na podstawie przeszłych obszerwacji
• Dobry przeciwnik zmienia swoją strategię w czasie
• Może się okazać, ze nasz model o przeciwniku jest przestarzały
• Trzeba przystąpić do nowych obszerwacji
6060
Methods of Prediction (Metody Przewidywania)
• Expert Systems
• Statistics
• Neural Networks
• Decision Trees
• Confusion Matrices
• Multi-Predictor Voting
6161
Expert Systems
• Używamy sztywnych reguł jako do przewidywania akcji przeciwnika
• Zakładamy, ze gracz bedzie się grał w rozsądny sposób w poszczególnych sytuacjach (generic opponent modeling)
• Nie jest to skuteczna metoda, ale daje przyzwoity punkt odniesienia dla innych metod modelowania oponentów
• Bardzo użyteczna metoda, gdy gramy z przeciwnikiem po raz pierwszy
6262
Statistics
• Przewidujemy akcji przeciwników uwzględniając ich zachowanie w przeszłości
• Dzielimy przestrzeń zachowań przeciwnika w różnych kontesktach gry na rozłączne klasy
• Daje to zbiór klas zawierających różne dane statystyczne, np. częstość „call” w fazie „river”
• Mogą wystąpić tez zbiór prawdopodobieństwo warunkowe np. Pr(Call|River & have a button)
6363
Statistics c.d.
• Problem związany z ilością klas
– Dużo klas ==> wolna zbieność nauczania,
mała możliwość uogólnianie informacji– Mało klas ==> zbyt ogólne informacje
• Problem z charakterystycznymi cechami poszczególnych graczy
• Np. Niektórzy gracze są przywiązani do „koloru” a niektórzy do „strit”. Jeżeli posiadają słabą rękę z dużym potencjałem do osiągnięcia tych układów, bedą „raise” lub „re-raise”
6464
Neural Networks
• Bardziej ogólny system do modelowania przeciwników
• Posiada dużą zdolność do uogólniania informacji, odporność na szum
• Prosta sieć jednokierunkowa (feed-forward)
• Algorytm uczący sieci: np. Backpropagation
6565
Neural Networks inputs
6666
Neural Networks jako „predictor”
6767
Decision Trees
• Nawigacja w drzewie następuje w każdym węzle drzewa (pytanie jak grać dalej)
• W zależności od odpowiedzi przemierzamy po konkretnych gałęziach aż do liści
• Startujemy z pojedynczego węzła, po czym dzielimy węzeł na kilka węzłów, które zawierają przypadki osiągając max ilość informacje o grze
• Liść zawiera częstość wyboru podczas sesji treningowej, które wpadły do tego liścia
• Możemy eliminować liści, które mają bardzo małą częstość
6868
Decision Trees (przykład)
6969
Decision Trees vs Neural Networks
• Gorsza zdolność do uogólniania od Neural Networks
• Mniejsza odporność na szum
• Lecz daje większą dokładność „Probability Triples” dla dostępnych wyborów
• Reprezentacja prosta do zrozumienia dla człowieka, łatwo można określić jaką wiedzę zostało nauczone drzewo
7070
Confusion Matrices
• Sposób na sprawdzenia jak dobrze działają wcześniejsze „predictors”
• Pokazuje w ilu przypadkach podczas testów nasz „predictor” miał rację, a w ilu przypadkach popełnił błędy
• Przekątne macierzy pokazują poprawne przewidywanie
• Suma przewidywań dla poszczególnych przypadków jest ukazany w ostatnim wierszu i w ostatniej kolumny
7171
Confusion Matrices (przykład)
7272
Multi-Predictor Voting
• Możemy mieć dylemat, którego z „predictors” używać
• Eleganckie rozwiązanie jest użycie tych wszystkich metod, poprzez głosowanie
• Każde głosowanie polega na porównanie dokładności przewidywania metod
• Jeżeli metoda popełnia błędy, to dajemy szańszę inną która w tym momencie posiada największą dokładność przewidywań
7373
Opponent Modeling podsumowanie
• Kluczowe do tworzenia gracz Pokera „World-Class”
• Opponent Modeling w Pokerze posiada największą liczbę problemów podczas uczenia systemu:
– uncertainty
– noise (missing information)
– szybka nauka i uogólnianie za pomocą małej liczby przykładów treningowych, często z niepełnymi informacjami
– Ograniczenia związane z naturą gry czasu rzeczywistego. Np. 2,3 s na podjęcie decyzji
7474
Różne pomysły do Pokera
• Jak stworzyć optymalną strategię w grze Pokera??
• Metody ewolucyjne
• Miximax Search
• Miximix Search
• ???
7575
Metody ewolucyjne
• Metody ewolucyjne
• Cel: znajdowania najlepszej strategii dla poszczególnych przypadków gry
• Tworzenie populacji początkowej o losowej strategii
• Populacje bedą ze sobą konkurować, zeby wybrać najlepsze strategie do następnego pokolenia
• Operacje genetyczne ???
• Selekcja ???
7676
Drzewo gry Miximax
• Następna próba użycia min-max w Pokerze
• Ze względu na niepełną informację o stanie gry, musimy przyjął pewne dane losowo
• Miximax Search
• Miximix Search
7777
Miximax dla Pokera (przykład)
7878
Dziękuję za uwagę!