Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Kétszemélyes játékok.

Hasonló előadás


Az előadások a következő témára: "Kétszemélyes játékok."— Előadás másolata:

1 Kétszemélyes játékok

2 Kétszemélyes játékok A többágenses környezetben (multiagent environment) minden ágensnek számolnia kell más ágensek cselekvéseivel is, és azzl is, hogy azok hogyan befoljásolják a jólétét. Más ágensek nem megjósolható viselkedése számos lehetséges eshetőséget (contingencies) visz be az ágens problémamegoldásába.

3 Kétszemélyes játékok A több ágensből álló környezetek lehetnek:
Kooperatív (cooperative) Verseny (competitive) A versenykörnyezetek, ahol az ágensek céljai konfliktusban vannak, elvezetnek az ellenségek melletti kereséshez (adversarial search). Ha két ágens van, akkor ezeket kétszemélyes játékoknak nevezzük.

4 Kétszemélyes játékok A MI-ben a játékok általában igen specializáltak – determinisztikus, váltott lépésű, kétszemélyes, zérus összegű, teljes információjú (zero-sum games of perfect information). Ez azt jelenti, hogy két ágens helyezkedik el egy determinisztikus és teljesen megfigyelhető környezetben, a cselekvéseik váltják egymást, és a játék végén a hasznosságértékeik mindig azonosak és ellentétes előjelűek.

5 Kétszemélyes játékok A sakkban például, ha az egyik játékos győz (+1), akkor a másik veszít (-1). A játékok absztrakt természetük miatt vonzó terület a MI-kutatók számára. Egy játék állását könnyű reprezentálni, és az ágensek képességei általában kisszámú, jól definiált eredményre vezető cselekvésre korlátozódnak.

6 Kétszemélyes játékok Egy fizikai játéknak (pl. jégkorong) sokkal bonyolultabb a leírása. Több a lehetséges cselekvés, a cselekvések legális voltát nem túl precíz szabályok határozzák meg. A fizikai játékok közül a MI-kutatók csak a robotfutballal foglalkoztak.

7 Kétszemélyes játékok Konrad Zuse, Claude Shannon, Norbert Wiener, Alan Turing az 50-es években kezdtek sakkprogramokkal foglalkozni. Azóta a gépek sok játékban jobban az embernél (sakk, dáma, reversi). A kivétel a go, ahol a számítógép még csak amatőr szinten játszik.

8 Kétszemélyes játékok A kétszemélyes játékok azért érdekesek mert nagyon nehéz őket megfejteni. A sakknál például az átlagos elágazási tényező 35, gyakran előfordul, hogy a játék során mindkét játékos 50 lépést tesz, így a keresési fának 35100, vagyis csomópontja van (bár a keresési gráfnak „csak” 1040 különböző csomópontja lesz).

9 Kétszemélyes játékok A probléma megoldását a legjobb lépés definíciójával és megkeresésével kezdjük. Vannak olyan technikák is amelyek korlátozott idő alatt is képesek jó lépés megválasztására. A nyesés vagy metszés (pruning) lehetővé teszi, hogy figyelmen kívül hagyjuk a keresési fa azon részeit amelyek nincsenek befolyással a végső választásra.

10 Kétszemélyes játékok A heurisztikus kiértékelő függvények (evaluation function) lehetővé teszik, hogy kimerítő keresés nélkül fel tudjuk becsülni a valódi állapot igazi hasznosságát. Vannak olyan kétszemélyes játékok is amelyben a véletlen is megjelenik (pl. ostábla). A bridzs tartalmazza a hiányos információ (imperfect information) elemeit is, mivel a játékosok számára az összes kártya nem ismert.

11 Optimális döntések kétszemélyes játékokban
Olyan kétszemélyes játékokkal fogunk foglalkozni ahol a játékosokat MAX-nak és MIN-nek fogjuk nevezni. MAX lép először, majd a játékosos felváltva lépnek amíg a játék véget nem ér. A játék végén a győztes pontokat kap (vagy a vesztes kap büntetőpontot). A játékot egyfajta keresési problémaként lehet definiálni az alábbi komponensekkel.

12 A játékok komponensei Kiinduló állapot (initial state). Magában foglalja a táblaállást, és azt, hogy ki fog lépni. Egy állapotátmenet függvény (successor function) amely (lépés, állapot) párok listájával tér vissza, megadva a legális lépések listáját és az azokból következő állapotokat.

13 A játékok komponensei Egy végteszt (terminal test), ami meghatározza, hogy a játéknak mikor van vége. Azok az állapotok ahol a játék befejeződött, a végállapotok (terminal states). Egy hasznosságfüggvény (utility function) amit nyereségfüggvénynek (payoff function) is neveznek a játék végeredményéhez egy számértéket rendel. A sakkban a végeredmény győzelem, vereség vagy döntetlen lehet, amit +1, -1 vagy 0 értékekkel ábrázolhatunk.

