210 likes | 382 Views
Deskové hry. Miroslav Týnovský tynovsky@seznam.cz Praktikum z informatiky 15.5.2003. Obsah referátu. Desková hra go Pravidla go Problémy s programováním počítačového hráče Architektura počítačového go Zdroje. Desková hra go. Strategická a kombinační desková hra
E N D
Deskové hry Miroslav Týnovský tynovsky@seznam.cz Praktikum z informatiky 15.5.2003
Obsah referátu • Desková hra go • Pravidla go • Problémy s programováním počítačového hráče • Architektura počítačového go • Zdroje
Desková hra go • Strategická a kombinační desková hra • Hraje se na čtvercové síti bílými a černými kameny • Nejstarší desková hra na světě se známými pravidly • V Japonsku igo, v Číně wei-qi, v Koreji baduk
Všeobecná pravidla hry • Hru hrají dva hráči na čtvercové síti 19x19, první tah učiní černý, dál se v tazích střídají. Oba mají k dispozici neomezený počet kamenů. • Tahem se rozumí položení kamene na volný průsečík a případné odebrání soupeřových zajatých kamenů. Možné je i vzdání se tahu. • Cílem hry je ohraničit co největší území a případně zajmout soupeřovy kameny – oboje se ohodnocuje body
Zajímání kamenů • X ... svoboda • Obsadí-li soupeř všechny svobody, je kámen zajat (mrtev) a odstraněn z desky • Řetěz pevně spojených kamenů může být zajat jen jako celek obsazením všech svobod
Kam (ne)můžeme táhnout (1) • Můžeme táhnout na libovolný volný průsečík, až na dvě výjimky • Zákaz sebevraždy – není dovoleno táhnutím zbavit vlastní skupinu všech svobod. Jedině pokud se jedná o tah braním.
Kam (ne)můžeme táhnout (2) • Druhým zakázaným tahem je opakování pozice – ko (japonsky „nekonečný“). Hráč nesmí táhnout tak, aby se po jeho tahu přesně zopakovala pozice před posledním tahem soupeře.
Území • Volné průsečíky uvnitř hranice tvořené kameny jedné barvy (a případně okrajem desky) nazýváme území. • Pro přesné pochopení pojmu území je důležité si uvědomit, že soupeř může do 'mého' území hrát. Pokud je území opravdu moje, dokážu jeho kameny chytit a tím své území uhájit. Pokud to nedokážu, soupeř si vybuduje v 'mém' území svou skupinu se svým územím, současně tím 'mé' území zničí.
Živé a mrtvé skupiny (1) • Existuje jednoduchý návod, jak vytvářet skupiny živé, tj. takové, které soupeř nedokáže zajmout, ani když je úspěšně obklíčí. • Mají totiž dvě oči, tj. dvě oddělené části vlastního území. K zajetí by potřeboval bílý postupně položit na oba body, ale žádný z těchto tahů nesmí učinit.
Živé a mrtvé skupiny (2) • Jedno oko nám nestačí ani při velkém počtu vnějších svobod. • Bílý nesmí hrát do oka ihned, ale nic mu nezabrání v postupném odebrání všech vnějších svobod x, a potom již smí zahrát do oka. • Skupina 7b vypadá podobně jako 6d, je tu ale podstatný rozdíl - jedno oko má falešné, proto je mrtvá.
Konec hry • Pokud hráč dojde k závěru, že již nemůže nic získat ani způsobit ztrátu soupeři, vzdá se tahu slovem 'pas'. • Partie končí, pasují-li po sobě oba hráči. • Jestliže druhý hráč nepasuje, ale pokračuje ve hře, může i první hráč dále hrát.
Brute force přístup v go? Ne. • 19x19 = 361 možných tahů na začátku partie • K určení živosti skupiny je třeba prohledávat hodně do hloubky • Je velmi těžké odhalit tahy, které nemají význam (například u tzv. schodů) • Neexistuje náhlá smrt. • Nezáleží na množství kamenů, a dokonce ani nemusí záležet na aktuálně obklíčeném území
Jak tedy na to • Nejúspěšnější programy hrají podle lidského modelu, ale dosahují jen začátečnické úrovně • Slabosti jsou: nepřesná analýza života a smrti a slabě staticky ohodnocující funkce. • Tyto slabosti jsou ze značné části způsobeny špatnou reprezentací vědomostí. Programátoři go sice mají obrovské znalosti hry ve formě lidské zkušenosti a literatury, ale je těžké je reprezentovat, a tak často bývají výsledně ignorovány a nahrazeny velmi jednoduchou heuristikou.
Architektura počítačového go • Aby byl vybudován program, který využívá více dostupných znalostí o go, používá se architektura která usnadňuje reprezentaci a uchováváni těchto znalostí. • Její design motivovaly dvě základní pozorování o lidské hře: • velká část lidské schopnosti sestává z poznání často se opakujících uspořádáni kamenů a jejich pozičního významu. • obvykle většina analýz zůstává při přechodu z jedné pozice na následující (po jednom tahu) při starém.
Reprezentace znalostí • Existuji typy uspořádání kamenů, které se ve hrách často opakuji. • X je pro lidského hráče „zřejmý“ výhodný tah pro černého • Lidský hráč také dokáže aplikovat znalosti o charakteru pozic – spojitost kamenů (keima), oči apod.
Reprezentace znalostí – předpoklady • K zachycení tohoto typu znalostí jsou použity vztahy if „předpoklady“ then „důsledky“ • Předpoklady mj. zahrnují: • Vymezující pravidla na obsazená pole • Počet svobod skupin • Pravidla na obsazená pole jsou reprezentovaná v mapách vzorků (jedna nebo víc) • Pokud je v předpokladu více map vzorků, musí být doplněn také jejich vzájemný vztah
Příklad map vzorků • Průsečíky označené kosočtverci zastupují cokoli • Vztah těchto dvou vzorků požaduje, aby P a Q byly ve stejném bloku. • Doplňující pravidla požadují, aby blok Q měl 3 svobody a každý z bloku R více než 2. (tah na S nezpůsobí zajetí bloku R) Vzájemný vztah: X <> S AND SameBlock(P, Q) Doplňující pravidla: libs(Q) = 3 AND libs(R) > 2
Reprezentace znalostí - důsledky • Důsledek může být například tvaru: move(good, black, X, redLibs, Q, spec 30, diff 70) což znamená, že tah X je dobrý pro černého, k snížení svobod skupiny Q. Čísla spec a diff určují konkrétnost a složitost tahu. • Pokud po doporučeném tahu obvykle následuje nějaký známý protitah, potom pravidlo obsahuje i ukazatele na pravidla doporučující tyto protitahy. Tímto způsobem reprezentujeme smysluplné větve po doporučeném tahu.
Příklad aplikace pravidla • První mapa otočená o 90° odpovídá bodem Q bodu a. • Druhá mapa otočená o 180° odpovídá bodem P bodu c. • X <> S • SameBlock(P, Q) • Vztah vzorku je splněn • libs(Q) = 3 • libs(R) > 2 • Doplňující pravidla splněna • V teto situaci je doporučený tah pro černého d, čímž zajme bílý blok.
Zdroje • Miloš Zapletal: Velká kniha deskových her • An Architecture for Computer Go(http://cns.nyu.edu/~mechner/compgo/) • http://www.usgo.org/ • http://www.goweb.cz/ • http://www.czech-go.net/