}w!"#$%&'()+,-./012345<ya

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

Algoritmy pro hraní tahových her

Základy umělé inteligence

ŠACHOVÉ ENGINY. Semestrální práce pro předmět 4IZ430 Principy inteligentních systémů

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

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

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

Varianty Monte Carlo Tree Search

CAS. Czech Association of Shogi

Dále jsou ke hře potřeba dvě sady kamenů (figur) bílé a černé. Každá sada obsahuje

Dokumentace programu piskvorek

Alfa-beta algoritmus pro umělou inteligenci hry šachy

Obsah herní sady: 40x dřevěný kámen hrací deska návod

Rating Elo. Obsah. Výpočet. Průběžná metoda

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY ROČNÍKOVÝ PROJEKT KLOKAN. Informatika, II. ročník

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:

Pravidla vybraných deskových her pro potřeby předmětů Projektový seminář 1 a 2 v roce 2011/2012. Tomáš Kühr

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

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

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

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

Hledání správné cesty

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

Po e5 se situace znovu mění. Černý vytváří hrozby obdobné jako bílý.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

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

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

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

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

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

Šachy, vrhcáby (backgammon) & dáma

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

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

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

Úvod do teorie grafů

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

UNIVERZITA PALACKÉHO V OLOMOUCI KATEDRA INFORMATIKY. ALGORITMY REALIZUJÍCÍ v jednoduchých deskových hrách

Ú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ů

Veškeré výsledky byly zpracovány do komplexní tabulky (Příloha č. 9), ze které vycházejí všechny měřitelné ukazatele výzkumu.

Pravidla šachu FIDE platná od

Příprava a školení trenérů II třídy (organizační pokyny)

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin

Složitost her. Herní algoritmy. Otakar Trunda

Pokročilá implementace deskové hry Dáma

Internetový čtrnáctideník pro šachové nadšence hledající zábavu i poučení.

Vliv věku a příjmu na výhodnost vstupu do důchodového spoření (II. pilíře)

Multifunkční hrací stůl. Výr. Číslo: Návod k použití

Šachový turnaj TECHEM CUP

Úvod do teorie her

B) EX = 0,5, C) EX = 1, F) nemáme dostatek informací.

IUVENTAS Soukromé gymnázium a Střední odborná škola, s. r. o. Umělá inteligence. Jméno: Třída: Rok:

Základy umělé inteligence

JAK HRÁT ON-LINE? 0. PŘIZPŮSOBTE SI SVŮJ ŠTÍT A SVÉ BARVY

ANTAGONISTICKE HRY 172

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

SEDMÁ A OSMÁ ŘADA. Seminární práce na školení trenérů III. třídy 2012

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

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

Autoři: ing. Petr Herejk, trenér II. třídy ing. Evžen Gonsior, trenér I. třídy Richard Biolek, trenér II. třídy, mezinárodní mistr v šachu ing.

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Pravidla ICCF pro hru prostřednictvím webserveru ICCF (platná od )

Šachy do škol seminář učitelů Zlín. Připravil Jan Weiser

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

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Bílá kniha ŠSČR 2012

Úvod. Tlačítka. Typ baterie

Šachová školička. Realizátor projektu:

TÉMATICKÝ OKRUH Softwarové inženýrství

a4b33zui Základy umělé inteligence

Mikyho šachové souboje v Chile

strategická desková hra pro dva hráče

Usekne-li Honza 1 hlavu, narostou dva ocasy. Tento tah můžeme zakreslit následujícím způsobem: Usekne-li 2 hlavy, nic nenaroste.

Věk: 6+ Jak hrát. Goro-Goro Zvířátkové Shogi. Japonská Shogi Asociace / Shogi.cz

Pravidla ICCF pro hru klasickou poštou (platná od )

A4B33ZUI Základy umělé inteligence

Algoritmy pro práci s neúplnou informací

Vhodné k testování AI technik protože a) není třeba množství znalostí b) snadno se měří úspěšnost (výhra/prohra)

ŠACHOVÝ PROGRAM PRO RŮZNÉ VARIANTY

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Pravděpodobnost a statistika (BI-PST) Cvičení č. 1

