16
Problémy opísané ako hra Sú veľmi vhodnou oblasťou výskumu, lebo: Obsahujú dobre definovaný problém Majú presnú reprezentáciu ľubovoľného stavu Kvalita ich riešenia je dobre merateľná Počítač hrá z pohľadu jedného hráča, ale musí brať do úvahy aj (neznáme) správanie druhého hráča Podstatný rozdiel je aj v obtiažnosti (pri šachu faktor vetvenia je 35, pri partii 50 ťahov má strom hľadania 35 100 vrcholov, čo je 10 154 . Priestor problému obsahuje 10 40 rôznych možných pozícií. Tu je nedostatok času na vyhodnotenie dôsledkov jednotlivého ťahu.

Problémy opísané ako hra

  • Upload
    zanthe

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Problémy opísané ako hra. Sú veľmi vhodnou oblasťou výskumu, lebo: Obsahujú dobre definovaný problém Majú presnú reprezentáciu ľubovoľného stavu Kvalita ich riešenia je dobre merateľná Počítač hrá z pohľadu jedného hráča, ale musí brať do úvahy aj (neznáme) správanie druhého hráča - PowerPoint PPT Presentation

Citation preview

Page 1: Problémy opísané ako hra

Problémy opísané ako hra

Sú veľmi vhodnou oblasťou výskumu, lebo: Obsahujú dobre definovaný problém Majú presnú reprezentáciu ľubovoľného stavu Kvalita ich riešenia je dobre merateľná Počítač hrá z pohľadu jedného hráča, ale musí brať do

úvahy aj (neznáme) správanie druhého hráča Podstatný rozdiel je aj v obtiažnosti (pri šachu faktor

vetvenia je 35, pri partii 50 ťahov má strom hľadania 35100 vrcholov, čo je 10154. Priestor problému obsahuje 1040 rôznych možných pozícií. Tu je nedostatok času na vyhodnotenie dôsledkov jednotlivého ťahu.

Page 2: Problémy opísané ako hra

Riešenie problému hry

1. generovaním a testovaním 2. s využitím procedúr hľadania Generujú sa kroky, pričom by sa mali generovať

iba dobré kroky Testujú sa generované kroky, tak, aby sa najlepšie

kroky rozpoznali a prezreli čo najskôr Snažíme sa vložiť čo najviac heuristických znalostí

tak do generátora ako aj do testera. Nestihne vygenerovať všetky kroky až po listy, tak

si musí vybrať najlepší krok z hľadiska výhodnosti

Page 3: Problémy opísané ako hra

Generovanie a testovanie

Na ohodnotenie výhodnosti sa používa statická vyhodnocovacia funkcia – napr. spočítať podiel hodnôt bielych a čiernych kameňov

Dal by sa využiť spôsob hľadania pomocou A*, urobiť niekoľko ťahov dopredu, ohodnotiť vrcholy heuristickou funkciou h, vybrať najlepší a potom sa vrátiť a urobiť ťah vedúci k najlepšiemu stavu

To sa ale nedá urobiť pre hru s dvoma hráčmi – kritériá pre výber ťah sa pravidelne striedajú a súper nám môže zabrániť dosiahnuť víťazný stav

Page 4: Problémy opísané ako hra

Hľadanie pre problém hry

Dvaja hráči MAX a MIN, začína MAX Hra ako problém hľadania:

Počiatočný stav – postavenie na hracej doske a označenie, kto je na ťahu

Množina operátorov – to sú povolené ťahy Množina stavov – množina všetkých postavení na

hracej doske Cieľový test – určuje, kedy sa hra končí Bodovacia funkcie – oceňuje výsledok hry, napr. +1, 0 a

-1 pre výhru, remízu a prehru

Page 5: Problémy opísané ako hra

Algoritmus MiniMax

MIN zahrá vždy ťah, ktorý je pre MAXa najhorší možný, teda minimalizuje jeho skóre

MAX sa snaží zvíťaziť a teda maximalizovať svoje skóre. Postup: Vygeneruje sa celý strom hľadania až po koncové stavy Rozhodne sa, ktoré postavenie je najlepšie: na listy sa

aplikuje bodovacia funkcia a prenášajú sa hodnoty do vyšších úrovní až po koreň tak, že pri vrcholoch MAX sa prenáša maximum z hodnôt nasledovníkov a pri vrcho-loch MIN sa prenáša minimum, najlepšie postavenie je to, ktoré vedie k najväčšej hodnote koreňa, to sa zahrá

Page 6: Problémy opísané ako hra

Príklad algoritmu MiniMax

Page 7: Problémy opísané ako hra

Algoritmus MiniMax II

Opísaný postup prezerá rôzne postupnosti ťahov Snaží sa nájsť takú postupnosť ktorá vedie k výhre Predpokladá sa, že hráč urobí (zo svojho pohľadu)

najlepší ťah, ktorý môže urobiť, MAX vyberá ťah, ktorý vedie do nasledovníka s najväčším ohodno-tením a MIN s najmenším ohodnotením

MiniMax v opísanom tvare robí dokonalé rozhod-nutia, za predpokladu, že je dosť času prezrieť strom až k listom, čo nebýva realistický predpo-klad, a preto sa robia modifikácie

Page 8: Problémy opísané ako hra

Modifikácie MiniMaxu

Prezeranie treba useknúť skôr než v cieľovom stave – na to sa použije usekávací test - listy sa potom ohodnotia namiesto bodovacej funkcie pomocou heuristickej vyhodnocovacej funkcie

Takýto algoritmus robí nedokonalé rozhodnutia Iné vylepšenie – ide v podstate o variant hľadania

do hĺbky, tak si budeme pamätať ohodnotenie dosiaľ nájdeného čiastočného riešenia – ak nájdeme horšie, tak zanecháme (usekneme) jeho rozvíjanie, čím sa ušetrí zbytočné hľadanie

Page 9: Problémy opísané ako hra

Alfa-Beta usekávanie

Pracuje s dvoma prahovými hodnotami: Alfa je dolné ohraničenie hodnoty, ktorú vôbec môže

nadobudnúť stav, v ktorom je na ťahu MAX Beta je horné ohraničenie hodnoty, ktorú vôbec môže

nadobudnúť stav, v ktorom je na ťahu MIN Usekáva sa podstrom, ak jeho ohodnotenie je

horšie ako alfa alebo beta, pričom na začiatku je alfa mínus nekonečno, beta plus nekonečno

Hodnoty alfa zastavia všetky ohodnotenia, ktoré sú príliš nízke a beta tie, ktoré sú príliš vysoké

Page 10: Problémy opísané ako hra

Alfa-Beta usekávanie II

Udržiavanie ohraničení sa vykoná pre daný uzol vtedy, keď všetci jeho nasledovníci dostanú minimaxové hodnoty.

Platí: Alfa hodnoty uzla (vrátane koreňa) sa určí ako

najväčšia minimaxová hodnota jeho nasledovníkov a nikdy sa nemôže zmenšiť

Beta hodnota sa určí ako súčasná najmenšia minimaxová hodnota jeho nasledovníkov a nikdy sa nemôže zväčšiť

Page 11: Problémy opísané ako hra

Príklad Alfa-Beta usekávania

Page 12: Problémy opísané ako hra

Alfa-Beta usekávanie III

Pravidlá prerušenia hľadania: hľadanie sa môže ukončiť pod každým MAX vrcholom, ktoré ho alfa hodnota nie je menšia ako beta hodnota ľubovoľ-ného z jeho predchodcov - beta usekávanie.

Ako mimimaxová hodnota tohto MAX uzla sa použije jeho alfa hodnota – nemusí byť rovnaká, ako tá, ktorá by sa vrátila po úplnom hľadaní podľa algoritmu MiniMax, ale aj tak sa vyberie najlepší ťah

Page 13: Problémy opísané ako hra

Alfa-Beta usekávanie IV

Pravidlo II: hľadanie sa môže ukončiť pod každým MIN vrcholom, ktorého beta hodnota nie je väčšia ako alfa hodnota ľubovoľného z jeho predchodcov – to je alfa usekávanie. Ako výsledná minimaxová hodnota tohto MIN vrcholu sa použije jeho beta hodnota.

Algoritmus skončí, keď všetci nasledovníci počia-točného vrcholu dostanú minimaxové hodnoty

Najlepší je ťah, ktorý generuje nasledovníka s najväčšou minimaxovou hodnotou

Page 14: Problémy opísané ako hra

Efektívnosť alfa-beta usekávania

Použitím alfa-beta usekávania sa vždy nájde ťah, ktorý je tak dobrý ako ťah s použitím algoritmu MiniMax, ktorý hľadá do rovnakej hĺbky – ale alfa-beta ho nájde obyčajne po menšom hľadaní

Efektívnosť hľadania významne závisí od poradia prehľadávaných uzlov – ak sa nájdu dobrí nasledovníci, usekne sa veľa pokračovaní

V najhoršom prípade sa neušetrí nič oproti MiniMaxu a prehľadá sa celý strom

Page 15: Problémy opísané ako hra

Efektívnosť II

V ideálnom prípade sa zníži počet vrcholov na druhú odmocninu oproti MiniMaxu, to umožní preskúmať strom dvojnásobnej hĺbky

Príklad so šachom – ani tak sa nevyhneme expo-nenciálnej explózii, ale aj tak zlepšenie prehľadá-vania o jeden polťah výrazne zlepšuje hernú silu programu – konkrétne pri šachu o 200 ELO bodov

Spolu s alfa-beta usekávaním sa používa aj cyklic-ky sa prehlbujúce hľadanie (keď je obmedzený čas rozmýšľania)

Page 16: Problémy opísané ako hra

Efektívnosť III

Problém horizontu – program má určitý horizont (hĺbku m), za ktorým nič „nevidí“ – to sa rieši tak, že sa vyberú určité pozície, ktoré sa preskúmajú ešte o niekoľko polťahov nižšie ako ostatné vrcholy

Funkcia, ktorá rozhodne, kedy sa bude prehľadávať hlbšie, sa nazýva extenzívna heuris- tika