Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Problémy opísané ako hra

Podobné prezentace


Prezentace na téma: "Problémy opísané ako hra"— Transkript prezentace:

1 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 vrcholov, čo je Priestor problému obsahuje 1040 rôznych možných pozícií. Tu je nedostatok času na vyhodnotenie dôsledkov jednotlivého ťahu.

2 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

3 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

4 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

5 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á

6 Príklad algoritmu MiniMax

7 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

8 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

9 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é

10 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ť

11 Príklad Alfa-Beta usekávania

12 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

13 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

14 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

15 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)

16 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


Stáhnout ppt "Problémy opísané ako hra"

Podobné prezentace


Reklamy Google