Abstrakt. Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování

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

{ } Kombinace II. Předpoklady: =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.

M - Rovnice - lineární a s absolutní hodnotou

Kvadratické rovnice pro učební obory

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

Nerovnice s absolutní hodnotou

Kvadratické rovnice pro studijní obory

E-ZAK. metody hodnocení nabídek. verze dokumentu: QCM, s.r.o.

( ) Neúplné kvadratické rovnice. Předpoklady:

2.7.2 Mocninné funkce se záporným celým mocnitelem

2.7.1 Mocninné funkce s přirozeným mocnitelem

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

( ) Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen)

Vrtání závitů bez vyrovnávací hlavičky (G331, G332)

Google AdWords - návod

3.2.4 Podobnost trojúhelníků II

Vyjmutí původní SD karty, její přeinstalace a opětovné použití

Nyní jste jedním z oněch kouzelníků CÍL: Cílem hry je zničit soupeřovy HERNÍ KOMPONENTY:

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

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy

STEREOMETRIE. Vzdálenost bodu od přímky. Mgr. Jakub Němec. VY_32_INOVACE_M3r0113

Řešení: a) Označme f hustotu a F distribuční funkci náhodné veličiny X. Obdobně označme g hustotu a G distribuční funkci náhodné veličiny Y.

Herní plán. Magic Stars

Nakupte více, získejte více!

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY

Tvorba trendové funkce a extrapolace pro roční časové řady

KIV/ZI Základy informatiky. MS Excel maticové funkce a souhrny

Vedoucí bakalářské práce

( ) ( ) ( ) 2 ( ) Rovnice s neznámou pod odmocninou II. Předpoklady: 2715

Popis připojení elektroměru k modulům SDS Micro, Macro a TTC.

Obchodní řetězec Dokumentace k návrhu databázového systému

Sada 2 Microsoft Word 2007

1.3.1 Kruhový pohyb. Předpoklady: 1105

SIS INSTALAČNÍ PŘÍRUČKA (SITE INFORMATION SYSTEM) Datum vytvoření: Datum aktualizace: Verze: v 1.3 Reference:

Sada 2 - MS Office, Excel

1 Průběh funkce. Pomůcka pro cvičení: 1. semestr Bc studia Průběh funkce - ruční výpočet

Průvodce e learningem

Úložiště elektronických dokumentů GORDIC - WSDMS

PŘEPOČET ZÚČTOVANÝCH ZÁLOH V 10% NA 14% V KONOCOVÉ

9.2.5 Sčítání pravděpodobností I

IS BENEFIT7 POKYNY PRO VYPLNĚNÍ ZJEDNODUŠENÉ ŽÁDOSTI O PLATBU EX-ANTE ZÁLOŽKA ŽÁDOST O PLATBU

Mobilní aplikace pro ios

Vyjádření k oznámení k záměru přeložka silnice II/240 ( R7-D8) úsek mezi rychlostní silnicí R7, dálnice D8 a silnicí II. třídy č.

INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY

Pohyb v listu. Řady a posloupnosti

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

DUM téma: KALK Výrobek sestavy

PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU

Učební dokument FUNKCE. Vyšetřování průběhu funkce. Mgr. Petra MIHULOVÁ. 4.roč.

UŽITÍ DERIVACÍ, PRŮBĚH FUNKCE

15 s. Analytická geometrie lineárních útvarů

Domácí úkol DU01_2p MAT 4AE, 4AC, 4AI

V týmové spolupráci jsou komentáře nezbytností. V komentářích se může např. kolega vyjadřovat k textu, který jsme napsali atd.

Admiral Lions DEV. Struktura: Premium V+ Gaminator IV DEV

Windows 10 (6. třída)

Lineární algebra. Vektorové prostory

První přihlášení a první kroky po přihlášení do Registru zdravotnických prostředků pro již ohlášenou osobu

Lékařská fakulta v Hradci Králové, Univerzita Karlova v Praze. Opatření děkana č. 10 /

Elektronický formulář

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 18 TVORBA PLOCH]

Rovnice s neznámou pod odmocninou a parametrem

PROPOJENÍ NA ÚČETNÍ SYSTÉM KROS

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Postup práce s elektronickým podpisem

Pohybové a sportovní hry. tělesné výchovy vysokoškoláků

Úpravy skříní a čelních ploch pro úchopovou lištou

DIPLOMOVÁ PRÁCE DIPLOMA THESIS

českém Úvod Obsah balení LC USB adaptér Sweex pro bezdrátovou síť LAN

Funkce více proměnných

ALGEBRA LINEÁRNÍ, KVADRATICKÉ ROVNICE

Programování 4. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

POSDOKTORSKÉ PROJEKTY 2012

Kalendář je nástroj, který vám pomůže zorganizovat si pracovní čas. Zaznamenáváme do něj události jako schůzky, termíny odevzdání práce a podobně.

Sběr informačních povinností regulovaných subjektů. Návod na instalaci certifikátů a nastavení IE. Verze: 2.0


Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Energetický regulační

16. února 2015, Brno Připravil: David Procházka

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

Lokální a globální extrémy funkcí jedné reálné proměnné

Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE. Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30