SOU Valašské Klobouky. VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT

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

Král a pěšec proti králi

UNIVERZITA PARDUBICE

Teorie her a ekonomické rozhodování. 3. Dvoumaticové hry (Bimaticové hry)

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

3. ANTAGONISTICKÉ HRY

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.

1. Znalostní systémy a znalostní inženýrství - úvod. Znalostní systémy. úvodní úvahy a předpoklady. 26. září 2017

Geneticky vyvíjené strategie Egyptská hra SENET

VÍCEKRITERIÁLNÍ MANAŢERSKÉ ROZHODOVÁNÍ V PODMÍNKÁCH RIZIKA A NEJISTOTY

vzorek vzorek

ALGORITMY A DATOVÉ STRUKTURY

Transkript:

Masarykova Univerzita v Brně Fakulta Informatiky }w!"#$%&'()+,-./012345<ya Šachy a umělá inteligence Referát do předmětu Úvod do umělé inteligence Brno, Listopad 2005 Filip Höfer

1 Úvod Hra Šachy je jedním z oblíbených témat pro programátory umělé inteligence. Tento referát se opírá o autorovy vlastní zkušenosti s implementací šachového algoritmu (Šachy 1.7; viz [4]) a mapuje obecné poznatky v oblasti. 2 Komponenty šachových algoritmů Tak jako většina algoritmů umělé iteligence, šachové programy obvykle obsahují následující prvky: reprezentace stavů, přechodová funkce, ohodnocovací funkce, prohledávání stavového prostoru, ukončovací podmínka. 2.1 Reprezentace stavů Intuitivně je stav ve hře šachy dán především postavením kamenů (figur) na šachovnici. Celkový stav hry je ale jednoznačně určen nikoli stavem šachovnice, nýbrž posloupností tahů obou hráčů. Rozestavení figur totiž neodpoví například na otázku, zda král během hry opustil výchozí postavení (zejména pokud se do něj vrátil) nebo kolikrát se daná pozice již opakovala. Takové informace mají významný vliv na vývoj hry, a přesto pohledem na šachovnici nemohou být odhaleny. Šachovnice se dá reprezentovat polem o rozměrech 8 8. Často se ale používá pole o velikosti 10 10. To proto, aby se před každým přístupem do pole nemusely kontrolovat meze. Pro úplnost informace o hře je třeba šachovnici doplnit těmito údaji: pole booleovských hodnot, které udává, zda jednotlivé figury opustily výchozí postavení (zejména věže a král), číslo, které udává, kolikrát se pozice opakovala, počet tahů od posledního zajetí figury. První z údajů ovlivňuje, zda je lze provést rošádu: král ani věž nesmí před provedením rošády opustit výchozí postavení. Také musí být splněno, že král není v šachu, nejsou ohrožena pole, přes která král přechází, a samozřejmě ani cílové pole. Druhé dvě informace mají vliv na ukončovací podmínku (viz 2.5). Často se také používají různé pomocné datové struktury. Například je praktické znát pozici figur bez toho, aniž by bylo nutné sekvenčně prohledávat šachovnici. 2

