Department of Cybernetics Czech Technical University in Prague. pechouc/kui/games.pdf

Podobné dokumenty
! Kyberne(ka!a!umělá!inteligence! 8.!Hraní!dvouhráčových!her,!adversariální! prohledávání!stavového!prostoru!!!!

Obsah: Hry Prohledávání stavového prostoru. Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Hry a UI historie. agent musí brát v úvahu akce jiných agentů jak ovlivní jeho. vliv ostatních agentů prvek náhody. Hry: Obsah:

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Hry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování

HRY A UI HISTORIE. Hry vs. Prohledávání stavového prostoru. Obsah:

Uvažujeme jen hry s nulovým součtem, tj. zisk jednoho. Střídá se náš tah, kde maximalizujeme svůj zisk, s tahem

Hry a UI historie. Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi. 72 studentů

Hry a UI historie. Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Uvažujeme jen hry s nulovým součtem, tj. zisk jednoho. Střídá se náš tah, kde maximalizujeme svůj zisk, s tahem

Algoritmy pro hraní tahových her

Počítačové šachy. Otakar Trunda

Neinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague

Varianty Monte Carlo Tree Search

Neinformované metody prohledávání stavového prostoru Michal Pěchouček, Milan Rollo. Department of Cybernetics Czech Technical University in Prague

Hraní her. (Teorie a algoritmy hraní her) Řešení úloh hraní her. Václav Matoušek /

2. Řešení úloh hraní her Hraní her (Teorie a algoritmy hraní her)

Základy umělé inteligence

Obsah: Algoritmus Minimax. 7 9 Nedeterministick і hry 7 9 Hry s nep 0 0esn 0 5mi znalostmi

Umělá inteligence I. Roman Barták, KTIML.

Úvod do teorie her

a4b33zui Základy umělé inteligence

Stručný úvod do teorie her. Michal Bulant

Algoritmy pro práci s neúplnou informací

Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

TGH13 - Teorie her I.

Anotace. Středník II!! programování her.

Optimalizace & soft omezení: algoritmy

Monte Carlo Tree Search. Marika Ivanová

A4B33ZUI Základy umělé inteligence

Teorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru

(Ne)kooperativní hry

Osadníci z Katanu. a Monte Carlo Tree Search. David Pěgřímek. MFF UK (2013) 1 / 24

Obsah: Problém osmi dam

Složitost her. Herní algoritmy. Otakar Trunda

Šachové algoritmy využívající hluboké neuronové sítě

Základy umělé inteligence

Heuristické řešení problémů. Seminář APS Tomáš Müller

"Agent Hledač" (3. přednáška)

Úvod do teorie her

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

TEORIE HER - ÚVOD PŘEDNÁŠKA. OPTIMALIZACE A ROZHODOVÁNÍ V DOPRAVĚ část druhá Přednáška 2. Zuzana Bělinová

Umělá inteligence I. Roman Barták, KTIML.

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Teorie her a ekonomické rozhodování. 7. Hry s neúplnou informací

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Dokumentace programu piskvorek

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE

Koaliční hry. Kooperativní hra dvou hráčů

Umělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize Joseph Weizenbaum

UNIVERZITA PARDUBICE

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt.

Pavel Veselý Proof-number search, Lambda search a jejich vylepšení

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Seminář z umělé inteligence. Otakar Trunda

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Genetické programování

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Předmět: Algoritmizace praktické aplikace

Hledáme efektivní řešení úloh na grafu

Grafové algoritmy. Programovací techniky

Časová a prostorová složitost algoritmů

Umělá inteligence a rozpoznávání

Aplikace teorie her. V ekonomice a politice Ing. Václav Janoušek

Teorie her a ekonomické rozhodování. 2. Maticové hry

Úvod do teorie her. 6. Koaliční hry

Dynamic programming. Optimal binary search tree

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Binární vyhledávací stromy pokročilé partie

Anotace. zpět k rekurzi: teorie her. Martin Pergel,

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

HRA GOMOKU FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS

TEORIE HER Meta hry PŘEDNÁŠKA. OPTIMALIZACE A ROZHODOVÁNÍ V DOPRAVĚ část druhá Přednáška 4. Zuzana Bělinová

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Operační výzkum. Teorie her cv. Hra v normálním tvaru. Optimální strategie. Maticové hry.

IV113 Validace a verifikace. Detekce akceptujícího cyklu. Jiří Barnat

Operační výzkum. Teorie her. Hra v normálním tvaru. Optimální strategie. Maticové hry.

Zpětnovazební učení Michaela Walterová Jednoocí slepým,

Geneticky vyvíjené strategie Egyptská hra SENET

SYSTÉMOVÁ METODOLOGIE III Obecná teorie systémů. Ak. rok 2011/2012 vbp 1

GENERAL GAME PLAYING Marika Ivanová Seminář Herní Algoritmy,

Algoritmizace prostorových úloh

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

2016, Brno Teorie Her

Řízení rychlosti vozu Formule 1 pomocí rozhodovacího diagramu

Lineární diskriminační funkce. Perceptronový algoritmus.

Prohledávání do šířky = algoritmus vlny

Základní datové struktury III: Stromy, haldy

Grafové algoritmy. Programovací techniky

Transkript:

Hraní dvouhráčových her, adversariální prohledávání stavového prostoru Michal Pěchouček Department of Cybernetics Czech Technical University in Prague http://labe.felk.cvut.cz/ pechouc/kui/games.pdf

ppoužitá literatura pro umělou inteligenci :: Artificial Intelligence: A Modern Approach (Second Edition) by Stuart Russell and Peter Norvig, 2002 Prentice Hall. http://aima.cs.berkeley.edu/

pprohledávání při hraní dvouhráčových her adversariální prohledávání (adversarial search) stavového prostoru (hraní her), implementuje inteligencí rozhodování v komutativním prostředí, kde dva nebo více agentů mají konfliktní cíle. teorie her komplikovaná vědní discipĺına, součást ekonomiky která analyzuje chování jednotlivých hráčů a výhodnost jejich strategíı (především s ohledem na stabilitu, maximalizaci společného zisku, atp.) ve vícehráčovém prostředí. /Úvod

pprohledávání při hraní dvouhráčových her adversariální prohledávání (adversarial search) stavového prostoru (hraní her), implementuje inteligencí rozhodování v komutativním prostředí, kde dva nebo více agentů mají konfliktní cíle. teorie her komplikovaná vědní discipĺına, součást ekonomiky která analyzuje chování jednotlivých hráčů a výhodnost jejich strategíı (především s ohledem na stabilitu, maximalizaci společného zisku, atp.) ve vícehráčovém prostředí. V umělé inteligence budeme především pracovat s následujícím typem her: deterministické s prvkem náhody s úplnou informací šachy, go, reversi backgamon s neúplnou informací stratego, wargaming bridge, poker, scrabble /Úvod

pprohledávání při hraní dvouhráčových her adversariální prohledávání (adversarial search) stavového prostoru (hraní her), implementuje inteligencí rozhodování v komutativním prostředí, kde dva nebo více agentů mají konfliktní cíle. teorie her komplikovaná vědní discipĺına, součást ekonomiky která analyzuje chování jednotlivých hráčů a výhodnost jejich strategíı (především s ohledem na stabilitu, maximalizaci společného zisku, atp.) ve vícehráčovém prostředí. V umělé inteligence budeme především pracovat s následujícím typem her: deterministické s prvkem náhody s úplnou informací šachy, go, reversi backgamon s neúplnou informací stratego, wargaming bridge, poker, scrabble Stavový prostor hry (herní strom) je dán opět počátečním stavem, stavovým operátorem, testem na ukončení hry a užitkovou funkcí. Cílem adversariálního prohledávání je nalézt nikoliv stav prostoru, nýbrž herní strategii. Strategie vybere nejvhodnější tah s ohledem na racionalitu protihráče. Optimální herní strategie je taková strategie (nepřesně), pro kterou neexistuje žádná lepší strategie, která by vedla k lepšímu výsledku při hře s bezchybným oponentem. /Úvod

MAX (X) MIN (O) X X X X X X X X X MAX (X) X O X O X O... MIN (O) X O X X O X X O X............... TERMINAL Utility X O X X O X X O X O X O O X X O X X O X O O 1 0 +1...

pminimax Algoritmus MINIMAX algoritmus děĺı stavový prostor do MAX a MIN úrovní. Na každé MAX úrovni hráč A vybere tah s maximálním užitkem a na každé MIN úrovni vybere protihráč tah naopak minimalizující užitek hráče A. http://ai-depot.com/logicgames/minimax.html /Úvod

pminimax Algoritmus MINIMAX algoritmus děĺı stavový prostor do MAX a MIN úrovní. Na každé MAX úrovni hráč A vybere tah s maximálním užitkem a na každé MIN úrovni vybere protihráč tah naopak minimalizující užitek hráče A. http://ai-depot.com/logicgames/minimax.html /Úvod

MAX (X) MIN (O) X X X X X X X X X MAX (X) X O X O X O... MIN (O) X O X X O X X O X............... TERMINAL Utility X O X X O X X O X O X O O X X O X X O X O O 1 0 +1... /Úvod

pminimax Algoritmus MINIMAX algoritmus děĺı stavový prostor do MAX a MIN úrovní. Na každé MAX úrovni hráč A vybere tah s maximálním užitkem a na každé MIN úrovni vybere protihráč tah naopak minimalizující užitek hráče A. http://ai-depot.com/logicgames/minimax.html Každý uzel ohodnotíme tzv. MINIMAX hodnotou: utility(n) minimax(n) = max s successors(n) minimax(n) min s successors(n) minimax(n) pro n terminalni uzel pro n je MAX uzel pro n je MIN uzel /Úvod

pminimax Algoritmus MAX 3 A a 1 a 2 a 3 MIN B C D 3 2 2 b1 b2 b3 c1 c2 c3 d 1 d 2 d 3 3 12 8 2 4 6 14 5 2 /Úvod

pminimax Algoritmus to move A ( 1, 2, 6) B ( 1, 2, 6) ( 1, 5, 2) C ( 1, 2, 6) ( 6, 1, 2) ( 1, 5, 2) ( 5, 4, 5) A ( 1, 2, 6) ( 4, 2, 3) ( 6, 1, 2) ( 7, 4, 1) ( 5, 1, 1) ( 1, 5, 2) (7, 7, 1) ( 5, 4, 5) /Úvod

pminimax algoritmus Minimax algorithm function Minimax-Decision(state) returns an action inputs: state, current state in game return the a in Actions(state) maximizing Min-Value(Result(a, state)) function Max-Value(state) returns a utility value if Terminal-Test(state) then return Utility(state) v for a, s in Successors(state) do v Max(v, Min-Value(s)) return v function Min-Value(state) returns a utility value if Terminal-Test(state) then return Utility(state) v for a, s in Successors(state) do v Min(v, Max-Value(s)) return v Chapter 6 7 /Úvod

pvlastnosti Algoritmu MinMax úplné:

pvlastnosti Algoritmu MinMax úplné: ANO (je-li prostor konečné) čas:

pvlastnosti Algoritmu MinMax úplné: ANO (je-li prostor konečné) čas: O(b d ) paměť:

pvlastnosti Algoritmu MinMax úplné: ANO (je-li prostor konečné) čas: O(b d ) paměť: O(bd) optimální:

pvlastnosti Algoritmu MinMax úplné: ANO (je-li prostor konečné) čas: O(b d ) paměť: O(bd) optimální: ano

pcut-off search Problém minimaxu je, že počet stavů hry roste exponenciálně s počtem tahů. V reálných hrách je prostor hry ohromný a nelze ho celý prohledat v rozumném čase. Tento problém lze řešit pomocí: omezením hloubky d terminal test nahradíme cut off test odhadu místo přesné hodnoty užitku v případě, že d < b utility nahradíme eval. příklad funkce eval může být: počet vyřazených figurek vážený součet počtu vyřazených figurek vážený součet vhodnosti strategickém umístěni každé figurky /Úvod

pcut-off search Problém minimaxu je, že počet stavů hry roste exponenciálně s počtem tahů. V reálných hrách je prostor hry ohromný a nelze ho celý prohledat v rozumném čase. Tento problém lze řešit pomocí: omezením hloubky d terminal test nahradíme cut off test odhadu místo přesné hodnoty užitku v případě, že d < b utility nahradíme eval. příklad funkce eval může být: počet vyřazených figurek vážený součet počtu vyřazených figurek vážený součet vhodnosti strategickém umístěni každé figurky eval(s) = w 1 f 1 (s) + w 2 f 2 (s) +... + w n f n (s) = i=1 n w i f i (s) např., pro w 1 = 9, f 1 (s) = (number of white queens) - (number of black queens) /Úvod

pcut-off search Problém minimaxu je, že počet stavů hry roste exponenciálně s počtem tahů. V reálných hrách je prostor hry ohromný a nelze ho celý prohledat v rozumném čase. Tento problém lze řešit pomocí: omezením hloubky d terminal test nahradíme cut off test odhadu místo přesné hodnoty užitku v případě, že d < b utility nahradíme eval. příklad funkce eval může být: počet vyřazených figurek vážený součet počtu vyřazených figurek vážený součet vhodnosti strategickém umístěni každé figurky /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci Digression: Exact values don t matter MAX MIN 1 2 1 20 1 2 2 4 1 20 20 400 Behaviour is preserved under any monotonic transformation of Eval Only the order matters: payoff in deterministic games acts as an ordinal utility function Chapter 6 23 /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: je třeba ohodnocovat pomocí eval jen klidné (quiescent) stavy stavy, které nezpůsobí následnou výraznou změnu v hodnotě /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: je třeba ohodnocovat pomocí eval jen klidné (quiescent) stavy stavy, které nezpůsobí následnou výraznou změnu v hodnotě je třeba zabránit horizontálnímu efektu situaci, kdy program musí udělat tah, který způsobí velkou ztrátu /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: je třeba ohodnocovat pomocí eval jen klidné (quiescent) stavy stavy, které nezpůsobí následnou výraznou změnu v hodnotě je třeba zabránit horizontálnímu efektu situaci, kdy program musí udělat tah, který způsobí velkou ztrátu /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: je třeba ohodnocovat pomocí eval jen klidné (quiescent) stavy stavy, které nezpůsobí následnou výraznou změnu v hodnotě je třeba zabránit horizontálnímu efektu situaci, kdy program musí udělat tah, který způsobí velkou ztrátu lze použít singulární extenzi tah, který jde za cut-off, ale jasně zlepšuje eval hodnotu (podobné jako quiescent prohledávání ale s b = 1) /Úvod

pcut-off search degrese: přesné hodnoty eval nejsou důležité - korektní chování algoritmu je zachováno při libovolné monotónní transformaci problémy, zlepšení: je třeba ohodnocovat pomocí eval jen klidné (quiescent) stavy stavy, které nezpůsobí následnou výraznou změnu v hodnotě je třeba zabránit horizontálnímu efektu situaci, kdy program musí udělat tah, který způsobí velkou ztrátu lze použít singulární extenzi tah, který jde za cut-off, ale jasně zlepšuje eval hodnotu (podobné jako quiescent prohledávání ale s b = 1) Mějme k dispozici 3 minuty s a uvažujme 10 6 operací za sekundu. Můžeme tedy prohledat 50 10 6 uzlů na tah což je 35 5. V šachách můžeme tedy pracovat s hloubkou 5. /Úvod

palfa-beta Prořezávání Velikost stavového prostoru hry lze rovněž efektivně zmenšit pomocí metody alfa-beta prořezávání. Tato metoda umožní identifikovat části stavového prostoru, které jsou nalezení optimálního řešení neelegantně. Při aplikaci na standardní stavový prostor vrátí stejnou strategii jako Minimax a prořeže nerelevantní části prostoru. /Úvod

palfa-beta Prořezávání Velikost stavového prostoru hry lze rovněž efektivně zmenšit pomocí metody alfa-beta prořezávání. Tato metoda umožní identifikovat části stavového prostoru, které jsou nalezení optimálního řešení neelegantně. Při aplikaci na standardní stavový prostor vrátí stejnou strategii jako Minimax a prořeže nerelevantní části prostoru. MAX 3 A a 1 a 2 a 3 MIN B C D 3 2 2 b1 b2 b3 c1 c2 c3 d 1 d 2 d 3 3 12 8 2 4 6 14 5 2 min-max(a) = max(min(3, 12, 8), min(2, 4, 6), min(14, 5, 2)) = max(3, min(2, x, y), 2) = max(3, z, 2), z 2 /Úvod

palfa-beta Prořezávání Velikost stavového prostoru hry lze rovněž efektivně zmenšit pomocí metody alfa-beta prořezávání. Tato metoda umožní identifikovat části stavového prostoru, které jsou nalezení optimálního řešení neelegantně. Při aplikaci na standardní stavový prostor vrátí stejnou strategii jako Minimax a prořeže nerelevantní části prostoru. Klasický Minimax algoritmus rozšíříme následujícím způsobem: zavedeme hodnotu: α nejlepší známá hodnota pro uzel MAX β nejlepší známá hodnota pro uzel MIN na každé MAX úrovni před tím než ohodnotíme následníky, rovnáme minmax hodnotu s hodnotou β. je-li minmax > β pak se tato část stromu se neprohledává na každé MIN úrovni před tím než ohodnotíme následníky, rovnáme minmax hodnotu s hodnotou α. je-li minmax < α pak se tato část stromu se neprohledává /Úvod

palfa-beta Prořezávání The α β algorithm function Alpha-Beta-Decision(state) returns an action return the a in Actions(state) maximizing Min-Value(Result(a, state)) function Max-Value(state, α, β) returns a utility value inputs: state, current state in game α, the value of the best alternative for max along the path to state β, the value of the best alternative for min along the path to state if Terminal-Test(state) then return Utility(state) v for a, s in Successors(state) do v Max(v, Min-Value(s, α, β)) if v β then return v α Max(α, v) return v function Min-Value(state, α, β) returns a utility value same as Max-Value but with roles of α, β reversed Chapter 6 19 /Úvod

(a) [, + ] A (b) [, + ] A [, 3 ] B [, 3 ] B 3 3 12 (c) [ 3, + ] A (d) [ 3, + ] A [ 3, 3 ] B [ 3, 3 ] B [, 2 ] C 3 12 8 3 12 8 2 (e) [ 3, 14 ] A (f) [ 3, 3 ] A [ 3, 3 ] [, 2 ] [, 14 ] B C D [ 3, 3 ] [, 2 ] [ 2, 2 ] B C D 3 12 8 2 14 3 12 8 2 14 5 2

palfa-beta Prořezávání Player Opponent m...... Player Opponent n /Úvod

pvlastnosti Alpha-Beta Prořezávání /Úvod

pvlastnosti Alpha-Beta Prořezávání prořezávání nemá vliv na výsledek /Úvod

pvlastnosti Alpha-Beta Prořezávání prořezávání nemá vliv na výsledek lze dokázat, že časová náročnost klesne na O(b d/2 ) v případě, že vždy vybere nejlepší expandand (to implikuje možnost zdvojnásobit hloubku prohledávání) /Úvod

pvlastnosti Alpha-Beta Prořezávání prořezávání nemá vliv na výsledek lze dokázat, že časová náročnost klesne na O(b d/2 ) v případě, že vždy vybere nejlepší expandand (to implikuje možnost zdvojnásobit hloubku prohledávání) při náhodném výběru časová náročnost klesne na O(b 3d/4 ) /Úvod

pvlastnosti Alpha-Beta Prořezávání prořezávání nemá vliv na výsledek lze dokázat, že časová náročnost klesne na O(b d/2 ) v případě, že vždy vybere nejlepší expandand (to implikuje možnost zdvojnásobit hloubku prohledávání) při náhodném výběru časová náročnost klesne na O(b 3d/4 ) dopředné prořezávání (forward punning): tvrdé prořezávání jasně nevýhodných tahů. nebezpečný přístup především v okoĺı kořene herního stromu /Úvod

pvlastnosti Alpha-Beta Prořezávání prořezávání nemá vliv na výsledek lze dokázat, že časová náročnost klesne na O(b d/2 ) v případě, že vždy vybere nejlepší expandand (to implikuje možnost zdvojnásobit hloubku prohledávání) při náhodném výběru časová náročnost klesne na O(b 3d/4 ) dopředné prořezávání (forward punning): tvrdé prořezávání jasně nevýhodných tahů. nebezpečný přístup především v okoĺı kořene herního stromu Při použití 200 10 6 uzlů na tah (cca 3 minuty) 35 10 2 hloubkou 10, což není vůbec špatné metoda α/β bude pracovat s /Úvod

pnegamax Zjednodušená varianta Minimaxu, kterou je možno použít pro hry s nulovým (konstantním) součtem (zero-sum games). Zisk jednoho hráče se přesně rovná ztrátě druhého hráče. function negamax(node, depth, alpha, beta) if node is a terminal node or depth = 0 return the heuristic value of node else foreach child of node alpha := max(alpha, -negamax(child, depth-1, -beta, -alpha)) if alpha >= beta return beta return alpha

pnegascout (Principle Variation Search) - doplňková znalost Vylepšená varianta minimaxu s α/β prořezáváním. NegaScout dominuje (je lepší než) α/β prořezávání. Nikdy neprohledá uzel, který by byl prořezán α/β prořezáváním. NegaScout vychází ze správného uspořádání uzlů. V praktických aplikacích je správného uspořádání uzlů dosaženo předchozími mělkými prohledáváními. Prořezává prostor výrazně efektivněji. Předpokládá, že první uzel je ten nejlepší k prořezání. To kontroluje pomocí velmi rychlého prohledání s nulovým okénkem (null=window search, kde α = β). Považován za jeden z nejlepších algoritmů používaný v nových šachových programech. http://en.wikipedia.org/wiki/negascout

pnegascout (Principle Variation Search) - doplňková znalost function negascout(node, depth, alpha, beta) if node is a terminal node or depth = 0 return the heuristic value of node b := beta foreach child of node v := -negascout (child, depth-1, -b, -alpha) if alpha < v < beta and not the first child v := -negascout(child, depth-1, -beta, -v) alpha := max(alpha, v) if alpha>=beta return alpha b := alpha+1 return alpha

pmtd-f (Memory-enhanced Test Driver Search) - doplňková znalost Velmi efektivní prohledávací algoritmus, používaný v nových šachových programech. Pracuje tak, že opakovaně spouští alfa-beta algoritmus, který pracuje s nulovým oknem pamatuje si všechny prošlé uzly http://home.tiscali.nl/askeplaat/mtdf.html

pmtd-f (Memory-enhanced Test Driver Search) - doplňková znalost function MTDF(root, f, d)p g := f upperbound := +inf lowerbound := -inf while lowerbound < upperbound if g = lowerbound then beta := g+1 else beta := g g := AlphaBetaWithMemory(root, beta-1, beta, d) if g < beta then upperbound := g else lowerbound := g return g

ṕuspěšné herní algoritmy Dáma: v roce 1994 porazil poprvé po 40 letech algoritmus chinook mistryni světa v dámě Marion Tinsley. Bylo použito databáze koncových tahů pro všechny pozice, které zahrnovali 8 a méně kamenů na šachovnici. Koncových tahů bylo celkem 443,748,401,247 Šachy: v roce 1997 porazil Deep Blue Garyho Kasparova v šestikolovém zápasu. Deep Blue prohledal 200 million pozic za vteřinu a použil velmi sofistikované (a tajné) metody evaluace, které místy umožnily prohledávání do hloubky 40 tahů Othello: lidé odmítají hrát s počítačem... Go: lidé odmítají hrát s počítačem... (je přespříliš dobrý). V Go je b > 300. Většina algoritmu používá databáze tahů. /Úvod

phry s prvkem náhody Aplikace klasické metody MINIMAXU, kdy MINIMAX hodnoty jsou nahrazeny očekávanými hodnotami EMINMAX: /Úvod

phry s prvkem náhody Nondeterministic games: backgammon 0 1 2 3 4 5 6 7 8 9 10 11 12 25 24 23 22 21 20 19 18 17 16 15 14 13 Chapter 6 25

phry s prvkem náhody Aplikace klasické metody MINIMAXU, kdy MINIMAX hodnoty jsou nahrazeny očekávanými hodnotami EMINMAX: /Úvod

phry s prvkem náhody Aplikace klasické metody MINIMAXU, kdy MINIMAX hodnoty jsou nahrazeny očekávanými hodnotami EMINMAX: eminimax(n) = utility(n) max s successors(n) eminimax min s successors(n) eminimax s successors(n) P (s).eminimax pro n terminalni uzel pro n je MAX uzel pro n je MIN uzel pro n je uzel nahody /Úvod

phry s prvkem náhody Aplikace klasické metody MINIMAXU, kdy MINIMAX hodnoty jsou nahrazeny očekávanými hodnotami EMINMAX: MAX CHANCE MIN B............ 1/36 1,1 1/18 1,2......... 1/18 1/36 6,5 6,6...... CHANCE C............ MAX 1/36 1,1... 1/18 1,2... 1/18 1/36 6,5 6,6...... TERMINAL 2 1 1 1 1 /Úvod

phry s prvkem náhody hod kostkou zvyšuje b 21 možných hodů se 2 kostkami. Backgammon má cca 20 legálních tahů. depth 4 = 20 (21 20) 3 1.2 10 9 se vzrůstající hloubkou klesá pravěpodobnost dosažení daného uzlu význam predikce klesá α/β prořezávání je velmi efektivní TDGammon prohledává do hloubky 2 a používá velmi dobrou funkci eval mistrovská úroveň /Úvod

phry s prvkem náhody degrese: přesné hodnoty eval jsou důležité - korektní chování algoritmu je zachováno při libovolné positivní lineární transformaci Digression: Exact values DO matter MAX DICE 2.1 1.3.9.1.9.1 21 40.9.9.1.9.1 MIN 2 3 1 4 20 30 1 400 2 2 3 3 1 1 4 4 20 20 30 30 1 1 400 400 Behaviour is preserved only by positive linear transformation of Eval Hence Eval should be proportional to the expected payoff Chapter 6 29 /Úvod

phry v reálném čase /Úvod

phry v reálném čase asynchronní šachy /Úvod

phry v reálném čase asynchronní šachy /Úvod

phry v reálném čase asynchronní šachy robotický fotbal /Úvod

phry v reálném čase asynchronní šachy robotický fotbal /Úvod

ṕuvod do teorie her Hraní dvou-a více-hráčových her je příkladem distribuovaného (kolektivního) rozhodování (DR). Dalším příkladem DR je například: hlasování aukční řízení formování koalic řízení týmové práce dělení zisku Teorie her zkoumá vlastnosti distribuované rozhodování při použití různých strategíı a stejně tak se zabývá nalézáním rozhodovacích strategíı, které budou mít za následek specifické vlastnosti DR (například stabilitu). Distribuované rozhodování lze měřit s ohledem na: individuální užitek kolektivní užitek (social welfare) pareto-optimalitu individuální racionalitu hráče stabilitu dominanci Problém: jak zajistit stabilitu individuálně racionální akce v kompetitivním prostředí? /Úvod

ṕuvod do teorie her pareto-optimální kolektivní rozhodnutí: neexistuje žádné jiné kolektivní rozhodnutí, kde by některý z hráčů dostal větší výplatu a žádný z hráčů by nedostal horší pareto-optimalita neoptimalizuje kolektivní užitek, zajišťuje racionalitu chování hráčů při znalosti o akcích protihráčů Nashovo equilibrium: každý z hráčů hraje individuálně optimální strategie hráče za předpokladu, že všichni hráči použijí tutéž strategii není racionální se vychylovat od Nashova equilibria ne každá hra má Nashovo equilibrium v některých hrách, které vyžadují sekvenci akcí je těžké Nashovo equilibrium udržet perfektní Nashovo equilibrium: equilibrium i ve všech následných akcích /Úvod

ṕuvod do teorie her outcomes τ payoffs u(τ, (A, B)) { (Ac, B c ) (A c, B d ) (A d, B c ) (A d, B d ) } { (1, 1) (5, 0) (0, 5) (3, 3) } /Úvod

ṕuvod do teorie her outcomes τ payoffs u(τ, (A, B)) { (Ac, B c ) (A c, B d ) (A d, B c ) (A d, B d ) } { (1, 1) (5, 0) (0, 5) (3, 3) } strategie hráčů: ξ A = (A d, B c ) 0 (A c, B c ) 1 (A d, B d ) 3 (A c, B d ) 5 ξ B = (A c, B d ) 0 (A c, B c ) 1 (A d, B d ) 3 (A d, B c ) 5 /Úvod