14 A játékok komponensei Néhány játék ennél több végeredményre vezethet. Pl. az ostáblában a nyereség +192 és -192 között mozoghat. Itt zérusösszegű játékokkal fogunk foglalkozni. A kezdeti állapot és mindkét fél legális lépései a játék játékfáját (game tree) definiálják.

15 Amőba (tic-tac-toe)

16 Amőba (tic-tac-toe) Kezdeti állapotban MAX-nak 9 lehetséges lépése van. A játék során MAX és MIN felváltva tesznek x-et illetve 0-t, míg egy végállapotnak megfelelő csomópontba el nem jutnak, ahol az egyik játékosnak egy sorban, egy oszlopban vagy egy átló mentén három x-e vagy 0-ja lesz, vagy minden mező ki lesz töltve.

17 A játékok komponensei Az egyes levélcsomópontok alatt található számok a végcsomópontnak a MAX szempontjából mért hasznosságát jelölik. A nagy értékekről feltételezzük, hogy jók MAX számára, és rosszak MIN számára (innen ered a játékosok neve). MAX feladata, hogy a játékfát a legjobb lépés meghatározására használja fel.

18 Optimális stratégiák Egy normális keresési problémánál, egy optimális megoldás nem más mint a célállapothoz vezető lépések szekvenciája, amely a győzelmet jelenti. Kétszemélyes játékok esetén MIN-nek is van beleszólása a dologba. Ezért MAX-nak olyan stratégiát (strategy) kell találni amely meghatározza MAX lépését a kezdeti állapotban, majd a MIN lehetséges válaszaiból keletkező állapotokban, és így tovább.

19 Optimális stratégiák Egy optimális stratégia olyan kimenetelekhez vezet, amelyek legalább olyan jók, mintha bármilyen más stratégiával egy tévedhetetlen opponens ellen játszanánk. Először nézzük, hogyan kell megkeresni az optimális stratégiát, bár ennek kiszámítására MAX-nak nem lesz elegendő ideje az amőbánál bonyolultabb játékokban.

20 Optimális stratégiák

21 Optimális stratégiák MAX lehetséges lépései a1, a2 és a3. Az a1 lépésre MIN lehetséges válaszai b1, b2 és b3. Ez a konkrét játék MAX és MIN egy-egy lépése után véget ér. Ez a fa egy lépés mély, és két fél lépésből vagy lépésváltásból áll. A végcsomópontok hasznossága 2 és 14 között mozog.

22 Optimális stratégiák Az optimális stratégia meghatározásához az egyes csomópontok minimax értékét kell megvizsgálni, amit MINIMAX(n)-nel jelölünk. Egy csomópont minimax értéke a csomópont hasznossága MAX szemszögéből, feltéve hogy innen kezdve egészen a játék befejezéséig mindkét játékos optimálisan lép. Egy végállapot minimax értéke a saját hasznossága.

23 Optimális stratégiák Adott minimax értékek mellett MAX szeretne maximális értékű, MIN pedig a minimális értékű állapotba jutni. Az első, B címkéjű MIN csomópontnak három követője van: 3, 12 és 8, a B csomópont minimax értéke tehát 3. A másik két MIN csomópontnak a minimax értéke 2.

24 Optimális stratégiák A gyökér egy MAX csomópont, a követőinek minimax értékei 3, 2 és 2, így a gyökér minimax értéke 3. A gyökér minimax döntése (minimax decision) MAX számára a1, mert maximális értékű követőhöz vezet.

25 Minimax algoritmus A minimax algoritmus (minimax algorithm) az optimális döntést az aktuális állapotból számítja ki, felhasználva az egyes követő állapotok minimax értékeinek kiszámítására a definiáló egyenletekből közvetlenül származtatott, egyszerű rekurzív formulát. A rekurzió egészen a falevelekig folytatódik, majd a minimax értékeket a fa mentén visszafelé terjesztjük (back-up), ahogy a rekurzió visszalép.

26 Minimax algoritmus Az algoritmus először rekurzív módon leereszkedik a három bal alsó csomóponthoz, a HASZNOSSÁG függvénnyel kiszámítva, hogy az értékek 3, 12 és 8. Majd az algoritmus előveszi ezen értékek minimumát (3), és ezt adja vissza ahogy a B csomóponthoz visszatér. Hasonló procedúra eredményezi a további visszaadott értékeket is: 2-t a C, és 2-t a D csomópont számára. Végül vesszül a 3, 2 és 2 maximumát, hogy a gyökér által visszaadott 3-as értéket megkaphassuk.