SEMINÁŘE/WORKSHOPY PRO KLIENTY V PL A TK

PROVÁDĚCÍ PŘEDPIS K BURZOVNÍM PRAVIDLŮM

2.1. Pojem funkce a její vlastnosti. Reálná funkce f jedné reálné proměnné x je taková

1. Kruh, kružnice. Mezi poloměrem a průměrem kružnice platí vztah : d = 2. r. Zapíšeme k ( S ; r ) Čteme kružnice k je určena středem S a poloměrem r.

ÚVOD DO HRY PRINCIP HRY

Př. 3: Dláždíme čtverec 12 x 12. a) dlaždice 2 x 3 12 je dělitelné 2 i 3 čtverec 12 x 12 můžeme vydláždit dlaždicemi 2 x 3.

SK MORAVAN OLDŘIŠOV, z.s.

Pingpongový míček. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014

Escort Servis Night Prague

a) počet bodů b) vzájemný zápas c) rozdíl skóre d) vyšší počet vstřelených branek e) kopy ze značky PK

Průvodce instalací programu DesignCAD 3D Max v25 US (CZ) Full/Upgrade

Práce se zálohovými fakturami

Algoritmy pro hraní tahových her

M - Příprava na 2. zápočtový test pro třídu 2D

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Transkript:

Abstrakt Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování počítačového hráče v jednoduchých deskových hrách, a jeho vylepšení Alfa-Beta ořezávání, které značně snižuje časovou náročnost Minimaxu. Pro oba algoritmy zde uvádíme jejich podrobně okomentovaný pseudokód a několik konkrétních příkladů výpočtu nejlepšího tahu. U čtenářů se předpokládají pouze základní znalosti procedurálního paradigma programování (větvení, cykly, funkce), které jsou nutné pro porozumění některým částem tohoto textu. Text vznikl na Katedře informatiky Přírodovědecké fakulty Univerzity Palackého v Olomouci především pro potřeby studentů předmětů Projektový seminář 1 a 2. Autor může být kontaktován elektronickou poštou na adrese

Obsah 1. Průběh hry a jeho zobrazení 1 1.1. Základní pojmy...................................... 1 1.2. Česká dáma........................................ 1 1.3. Herní strom........................................ 2 2. Algoritmus Minimax 5 2.1. Princip algoritmu..................................... 5 2.2. Implementace algoritmu................................. 5 2.3. Ohodnocovací funkce................................... 10 2.4. Generátor tahů...................................... 13 3. Alfa-beta ořezávání 15 3.1. Princip algoritmu..................................... 15 3.2. Implementace algoritmu................................. 16 Literatura 21 i

ii

Seznam obrázků 1. Základní postavení kamenů ve hře Česká dáma..................... 2 2. Příklad pozice s bílým hráčem na tahu, šipky naznačují možné tahy......... 3 3. Ukázka jednoho z možných skoků bílé dámy....................... 3 4. Herní strom........................................ 4 5. Pozice odpovídající uzlům herního stromu na obrázku

iv

1

2 Průběh hry a jeho zobrazení Skákání je povinné a figura po dokončení tahu nesmí mít další možnost skoku. Je-li více možností skákání, může si hráč vybrat bez ohledu na množství přeskočených kamenů soupeře. Dáma má při skákání vždy přednost před kamenem. Partii vyhrává hráč, jehož soupeř nemůže provést tah podle pravidel (nemá již žádné figury nebo jsou jeho figury zablokovány). Partie skončí nerozhodně po dohodě hráčů nebo když se ve hře vyskytne 3-krát stejná pozice. 8 7 6 5 4 3 2 1 a b c d e f g h Obrázek 1. Základní postavení kamenů ve hře Česká dáma.

1.3. Herní strom 3 8 7 6 5 4 3 2 1 a b c d e f g h Obrázek 2. Příklad pozice s bílým hráčem na tahu, šipky naznačují možné tahy.

4 Průběh hry a jeho zobrazení d2-c3 P 0 d2-e3 c5-b4 P 1 P 2 c5-d4 c5-d4 c5-b4 P 3 P 4 P 5 P 6 c3-a5 c3-e5 P 7 P 8 Obrázek 4. Herní strom.

5

6 Algoritmus Minimax 8 7 6 5 4 3 2 1 a b c d e f g h Obrázek 6. Pozice z hry Česká dáma, černý na tahu.

2.2. Implementace algoritmu 7 dále uvědomíme, že platí rovnost min(a, b) = max( a, b), zjistíme, že výpočet této rekurzivní funkce odpovídá výše uvedenému principu algoritmu s tím rozdílem, že ohodnocení pozic je nyní vypočítáno z pohledu hráče, který je v těchto pozicích na tahu a ne z pohledu hráče, který byl na tahu v kořenové pozici.