2.2 Přechodová funkce Přechodová funkce pro šachy je obvykle nazývána generátor tahů. Návrh generátoru tahů má velký vliv na výkonnost šachového algoritmu. Generátor tahů je provázán s reprezentací stavů. Je vhodné, aby byl stav reprezentován v takové podobě, která je generátorem tahů efektivně využitelná bez dalších transformací. Šachy 1.7 zavádí za tímto účelem pomocnou strukturu, která udává pro každou figuru seznam polí, kam může být přemístěna. Provedením každého tahu se tato struktura lokálně aktualizuje. 2.3 Prohledávání stavového prostoru Šachy jsou typická úloha minimaxového typu, a proto je drtivá většina šachových programů postavena na minimaxovém algoritmu. Existují ovšem také výjimky, které se snaží analyzovat šachovou situaci sofistikovanějšími metodami snažíce se o napodobení lidských hráčů. Naproti tomu minimaxové algoritmy postupují metodou hrubé síly. Předpočítávají mnoho šachových pozic dopředu a každou z nich ohodnocují jednoduchými heuristikami. Dosavadní zkušenost ukazuje, že minimaxové algoritmy jsou mnohem silnější než jakékoli alternativní řešení. 2.3.1 Vylepšení mimimaxového algoritmu Minimaxový algoritmus pracuje tak, že prohledá všechny pozice do určité hloubky (obvykle omezené přímo počtem půltahů nebo časem) a pak spustí ohodnocovací funkci. Jelikož se v každém patře stavového stromu střídá hledání minima a maxima, lze vyvodit pozorování typu Vybírám-li maximum z minimálních podstromů a vím, že si mohu vybrat podstrom s ohodnocením N, pak mohu zanedbat všechny podstromy, které by na základě volby protihráče mohly nabýt hodnotu menší než N. Analogicky lze uvažovat při výběru minima z maximálních hodnot. Toto vylepšení minimaxového algoritmu se nazývá alfa-beta odsekávání. Umožňuje znatelné zvětšení hloubky prohledávání a dává stejné výsledky jako nemodifikovaný minimaxový algoritmus. Aby bylo alfa-beta odsekávání co nejúčinnější, je třeba optimalizovat generátor tahů tak, aby generoval nejpravděpodobnější tahy nejdříve. Ideálně je pak hned první hodnota dobrým odhadem všech možných variant. Dalším vylepšením je heuristická selekce větví. Toto vylepšení již není bez rizika. Může se stát, že program nesprávně elimunuje perspektivní větev. Možné řešení je, že se standardním minimaxovým algoritmem vyberou dva nebo tři nejnadějnější tahy, a ty jsou pak propočítány do větší hloubky. 2.4 Ohodnocovací funkce Ohodnocovací funkce supluje to, že dnešní počítače nejsou schopny spočítat všechny možné varianty vývoje hry až do jejího konce. Proto je prohledávání všech možných variant omezeno limitem několika tahů, a pak je další vývoj hry 3

odhadnut nějakou heuristikou. Na ohodnocovací funkci jsou kladeny dva protichůdné požadavky, mezi kterými je třeba najít kompromis. Prvním požadavkem je rychlost, druhým požadavkem je to, aby její výsledek co nejlépe odhadoval skutečný stav a vývoj hry. 2.5 Ukončovací podmínka Šachy mohou skončit výhrou jednoho z hráčů a nebo remízou: výhra: šach mat nebo se jeden z hráčů vzdá. remíza: pat, trojnásobné opakování pozice, 50 tahů bez zajetí figury nebo nedostatek materiálu pro šach mat. 2.6 Shrnutí Na tomto místě je dobré zmínit obecnou radou při implementaci umělé iteligence pro nějakou hru: je vhodné podrobně prostudovat pravidla. Byla by chyba v šachovém programu zanedbat méně známé ukončovací podmínky nebo třeba braní pěšců mimochodem (en passant), které je nutno zahrnout do generátoru tahů. I dobře známá hra může skrývat překvapení. 3 Existující šachové programy Šachové programy můžeme rozdělit na tři kategorie: Amatérské programy: Celá řada programů, které lidé naprogramovali pro vlastní zábavu. Existují i kluby šachových programátorů a pořádají se turnaje šachových programů. Komerční software: Mezi nejznámější patří: Fritz, Hiarcs, ChessMaster, Chess Genius, Chess Tiger (nástupce programu Rebel), Junior (obsahuje algoritmy využité Deep Blue), Nimzo, Shredder, Sigma Chess (pro Macintosh), Ruffian. Mnoho komerčních programů vzešlo z úspěšných volně šiřitelných softwarů. Někdy dochází i k přesunu opačným směrem, když se firma vzdá poplatků za starší verze svých produktů mohou to být velmi silné programy, které zaostávají spíše co se týče uživatelského rozhraní. Špičkové šachové stroje: Asi nejproslulejším je Deep Blue, který v roce 1997 porazil Garry Kasparova, což byl v této oblasti průlom. Podle Wikipedie [7] je současným nejsilnějším počítačovým šachistou stroj Hydra. Na rozdíl od konvenčních šachových programů využívají šachové stroje specializovaný hardware. Některé součásti algoritmů jsou řešeny přímo dedikovanými komponentami jako hardwarový generátor tahů, apod. 4

