Hry šachy, backgammon, poker
Hry vs. Prohledávání stavového prostoru Máme dva hráče, kteří se střídají na tahu definované možné tahy, cílové pozice, výhru 1.hráče v cílových pozicích, protihráč má výhru opačného znaménka Prohledávání st. prostoru Minimax Metoda větví a mezí α β prořezávání Historie: algoritmus pro optimální strategii (Von Neumann, 1944) konečný horizont, aproximace (Zuse, 1945; Shannon, 1950; Samuel, 1952 57) prořezávání (McCarthy, 1956)
Typy her deterministické pravděpodobnostní plná informace šachy, dáma, go backgammon neúplná informace bridge, poker, scrabble
Minimax Optimální(+-) strategie pro deterministickou hru s plnou informací Idea: vybrat tah s nejvyšší minimax hodnotou = nejlepší zisk proti nejlepší hře Příklad hry, každý jen jeden tah:
MAX 3 A 1 A 2 A 3 MIN 3 2 2 A 11 A 13 A 21 A 22 A 23 A 32 A 33 A 12 A 31 3 12 8 2 4 6 14 5 2
Minimax algoritmus
function Minimax-Decision(game) returns an operator for each op in Operators[game] do Value[op] Minimax-Value(Apply(op, game), game) end return the op with the highest Value[op] function Minimax-Value(state, game) returns a utility value if Terminal-Test[game](state) then return Utility[game](state) else if max is to move in state then return the highest Minimax-Value of Successors(state) else return the lowest Minimax-Value of Successors(state)
Vlastnosti Minimaxu Úplný?? Ano, pokud je strom konečný (šachy na to mají speciální pravidla) Optimální?? Ano, proti optimálnímu protihráči. Jinak?? Časová složitost?? O(bm ) (b možných tahů, m max. hloubka stromu) Prostorová složitost?? O(bm) (prohledávání do hloubky) Pro šachy, b 35, m 100 v rozumných hrách přesné řešení nedosažitelné
Reálné meze Máme-li 100 vteřin, prohledáme 10 4 uzlů za vteřinu 10 6 uzlů za tah Standardní přístup: cutoff test např. maximální hloubka ohodnocovací funkce ( evaluation function) = odhadovaná výhodnost pozice
Ohodnocovací funkce Black to move White to move White slightly better Black winning Pro šachy je to typicky lineární vážený součet jevů features Eval(s) = w 1 f 1 (s) + w 2 f 2 (s) +... + w n f n (s) např., w 1 = 9 s f 1 (s) = (počet bílých dam) (počet černých dam)
Prořezávání MinimaxCutoff je stejné jako MinimaxValue kromě 1. test Terminal? je nahrazen testem Cutoff? 2. Utility je nahrazena Eval V šachách: b m = 10 6, b = 35 m = 4 4-tahy dopředu vidí i hodně špatný hráč! 4-tahy začátečník 8-tahů typické PC, dobrý šachista (člověk) 12-tahů Deep Blue, Kasparov
α β pruning example
Vlastnosti α β prořezávání Prořezávání nemění výsledek Dobré uspořádání tahů k prohledávání zvyšuje efektivitu prořezávání S ideálním uspořádáním, je časová složitost = O(b m/2 ) zdvojnásobí hloubku prohledávání může snadno projít 8 tahů dopředu a hrát dobré šachy Jednoduchý příklad usuzování o tom, které výpočty jsou relevantní (meta-usuzování)
Co jsou α β? MAX MIN...... MAX MIN V α je nejvyšší jistá hodnota (pro max) dosud nalezená na aktuální větvi Pokud je V horší než α, max si ho určitě nevybere prořežeme Podobně β je nejnižší jistá hodnota (pro min)
The α β algorithm Základ je Minimax + obhospodařování α, β + prořezávání
function Max-Value(state, game, α, β) returns the minimax value of state inputs: state, current state in game game, game description α, the best score for max along the path to state β, the best score for min along the path to state if Cutoff-Test(state) then return Eval(state) for each s in Successors(state) do α Max(α, Min-Value(s, game, α, β)) if α β then return β end return α function Min-Value(state, game, α, β) returns the minimax value of state if Cutoff-Test(state) then return Eval(state) for each s in Successors(state) do β Min( β, Max-Value(s, game, α, β)) if β α then return α end return β
Deterministické hry v praxi Dáma (Checkers): Chinook ukončil čtyřicetiletou vládu mistra světa Marion Tinsley v roce 1994. Používal databázi všech koncovek pro 8 a méně kamenů, tj. pro 443,748,401,247 pozic. Šachy: Deep Blue porazil mistra světa Gary Kasparova v roce 1997. Deep Blue má speciální HW, složité ohodnocování a další heuristiky. Go: mistři odmítají hrát s počítači, protože počítače jsou příliš slabé. V GO je b > 300, čili nelze uvažovat celou goovnici, ale jen patterns.
Nedeterministické hry Např. Backgammon, kostky určují povolené tahy Obrázek zjednodušen na 2 možnosti vrhu místo 21. MAX CHANCE 3 1 0.5 0.5 0.5 0.5 MIN 2 4 0 2 2 4 7 4 6 0 5 2
Algoritmus pro nedeterministické hry Expectiminimax dává optimální hru Stejné jako Minimax, pouze musíme také zpracovat chance uzly průměrem hodnot váženým pravděpodobností:... if state is a chance node then return weightedaverage of ExpectiMinimax-Value of Successors(state)... Obdoba α β prořezávání je možná, jsou-li hodnoty na listech omezené.
Nedeterministické hry v praxi Náhoda rozšiřuje b: 21 různých vrhů dvou kostek Backgammon 20 přípustných tahů (až 6,000 s vrhem 1-1) hloubka 4 = 20 (21 20) 3 1.2 10 9 S prohlubováním hloubky se zmenšuje pravděpodobnost návštěvy uzlu hodnota informace z prohledávání klesá α β prořezávání je daleko méně efektivní TDGammon používá hloubku prohledávání 2 + a velice dobrou ohodnocovací funkci Eval na úrovni světových mistrů
Poznámka: Teorie her Hra: já i oponent volíme tah, pak (hned) dostaneme výplatu podle matice já \ oponent A B A (10,0) (3,15) B (3,7) (5,10) Nashovo equilibrium - strategie, kterou není ani pro jednoho hráče výhodné měnit
Hlavní body Minimax α β prořezávání nedeterministické hry ke hrám s neúplnou informací se trochu vrátíme časem
Co umíte z logiky? výroková logika, axiomy, důkaz predikátová logika, volná proměnná, otevřená a uzavřená formule prenexní tvar formule, konjunktivně disjunktní forma Hornovská klauzule (asi ne, budeme probírat) rezoluční metoda, Skolemovská funkce? (asi ne, budeme probírat)
Wumpus World Percepts Breeze, Glitter, Smell 4 Stench Breeze PIT Actions Left turn, Right turn, Forward, Grab, Release, Shoot 3 2 Stench Breeze Stench Gold PIT Breeze Breeze Goals Get gold back to start without entering pit or wumpus square 1 Breeze START PIT Breeze 1 2 3 4
Environment Squares adjacent to wumpus are smelly Squares adjacent to pit are breezy Glitter if and only if gold is in the same square Shooting kills the wumpus if you are facing it Shooting uses up the only arrow Grabbing picks up the gold if in the same square Releasing drops the gold in the same square