8 Algoritmus Minimax hráče, maximální možné ohodnocení. Ohodnocení výhry a prohry by se vždy měla lišit pouze znaménkem, v našem pseudokódu používáme číselné konstanty MAX a MAX. Pokud v dané pozici hra skončila remízou, je ohodnocení této pozice rovno nule. U velkého množství deskových her nemůže podle pravidel dojít k vítězství hráče po soupeřově tahu, řádky 5, 6 a 7 je tedy možné většinou vynechat. Heuristická funkce přiřazující pozici ohodnocení z pohledu hráče na tahu je tak volána pouze v případě nekoncové pozice a nulové hodnoty parametru hloubka (viz řádky 11 a 12). Na řádcích 14 až 19 se toho oproti zjednodušené variantě příliš nezměnilo, pouze jsme vytváření potomků dané pozice rozdělili do několika příkazů (generování tahů, zahrání tahu), což více odpovídá praktickému řešení tohoto dílčího problému. Řádky 20 až 25 algoritmu

2.2. Implementace algoritmu 9 Jak již bylo uvedeno výše, u pozice, která tvoří kořen stromu nás nezajímá ani tak její ohodnocení jako tah, který vede k nejlépe ohodnocenému potomkovi, což je nejlepší možný tah z dané pozice. Toto rozhodování zajišt uje funkce nej tah popsaná algoritmem

10 Algoritmus Minimax Příklad 2.4. Prohlédněte si pozici z obrázku

2.3. Ohodnocovací funkce 11 Ohodnocovací funkce patří samozřejmě mezi ty části algoritmu, jejichž výpočet je silně závislý na konkrétní deskové hře. Přesto se nyní pokusíme zformulovat několik obecných zásad, kterých se bývá dobré držet při návrhu ohodnocovacích funkcí většiny jednoduchých deskových her. Pokud je daná hra založena na zajímání kamenů soupeře, měly by být počty mých a soupeřových kamenů na desce primárním kritériem při ohodnocování pozice. Dále lze hodnotit umístění jednotlivých kamenů na desce. Toto většinou řešíme statickou tabulkou bonusů a postihů pro jednotlivé typy figur (např. dáma, pěšec). Bonus či postih se jednoduše započítá, pokud daná figura stojí na daném poli. Případně lze také přidávat bonusy a postihy za různá seskupení figur na desce, osamělé figury a podobně. Tyto výpočty už ale mohou být komplikovanější a mohou tak negativně ovlivnit rychlost ohodnocovací funkce. 8 7 6 5 4 3 2 1 +2 +2 +2 +2 +2 +2 +3 +3 +3 +3 a b c d e f g h 8-3 -3-3 -3 7 6 5 4 3 2-2 -2-2 -2-2 -2 1 a b c d e f g h 8 +2 +2 +2 +2 7 6 5 4 3 2 1 +2 +2 +2 +2 +2 +2 +3 +3 +3 +3 a b c d e f g h 8-3 -3-3 -3 7 6 5 4 3 2 1-2 -2-2 -2-2 -2-2 -2-2 -2 a b c d e f g h Obrázek 12. Statické tabulky pro ohodnocování umístění bílého pěšce (vlevo nahoře), černého pěšce (vpravo nahoře) bílé dámy (vlevo dole) a černé dámy (vpravo dole).

12 Algoritmus Minimax 8 7 6 5 4 3???? 2 1 a b c d e f g h Obrázek 13. Ilustrace přidělování bonusů za umístění v blízkosti jiných figur.

2.4. Generátor tahů 13

14 Algoritmus Minimax

15

16 Alfa-beta ořezávání 4 4 3 7 9 4 15 3 2 7 9 4 3 15 3 1 3 Obrázek 16. Příklad alfa-ořezání.

3.2. Implementace algoritmu 17 function bliz(ohodnoceni) if ohodnoceni > MNOHO then return ohodnoceni 1 end if if ohodnoceni < MNOHO then return ohodnoceni + 1 end if return ohodnoceni end function Stěžejní část algoritmu Alfa-beta ořezávání (viz algoritmus

18 Alfa-beta ořezávání 24: end if 25: end for 26: return alfa 27: end function U aktuální pozice (kořene herního stromu) nás opět více než ohodnocení této pozice zajímá tah, který vede k jejímu nejlépe ohodnocenému potomkovi, což je právě hledaný nejlepší tah počítačového hráče z této pozice. Výpočet tohoto tahu je realizován funkcí nej tah, jež je popsána v algoritmu

3.2. Implementace algoritmu 19 Ve volání funkce nej tah, která prozkoumává aktuální pozici kořen zobrazeného herního stromu, máme po prozkoumání všech možných tahů z této pozice zapamatováno maximální ohodnocení 70 a tah, který jako první k tomuto ohodnocení vedl e3-d4. Tento v obrázku

20 Alfa-beta ořezávání e3-d4-99 -70 100 a5-b4 d6-c5 d6-e5-101 98 100-101 70 98-101 70 70 a3-c5-e7 d4-b6 d6-f6-101 -99 102-99 -70 102-70 -85 102 a3-b4-99 -70-70 a5-c3 70 70 100 e3-f4 e3-d4-101 50-70 -101 60-70 Obrázek 18. Herní strom z příkladu e3-f4-99 -70-70 d6-c5 a5-b4 d6-e5 70 70 100 a3-b4 f4-e5 f4-g5-101 -5-70 -101 10-70 -101 5-70

Literatura 21