4 Srovnání různých implementací Na první pohled se amatérský program od profesionálního liší hloubkou prohledávání. To také dává dobrou představu o síle počítačového hráče. Zatímco amatérský program může počítat 4-8 půltahů dopředu, u Deep Blue je udávána hloubka 12-14 půltahů. Zásadní je ovšem fakt, že kostra programu zůstává stejná. Jak Šachy 1.7, tak Deep Blue jsou postaveny na minimaxovém algoritmu s alfa-beta odsekáváním. 4.1 Ohodnocovací funkce Je známou skutečností, že počítač povětšinou upřednostňuje materiální výhodu před výhodou poziční. Je to logické hodnota figur se dá snadno vyčíslit. Deep Blue má následující pořadí priorit: 1. materiál, 2. pozice, 3. bezpečnost krále, 4. tempo. Šachy 1.7 používají mírně odlišnou prioritizaci: 1. materiál, 2. bezpečnost krále, 3. tempo. 4. pozice, I když je pořadí na druhé až čtvrté příčce odlišné, pro oba programy platí, že hrají smysluplně. Postavení materiálního kritéria je dominantní. Shoda napříč spektrem šachových programů panuje i ve stanovování hodnot jednotlivých figur. Obvyklý poměr mezi hodnotami pěšec : jezdec : střelec : věž : dáma : král je 1 : 3 : 3 : 5 : 9 : nekonečno. Pro krále se záměrně volí hodnota nekonečno, aby generátor tahů nemusel vyřazovat tahy, které ponechávají krále v šachu. Hovoříme o pseudolegálních tazích. Ošetření podmínky, že vlastní král nesmí být po provedení tahu všachu, může totiž být časově náročné. Odstranění těchto tahů se může provést v alfa-beta algoritmu nebo až na úrovni ohodnocovací funkce. Z matematiky ohodnocení počítačovému hráči vyplyne, že ztráta krále se nevyplatí. Ve vyhodnocováni pozičních kritérií a bezpečnosti krále se algoritmy mohou výrazně lišit. Za pozičními kritétii se obvykle skrývají snadno vyčíslitelné heuristiky typu centralizace figur nebo maximalizace počtu možných tahů. 5

4.2 Hledání nejlepšího tahu v různých fázích hry Stejně jako člověk, i počítačový hráč by měl zohlednit specifika herních fází a zvolit správný přístup pro danou situaci. Není sice vyloučeno nasazení stejného minimaxového algoritmu pro celou hru, ale takový přístup nevede k oslnivým výsledkům. 4.2.1 Zahájení Začátek hry je pro minimaxový algoritmus kritický. V dohlednu nejsou žádné zásadnější zvraty, a proto se dá říct, že minimax běží naprázdno. Bylo by také naivní očekávat, že obecný minimaxový algoritmus vypočte kvalitní zahájení. Proto profesionální šachové programy využívají knihoven zahájení. Jedná se o databázi šablon pro zahájení, které můžeme najít v šachové literatuře. 4.2.2 Střední hra Ve střední fázi hry se minimaxový algoritmus uplatní nejlépe. Počítačový hráč může těžit z toho, že v komplexních situacích nikdy neudělá hrubou chybu. 4.2.3 Koncovka Minimaxový algoritmus se chová dobře i v poslední fázi hry. S ubývajícím počtem možných tahů se zvětšuje hloubka, kterou je schopen prohledat. Minimaxový algoritmus s ohodnocovací funkcí optimalizovanou pro koncovku může dosahovat dobrých výsledků. Špičkové šachové stroje ale podobně jako při zahájení i u koncovky sázejí na jistotu předpočítané tabulky. 5 Hodnocení úspěšnosti: ELO Systém ELO byl původně určen pro hodnocení lidských hráčů. Jeho autorem je maďarský šachista Árpád Elö. Systém je využíván v různých obměnách organizacemi jako FIDE (Fédération Internationale des Échecs), ICC (Internet Chess Club) nebo Yahoo! Games. V současnosti se ELO běžně využívá i k hodnocení šachových programů. Hodnocení je založeno na statistice. Hráč dostane nějaké počáteční ohodnocení, které je po každé hře (či celém turnaji) upřesňováno. Teprve po určitém počtu her je ELO považováno za platné. Výhry a prohry hráče s platným ELO hodnocením se pak odrážejí i do ELO jeho protihráčů. Tj., ELO hráče A je vždy upraveno, pokud jeho protihráč B má platné ELO. Přírůstek či úbytek ELO záleží na výsledku hry a rozdílu ELO protihráčů. 6

