1 3Hry a z kladn hern strategie Ale 0 8 Hor k E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: 7 9 Statistick і v 0 5sledky pr 0 1b ї 0 6n і p semky 7 9 Hry vs. Prohled v n stavov іho prostoru 7 9 Algoritmus Minimax 7 9 Algoritmus Alfa-Beta pro 0 0ez v n 7 9 Nedeterministick і hry 7 9 Hry s nep 0 0esn 0 5mi znalostmi 0 3vod do um їl і inteligence 7/12 1 / 26 pr 0 1b ї 0 6n p semka PB016 41 student 0 1 Body Po 0 0et student 0 1 32 4 24 1 21 4 16 4 13 2 10 3 5 3 2 4 0 15 Pr 0 1m їr: 9.44 0 3vod do um їl і inteligence 7/12 2 / 26
1 3Hry vs. Prohled v n stavov іho prostoru Hry а Prohled v n stavov іho prostoru Multiagentn prost 0 0ed : 7 9 agent mus br t v vahu akce jin 0 5ch agent 0 1 З jak ovlivn jeho vlastn prosp їch 7 9 vliv ostatn ch agent 0 1 C prvek n hody 7 9 kooperativn а soupe 0 0 c multiagentn prost 0 0ed (MP) Hry: 7 9 matematick teorie her (odv їtv ekonomie) C kooperativn i soupe 0 0 c MP, kde vliv v 0 8ech agent 0 1 je v 0 5znamn 0 5 7 9 hra v UI = obv. deterministick і MP, 2 st 0 0 daj c se agenti, v 0 5sledek hry je vz jemn ї opa 0 0n 0 5 nebo shoda Algoritmy soupe 0 0 c ho prohled v n (adversarial search): 7 9 oponent d їl dop 0 0edu neur 0 0iteln і tahy З 0 0e 0 8en m je strategie, kter po 0 0 t se v 0 8emi mo 0 6n 0 5mi tahy protivn ka 7 9 0 0asov 0 5 limit 6м0 z 0 0ejm ї nenajdeme optim ln 0 0e 0 8en З hled me lok ln ї optim ln 0 0e 0 8en Hry a UI C historie 0 3vod do um їl і inteligence 7/12 3 / 26 Hry vs. Prohled v n stavov іho prostoru Hry a UI C historie 7 9 Babbage, 1846 C po 0 0 ta 0 0 porovn v p 0 0 nos r 0 1zn 0 5ch hern ch tah 0 1 7 9 von Neumann, 1944 C algoritmy perfektn hry 7 9 Zuse, Wiener, Shannon, 1945 C50 C p 0 0ibli 0 6n і vyhodnocov n 7 9 Turing, 1951 C prvn 0 8achov 0 5 program (jen na pap 0 0e) 7 9 Samuel, 1952 C57 C strojov і u 0 0en pro zp 0 0esn їn vyhodnocov n 7 9 McCarthy, 1956 C pro 0 0ez v n pro mo 0 6nost hlub 0 8 ho prohled v n 0 0e 0 8en her je zaj mav 0 5m p 0 0edm їtem studia Ш je obt 0 6n і: pr 0 1m їrn 0 5 faktor v їtven v 0 8ach ch b = 35 pro 50 tah 0 1 2 hr 0 0 0 1... prohled vac strom ж 35 100 ж 10 154 uzl 0 1 ( ж 10 40 stav 0 1) 0 3vod do um їl і inteligence 7/12 4 / 26
1 3Hry vs. Prohled v n stavov іho prostoru Hry a UI C aktu ln v 0 5sledky Hry a UI C aktu ln v 0 5sledky 7 9 Othello C od 1980 sv їtov 0 8ampioni odm taj hr t s po 0 0 ta 0 0i, proto 0 6e stroje jsou p 0 0 li 0 8 dobr і. Othello (t і 0 6 Reversi) pro dva hr 0 0e na desce 8 а8 C sna 0 6 se mezi sv і dva kameny uzav 0 0 t soupe 0 0ovy, kter і se p 0 0ebarv. A 0 6 se zapln deska, spo 0 0 taj se kameny. 7 9 d ma C 1994 program Chinook porazil sv їtovou 0 8ampionku Marion Tinsley. Pou 0 6 v plnou datab zi tah 0 1 pro э 8 figur (443748401247 pozic). 7 9 0 8achy C 1997 porazil stroj Deep Blue sv їtov іho 0 8ampiona Gary Kasparova 3 1 /2:2 1 /2. Stroj po 0 0 t 200 mil. pozic/s, sofistikovan і vyhodnocov n a nezve 0 0ejn їn і metody pro prozkoum v n n їkter 0 5ch tah 0 1 a 0 6 do hloubky 40 tah 0 1. 2006 porazil program Deep Fritz na PC sv їtov іho 0 8ampiona Vladim ra Kramnika 2:4. V sou 0 0asnosti vyhr vaj turnaje i programy na slab 0 8 m hardware mobiln ch telefon 0 1 s 20 tis. pozic/s. 7 9 Go C do roku 2008 sv їtov 0 8ampioni odm tali hr t s po 0 0 ta 0 0i, proto 0 6e stroje jsou p 0 0 li 0 8 slab і. V Go je b > 300, tak 0 6e po 0 0 ta 0 0e mohou pou 0 6 vat t іm ї 0 0 pouze znalostn b zi vzorov 0 5ch her. od 2009 C prvn programy dosahuj pokro 0 0ilej 0 8 amat іrsk і rovn ї (zejm іna na desce 9 а9, ni 0 6 0 8 rove i na 19 а19). Typy her 0 3vod do um їl і inteligence 7/12 5 / 26 Hry vs. Prohled v n stavov іho prostoru Typy her perfektn znalosti nep 0 0esn і znalosti deterministick і 0 8achy, d ma, Go, Othello s n hodou backgammon, monopoly bridge, poker, scrabble 0 3vod do um їl і inteligence 7/12 6 / 26
1 3Hry vs. Prohled v n stavov іho prostoru Hled n optim ln ho tahu Hled n optim ln ho tahu 2 hr 0 0i C MA ( ) a ( ) MA je prvn na tahu a pak se st 0 0 daj a 0 6 do konce hry hra = prohled vac probl іm: 7 9 po 0 0 te 0 0n stav C po 0 0 te 0 0n hern situace + kdo je na tahu 7 9 p 0 0echodov funkce C vrac dvojice (leg ln tah, v 0 5sledn 0 5 stav) 7 9 ukon 0 0ovac podm nka C ur 0 0uje, kdy hra kon 0 0, ozna 0 0uje koncov і stavy 7 9 utilit rn funkce C numerick і ohodnocen koncov 0 5ch stav 0 1 0 3vod do um їl і inteligence 7/12 7 / 26 Hry vs. Prohled v n stavov іho prostoru Hled n optim ln ho tahu Hled n optim ln ho tahu C pokra 0 0. po 0 0 te 0 0n stav a p 0 0echodov funkce definuj hern strom: MA () (O) MA () O O O... (O) O O O............... koncov і stavy utilit rn funkce O O O O O O O O O O 6с11 0 +1... 0 3vod do um їl і inteligence 7/12 8 / 26
1 3Algoritmus Minimax Algoritmus Minimax Hr 0 0 MA ( ) mus prohledat hern strom pro zji 0 8t їn nejlep 0 8 ho tahu proti hr 0 0i ( ) З zjistit nejlep 0 8 hodnotu minimax C zaji 0 8t uje nejlep 0 8 v 0 5sledek proti nejlep 0 8 mu protivn kovi Hodnota minimax(n) = 6Ь1 6Ь4 6Ь2 6Ь4 6Ь3 utility(n), pro koncov 0 5 stav n max s йmoves(n) Hodnota minimax(s), pro MA uzel n min s йmoves(n) Hodnota minimax(s), pro uzel n 0 3vod do um їl і inteligence 7/12 9 / 26 Algoritmus Minimax Algoritmus Minimax C pokra 0 0. p 0 0 klad C hra jen na jedno kolo = 2 tahy (p 0 1lkola) MA 3 a 1 a 2 a 3 3 2 2 b 1 b 2 b 3 c 1 c 2 c 3 d 1 d 2 d 3 MA util.funkce 3 12 8 2 4 6 14 5 2 0 3vod do um їl і inteligence 7/12 10 / 26
1 3Algoritmus Minimax Algoritmus Minimax C pokra 0 0. % minimax( +Pos, 6с1BestSucc, 6с1Val): % Pos je rozlo 0 6en figur, Val je minimaxov hodnota tohoto rozlo 0 6en ; % nejlep 0 8 tah z Pos vede do rozlo 0 6en BestSucc minimax( Pos, BestSucc, Val) :- moves( Pos, PosList),!, % PosList je seznam leg ln ch tah 0 1 z Pos best( PosList, BestSucc, Val) ; staticval( Pos, Val). % Pos nem n sledn ky: ohodnot me staticky best( [Pos], Pos, Val) :- minimax( Pos,, Val),!. best( [Pos1 PosList], BestPos, BestVal) :- minimax( Pos1,, Val1), best( PosList, Pos2, Val2), betterof( Pos1, Val1, Pos2, Val2, BestPos, BestVal). betterof( Pos0, Val0, Pos1, Val1, Pos0, Val0) :- % Pos0 je lep 0 8 ne 0 6 Pos1 min to move( Pos0), % na tahu v Pos0 Val0 > Val1,! % MA chce nejvy 0 8 0 8 hodnotu ; max to move( Pos0), % MA na tahu v Pos0 Val0 < Val1,!. % chce nejmen 0 8 hodnotu betterof( Pos0, Val0, Pos1, Val1, Pos1, Val1). % jinak je Pos1 lep 0 8 ne 0 6 Pos0 0 3vod do um їl і inteligence 7/12 11 / 26 Algoritmus Minimax Algoritmus Minimax C vlastnosti plnost pln 0 5 pouze pro kone 0 0n і stromy optim lnost je optim ln proti optim ln mu oponentovi 0 0asov slo 0 6itost O(b m ) prostorov slo 0 6itost O(bm), prohled v n do hloubky 0 8achy... b ж 35,m ж 100 6м0 p 0 0esn і 0 0e 0 8en nen mo 0 6n і nap 0 0. b m = 10 6,b = 35 6м0 m ж 4 4-tahy ж 0 0lov їk-nov 0 0ek 8-tah 0 1 ж 0 0lov їk-mistr, typick і PC 12-tah 0 1 ж Deep Blue, Kasparov 0 3vod do um їl і inteligence 7/12 12 / 26
1 3Algoritmus Minimax 0 9asov і omezen 0 9asov і omezen p 0 0edpokl dejme, 0 6e m me 100 sekund + prozkoum me 10 4 uzl 0 1/s 6м0 10 6 uzl 0 1 na 1 tah 0 0e 0 8en minimax cutoff: 7 9 ohodnocovac funkce odhad p 0 0 nosu pozice nahrad utilit rn funkci 7 9 o 0 0ez vac test (cutoff test) C nap 0 0. hloubka nebo hodnota ohodnocovac funkce nahrad koncov 0 5 test 0 3vod do um їl і inteligence 7/12 13 / 26 Algoritmus Alfa-Beta pro 0 0ez v n Algoritmus Alfa-Beta pro 0 0ez v n P 0 0 klad stromu, kter 0 5 zpracuje predik t minimax Alfa-Beta od 0 0 zne expanzi n їkter 0 5 uzl 0 1 6м0 Alfa-Beta procedura je efektivn їj 0 8 variantou minimaxu MA 4 4 э 2 MA 4 щ 5 2 1 4 5 2 1 0 3vod do um їl і inteligence 7/12 14 / 26
1 3Algoritmus Alfa-Beta pro 0 0ez v n Algoritmus Alfa-Beta pro 0 0ez v n C vlastnosti 7 9 pro 0 0ez v n neovlivn v 0 5sledek 6м0 je stejn 0 5 jako u minimaxu 7 9 dobr і uspo 0 0 d n p 0 0echod 0 1 (mo 0 6n 0 5ch tah 0 1) ovlivn efektivitu pro 0 0ez v n 7 9 v p 0 0 pad ї nejlep 0 8 ho uspo 0 0 d n 0 0asov slo 0 6itost= O(b m/2 ) 6м0 zdvoj hloubku prohled v n 6м0 m 0 1 0 6e snadno dos hnout hloubky 8 v 0 8achu, co 0 6 u 0 6 je pou 0 6iteln rove ozna 0 0en іа 6с1іб: 7 9 іа... doposud nejlep 0 8 hodnota pro MAe 7 9 іб... doposud nejlep 0 8 hodnota pro a 7 9 <іа,іб>... interval ohodnocovac funkce v pr 0 1b їhu v 0 5po 0 0tu (na za 0 0 tku < 6с1 ч, ч>) 7 9 minimax...v(p) іа 6с1іб...V(P,іа,іб) kdy 0 6 V(P) э іа V(P,іа,іб) = іа kdy 0 6 іа < V(P) < іб V(P,іа,іб) = V(P) kdy 0 6 V(P) щ іб V(P,іа,іб) = іб 0 3vod do um їl і inteligence 7/12 15 / 26 Algoritmus Alfa-Beta pro 0 0ez v n Algoritmus Alfa-Beta pro 0 0ez v n alphabeta( Pos, Alpha, Beta, GoodPos, Val) :- moves( Pos, PosList),!, boundedbest( PosList, Alpha, Beta, GoodPos, Val) ; staticval( Pos, Val). % statick і ohodnocen Pos boundedbest( [Pos PosList], Alpha, Beta, GoodPos, GoodVal) :- alphabeta( Pos, Alpha, Beta,, Val), goodenough( PosList, Alpha, Beta, Pos, Val, GoodPos, GoodVal). goodenough( [],,, Pos, Val, Pos, Val) :-!. % nejsou dal 0 8 kandid ti goodenough(, Alpha, Beta, Pos, Val, Pos, Val) :- min to move( Pos), Val > Beta,! % MA dos hl horn hranici ; max to move( Pos), Val < Alpha,!. % dos hl doln hranici goodenough( PosList, Alpha, Beta, Pos, Val, GoodPos, GoodVal) :- newbounds( Alpha, Beta, Pos, Val, NewAlpha, NewBeta), % uprav hranice boundedbest( PosList, NewAlpha, NewBeta, Pos1, Val1), betterof( Pos, Val, Pos1, Val1, GoodPos, GoodVal). newbounds( Alpha, Beta, Pos, Val, Val, Beta) :- min to move( Pos), Val > Alpha,!. % newbounds( Alpha, Beta, Pos, Val, Alpha, Val) :- max to move( Pos), Val < Beta,!. % newbounds( Alpha, Beta,,, Alpha, Beta). % MA zv 0 5 0 8il doln hranici sn 0 6il horn hranici jinak hranice nezm їn їny betterof( Pos, Val, Pos1, Val1, Pos, Val) :- min to move( Pos), Val > Val1,! ; max to move( Pos), Val < Val1,!. % Pos je lep 0 8 ne 0 6 Pos1 betterof(,, Pos1, Val1, Pos1, Val1). % jinak je lep 0 8 Pos1 0 3vod do um їl і inteligence 7/12 16 / 26
1 3Algoritmus Alfa-Beta pro 0 0ez v n Mo 0 6nosti vylep 0 8en Minimax/Alpha-Beta Mo 0 6nosti vylep 0 8en Minimax/Alpha-Beta 7 9 vyhodnocovat pouze klidn і stavy (quiescent search) 7 9 p 0 0i vyhodnocov n po 0 0 tat s efektem horizontu C zvraty mimo prohledanou oblast 7 9 dop 0 0edn і o 0 0ez v n C n їkter і stavy se ihned zahazuj bezpe 0 0n і nap 0 0. pro symetrick і tahy nebo pro tahy hluboko ve stromu Ohodnocovac funkce 0 3vod do um їl і inteligence 7/12 17 / 26 Algoritmus Alfa-Beta pro 0 0ez v n Ohodnocovac funkce 0 9ern 0 5 na tahu B l 0 5 ma o n їco lep 0 8 pozici B l 0 5 na tahu 0 9ern 0 5 v t їz Pro 0 8achy typicky line rn v 0 6en 0 5 sou 0 0et rys 0 1 Eval(s) = w 1 f 1 (s)+w 2 f 2 (s)+...+w n f n (s) = ф n i=1 w if i (s) nap 0 0. w 1 = 9 f 1 (s) = (po 0 0et b l 0 5ch kr loven) 6с1(po 0 0et 0 0ern 0 5ch kr loven)... 0 3vod do um їl і inteligence 7/12 18 / 26
1 3Algoritmus Alfa-Beta pro 0 0ez v n Ohodnocovac funkce C odchylky Ohodnocovac funkce C odchylky MA 2 20 1 2 1 20 MA 1 2 2 4 1 20 20 400 chov se stejn ї pro libovolnou monot nn transformaci funkce Eval z le 0 6 pouze na uspo 0 0 d n З ohodnocen v deterministick і h 0 0e funguje jako ordin ln funkce Nedeterministick і hry 0 3vod do um їl і inteligence 7/12 19 / 26 Nedeterministick і hry n hoda Ш 6с1 hod kostkou, hod minc, m ch n karet p 0 0 klad C 1 tah s h zen m minc : MA 3 n hoda 3-1 /0.5 /0.5 /0.5 /0.5 2 4 0-2 2 4 7 4 6 0 5-2 0 3vod do um їl і inteligence 7/12 20 / 26
1 3Nedeterministick і hry Algoritmus Minimax pro nedeterministick і hry Algoritmus Minimax pro nedeterministick і hry expect minimax... po 0 0 t perfektn hru s p 0 0ihl іdnut m k n hod ї rozd l je pouze v zapo 0 0 t n uzl 0 1 n hoda: 6Ь1 utility(n) pro koncov 0 5 stav n max s йmoves(n) expect minimax(s) 6Ь4 6Ь2 pro MA uzel n expect minimax(n) = min s йmoves(n) expect minimax(s) ф pro uzel n s йmoves(n) P(s) єexpect minimax(s) 6Ь4 6Ь3 pro uzel n hody n 0 3vod do um їl і inteligence 7/12 21 / 26 Nedeterministick і hry Pro 0 0ez v n v nedeterministick 0 5ch hr ch Pro 0 0ez v n v nedeterministick 0 5ch hr ch je mo 0 6n і pou 0 6 t upraven і Alfa-Beta pro 0 0ez v n MA 1.5 n hoda [1.5, 1.5] [ 6с1 ч, 0.5] /0.5 /0.5 /0.5 /0.5 [2,2] [1,1] [0, 0] [ 6с1 ч, 1] 2 2 2 1 0 1 1 0 3vod do um їl і inteligence 7/12 22 / 26
1 3Nedeterministick і hry Pro 0 0ez v n v nedeterministick 0 5ch hr ch Pro 0 0ez v n v nedeterministick 0 5ch hr ch C pokra 0 0. pokud je mo 0 6no dop 0 0edu stanovit limity na ohodnocen list 0 1 З o 0 0ez v n je v їt 0 8 MA 1.5 n hoda [1.5, 1.5] [ 6с12, 1] /0.5 /0.5 /0.5 /0.5 [2,2] [1,1] [ 6с12, 0] [ 6с12, 2] 2 2 2 1 0 0 3vod do um їl і inteligence 7/12 23 / 26 Nedeterministick і hry Nedeterministick і hry v praxi Nedeterministick і hry v praxi 7 9 hody kostkou zvy 0 8uj b З se dv їma kostkami 21 mo 0 6n 0 5ch v 0 5sledk 0 1 7 9 backgammon C 20 leg ln ch tah 0 1: hloubka 4 = 20 а(21 а20) 3 ж 1.2 а10 9 7 9 jak se zvy 0 8uje hloubka З pravd їpodobnost dosa 0 6en zvolen іho uzlu kles 6м0 v 0 5znam prohled v n se sni 0 6uje 7 9 alfa-beta pro 0 0ez v n je mnohem m іn ї efektivn 7 9 program TDGammon pou 0 6 v prohled v n do hloubky 2 + velice dobrou Eval funkci ж dosahuje rovn ї sv їtov іho 0 8ampion tu 0 3vod do um їl і inteligence 7/12 24 / 26
1 3Nedeterministick і hry Odchylka v ohodnocen nedeterministick 0 5ch her Odchylka v ohodnocen nedeterministick 0 5ch her MA 2.1 40.9 n hoda 2.1 1.3 21 40.9.9.1.9.1.9.1.9.1 2 3 1 4 20 30 1 400 2 2 3 3 1 1 4 4 20 20 30 30 1 1 400 400 chov n je zachov no pouze pro pozitivn line rn transformaci funkce Eval Eval u nedeterministick 0 5ch her by tedy m їla proporcion ln ї odpov dat o 0 0ek van іmu v 0 5nosu 0 3vod do um їl і inteligence 7/12 25 / 26 Hry s nep 0 0esn 0 5mi znalostmi Hry s nep 0 0esn 0 5mi znalostmi 7 9 nap 0 0. karetn hry З nezn me po 0 0 te 0 0n nam ch n karet oponenta 7 9 obvykle m 0 1 0 6eme spo 0 0 tat pravd їpodobnost ka 0 6d іho mo 0 6n іho rozd n 7 9 zjednodu 0 8en ї C jako jeden velk 0 5 hod kostkou na za 0 0 tku 7 9 prohled v me ov 0 8em ne re ln 0 5 stavov 0 5 prostor, ale domn їl 0 5 stavov 0 5 prostor 7 9 program Jack, nej 0 0ast їj 0 8 v t їz po 0 0 ta 0 0ov 0 5ch 0 8ampion t 0 1 v bridgi pou 0 6 v metodu Monte Carlo: 1. generuje 100 rozd n karet konzistentn ch s dan 0 5m pod n m 2. vyb r akci, kter je v pr 0 1m їru nejlep 0 8 V roce 2006 porazil Jack na sout ї 0 6i 3 ze 7 top holandsk 0 5ch hr 0 0sk 0 5ch p r 0 1. 0 3vod do um їl і inteligence 7/12 26 / 26