1 / 16

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

zanthe
Download Presentation

Problémy opísané ako hra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 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.

  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

More Related