Ve FIDE ELO jsou obvyklé tyto hodnoty: úplný začátečník: 750 ELO, začátečník: 1250 ELO, průměrný člen šachového klubu: 1500 ELO, expert: 2000 ELO, velmistr: 2700 ELO. Rozdíl 200 ELO znamená, že pravděpodobnost výhry silnějšího hráče je 75%. Obecně úprava ELO probíhá podle vzorce ELO ELO + 32 (S E A ) S značí skutečné skóre (0 pro prohru; 0,5 pro remízu; 1 pro výhru) a E A značí očekávané skóre. V případě rozdílu 200 ELO je očekávané skóre 0,25 ve vzorci pro úpravu ELO slabšího hráče a 0,75 ve vzorci pro ELO silnějšího hráče. Přesný vzorec pro pravděpodobnost výhry hráče A nad hráčem B je: E A = 1 1 + 10 ELO B ELO A 400 Hodnoty ELO lze aproximovat. Existují nástroje, které poskytnou hrubý odhad ELO na základě vyřešení několika šachových pozic (viz např. [2]). 6 ELO Šachových programů Šachové programy se na stupnici ELO umísťují v zásadě dobře. I amatérský program Šachy 1.7 podle automatického testu ELO [2] vykazoval 1625 bodů. Toto číslo však může být nadhodnocené, neboť byly testovány pouze pozice v rozvinuté hře, tedy nikoli zahájení, které je velkou slabinou programu Šachy 1.7 (nemá knihovnu zahájení). U Deep Blue se ELO odhaduje na 2800, u Hydry na 3000. U počítačových programů je hodnota ELO závislá také na hardwaru. ELO programů se tedy zvyšuje s rostoucím výkonem počítačů. 7 Závěr Z hodnot ELO vyplývá, že ve hře šachy je pro většinu lidí počítač silným protihráčem. Počítač nikdy neudělá hrubou chybu a naopak tvrdě potrestá každou chybu soupeře. Pokud však počítač vyhraje jen díky lidské nepozornosti, je otázka, jestli je to skutečně vítězství. Zatímco na straně počítače je vysoká hrubá výpočetní síla a potenciálně velmi rozsáhlé databáze partií, člověk šachista pracuje s intuicí, zkušenostmi, 7

rozumí vnitřní logice různých strategií a využívá principu analogie. Počítač pracuje stále stejně dobře bez ohledu na čas nebo emoce, ale člověk obvykle hraje pod tlakem hůře (například po tom, co udělal chybu). V současné době dosahují nejlepších výsledků týmy šachistů, kteří využívají služeb počítačových programů. Takové spojení sil dosahuje výsledků přes 3200 ELO. Vývoj v oblasti počítačového šachu je udáván především zvyšující se výpočetní kapacitou harwaru. Díky tomu se programy zlepšují o 20-30 ELO ročně. Algoritmy jako takové jsou vylepšovány jen nepatrně. Reference [1] Steinwender a Frederic A. Friedel. Šachy na PC. [2] Tommaso Dorigo. The automated chess rating utility. http://home.fnal.gov/ dorigo/rating.html. [3] FIDE. FIDE Laws of Chess. Jerevan, 1996. [4] Filip Höfer. program Šachy. http://www.fi.muni.cz/ xhofer/sachy.html. [5] IBM. Deep blue. http://www.research.ibm.com/deepblue/. [6] Vojtěch Kment. Šachy: Počítače v šachu - quo vadis? Neviditelný pes, 2003. [7] Wikipedia. Elo rating system. http://en.wikipedia.org/wiki/elo rating system. 8