27 Minimax algoritmus A minimax aégortimus a játékfa teljes mélységi feltárását végzi. Ha a fa maximális málysége m, és minden csomópontban b legális lépés létezik, akkor a minimax algoritmus időkomplexitása O(bm). A tárkomplexitás O(bm) egy olyan algoritmus számára, amely az összes követőt egyszerre számítja ki, és O(m) egy olyan aégoritmus esetében, amely a követőket egyenként generálja.

28 Alfa-béta nyesés A minimax algoritmus problémája, hogy a játékban a megvizsgálandó állapotok száma exponenciálisan nő a lépések számával. A kitevőtől sajnos nem tudunk megszabadulni, de azért megfelezhetjük. A korrekt minimax döntés kiszámítása lehetséges anélkül is, hogy minden csomópontra ránéznénk. Nyeséssel a játékfa nagyobb részét kihagyhatjuk.

29 Alfa-béta nyesés Ha az alfa-béta nyesést (alpha-beta pruning) egy standard minimax fára alkalmazunk, ugyanazt az eredményt adja vissza mint a minimax, a döntésre hatással nem lévő ágakat azonbam lenyesi. Meg kell határoznunk az optimális döntést, de kísérjük figyelemmel, hogy mit is tudunk a folyamat minden pontjában. Meg tudjuk határozni a minimax döntést anélkül, hogy a két levélcsomópontot bármikor is megnéznénk.

30 Alfa-béta nyesés

31 Alfa-béta nyesés (a) A B csomópont alatt az első levélnek 3 az értéke. B tehát, ami egy MIN csomópont, legfeljebb 3 értékű. (b) A B alatti második csomópontnak 12 az értéke. MIN ezt a lépést elkerüli, így B értéke még mindig legfeljebb 3. (c) A B alatti harmadik levélnek 8 az értéke. B összes követőit láttuk már, B értéke tehát pontosan 3. Most arra következtetünk, hogy a gyökér értéke legalább 3, mert MAX-nak a gyökérben 3-as értékű választása van.

32 Alfa-béta nyesés (d) A C alatti első levélnek 2 az értéke. C tehát, ami egy MIN csomópont legfeljebb 2 értékű. De mi tudjuk már, hogy B-nek 3 az értéke, MAX tehát C-t soha nem fogja választani. Azért nem is édremes C további követőit megvizsgálni. Ez az alfa-béta nyesés egy példája.

33 Alfa-béta nyesés (e) A D alatti első levélnek 14 az értéke, így D értéke legfeljebb 14. Ez több mint MAX legjobb alternatívája (3), ezért meg kell vizsgálni D követőit. Most a gyökér minden követője esetén rendelkezünk értékkorláttal, a gyökér értéke legfeljebb 14. (f) D második követőjének értéke 5, így tovább kell folytatnunk a vizsgálatot. A harmadik követő értéke 2, D értéke tehát pontosan 2. MAX döntése a gyökérnél, hogy B felé kell lépni, 3-as értékkel.

34 Alfa-béta nyesés Az alfa-béta nyesést tetszőleges mélységű fákra lehet alkalmazni, és sokszor lehetséges, hogy a levelek helyett teljes részfákat nyessünk le. Az általános elv a következő: tekintsünk egy olyan n csomópontot a fa belsejében, hogy a Játékosnak lehetősége legyen e csomópontba lépni.

35 Alfa-béta nyesés

36 Alfa-béta nyesés Ha a Játékosnak van az n szülőcsomópontjánál vagy ettől feljebb bármelyik döntési pontban egy jobb választása (m), akkor az n-t az aktuális játékban soha nem érjük el. Ha az n-ről tehát (néhány követőjének megvizsgálásával) már eleget tudunk, hogy ehhez a konklúzióhoz jussunk, a csomópontot nyugodtan lenyeshetjük.

37 Alfa-béta nyesés Az alfa-béta nyesés hatékonysága erősen függ a követő csomópontok vizsgálatának sorrendjétől. Ezért érdemes először a legjobbank tűnő csomópontokat megvizsgálni. Az alfa-béta nyesésnek elég O(bm/2) csomópontot megvizsgálni a legjobb lépés kiszámításához a minimax O(bm) értékével szemben. Ez azt jelenti, hogy az effektív elágazási tényező b helyett b1/2 lesz, például a sakk esetében 35 helyett 6. Ugyanannyi idő alatt az alfa-béta nyesés kétszer olyan messzire néz mint a minimax.


Letölteni ppt "Kétszemélyes játékok."

Hasonló előadás


Google Hirdetések