Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Hasonló dokumentumok
V. Kétszemélyes játékok

Kétszemélyes játékok

1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére?

Mesterséges intelligencia 3. laborgyakorlat

Mesterséges Intelligencia MI

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

ULTIMATE TIC TAC TOE. Serfőző Péter

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

KÉTSZEMÉLYES JÁTÉKOK

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Mesterséges Intelligencia MI

Kereső algoritmusok a diszkrét optimalizálás problémájához

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

Mesterséges intelligencia

2. Visszalépéses keresés

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez

Kereső algoritmusok a diszkrét optimalizálás problémájához

Nyerni jó évfolyam

GEOMATECH TANULMÁNYI VERSENYEK ÁPRILIS

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

2. Visszalépéses stratégia

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

Dr. habil. Maróti György

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Számítógép és programozás 2

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Mesterséges intelligencia 2. laborgyakorlat

Keresések Gregorics Tibor Mesterséges intelligencia

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Algoritmusok és adatszerkezetek gyakorlat 07

Keresőeljárások kétszemélyes játékokhoz

15. A VERSENYRENDEZÉS

V. Kétszemélyes játékok

Számítógép és programozás 2

Amortizációs költségelemzés

A mesterséges intelligencia alapjai

Diszkrét matematika 2. estis képzés

Mesterséges Intelligencia MI

Diszkrét matematika 2.C szakirány

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

Mátrixjátékok tiszta nyeregponttal

Egy kétszemélyes logikai játék számítógépes megvalósítása

Algoritmusok bonyolultsága

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

XXXIX. MŰSZAKI FELSŐOKTATÁSI SPORTNAPOK

Általános algoritmustervezési módszerek

Diszkrét matematika 2.C szakirány

Programozási segédlet

Adatszerkezetek 2. Dr. Iványi Péter

Döntési rendszerek I.

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Korlátozás és szétválasztás módszere Holló Csaba 2

Adatszerkezetek 7a. Dr. IványiPéter

Számítógépes döntéstámogatás. Genetikus algoritmusok

Evolúciós algoritmusok

Intelligens Rendszerek Elmélete IRE 4/32/1

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Egy francia-sakk feladvány: Világos lép, és döntetlen az alsó sor az 1. sor!

Debreceni Egyetem Informatikai Kar. Kétszemélyes logikai játékok

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Tartalom Tartalom I. rész Játékok és fejtörők: összeadás és kivonás II. rész Játékok és fejtörők: szorzás és osztás

A játék készlet tartalma: 40 bábu sógitábla játékszabályok

Nem-kooperatív játékok

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

JÁTÉKELMÉLETTEL KAPCSOLATOS FELADATOK

Opkut deníciók és tételek

Rasmusen, Eric: Games and Information (Third Edition, Blackwell, 2001)

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

Isola (1-1 db sötét és világos király-bábu és max. 45 db blokk-bábu) A lépések két fázisból állnak: (1.) bármelyik oldalszomszédos mezőre áttoljuk a

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

1. Lineáris differenciaegyenletek

6. EGYETEMI 24 ÓRÁS PROGRAMOZÓI VERSENY (PROGRAMOZÁS 1)

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Kereső algoritmusok a diszkrét optimalizálás problémájához

1000 forintos adósságunkat, de csak 600 forintunk van. Egyetlen lehetőségünk, hogy a

10. Szimultán kiválasztások

SZAKDOLGOZAT. Hucker Dávid

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Algebra es sz amelm elet 3 el oad as Permut aci ok Waldhauser Tam as 2014 oszi f el ev

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia I. kötelező program

Mesterséges Intelligencia MI

2017/ Szegedi Tudományegyetem Informatikai Intézet

Adatszerkezetek II. 2. előadás

file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

Garry Kasparov a Deep Blue ellen

17. A 2-3 fák és B-fák. 2-3 fák

Átírás:

Kétszemélyes játékok

Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri a maga és az ellenfele összes múltbeli és jövőbeli lépéseit és lépési lehetőségeit, és azok következményeit. Minden lépés véges számú lehetőség közül választható, és minden játszma véges lépésben véget ér. Egy lépés determinisztikus, a véletlennek nincs szerepe. mennyit a játszma végén az egyik játékos nyer, annyit veszít a másik. (Legegyszerűbb változatban két esélyes: egyik nyer, másik veszít; vagy három esélyes: döntetlen is megengedett)

Állapottér modell állapot művelet állás + soron következő játékos lépés kezdő állapot kezdőállás + kezdő játékos végállapot végállás + játékos + payoff függvény: p, p B : végállapot R (játékosok:, B) o o Zéró összegű kétszemélyes játékban: p (t) + p B (t) = 0 minden t végállapotra Speciális esetben (a továbbiakban ezt fektételezzük): p (t) = +1 ha nyer p (t) = 1 ha veszít p (t) = 0 ha döntetlen

Grundy mama játéka

Grundy mama játékgráfja 7; 6,1; B 5, 2 ; B 4, 3 ; B 5, 1, 1 ; 4, 2, 1 ; 3, 2, 2 ; 3, 3, 1 ; 4, 1, 1, 1 ; B 3, 2, 1, 1 ; B 2, 2, 2, 1 ; B nyer 3, 1, 1, 1, 1 ; 2, 2, 1, 1, 1 ; B nyer 2, 1, 1, 1, 1, 1 ; B nyer

Játékfa csúcs állás (egy állás több csúcs is lehet) szint játékos (felváltva az és B szintjei) él lépés (szintről szintre) gyökér kezdőállás (kezdő játékos) levél végállások ág játszma

Grundy mama játékfája B B B 7 6, 1 5, 2 4, 3 5, 1, 1 4, 2, 1 4, 2, 1 3, 2, 2 4, 2, 1 3, 3, 1 4, 1, 1, 1 3, 2, 1, 1 3, 2, 1, 1 3, 2, 1, 1 2, 2, 2, 1 3, 2, 1, 1 3, 2, 1, 1 3,1,1,1,1 2,1,1,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 B B B B B

Hogyan tud a B játékos biztosan nyerni? B-nek arra van szüksége, hogy az minden lépésére legyen olyan válaszlépése, amellyel győzni tud. 7 B B B 6, 1 5, 2 4, 3 5, 1, 1 4, 2, 1 4, 2, 1 3, 2, 2 4, 2, 1 3, 3, 1 4, 1, 1, 1 3, 2, 1, 1 3, 2, 1, 1 3, 2, 1, 1 2, 2, 2, 1 3, 2, 1, 1 3, 2, 1, 1 3,1,1,1,1 2,1,1,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 2,2,1,1,1 B B B B B Nem elég egy olyan utat találni, amely megmutatja B egy győztes játszmáját, mert ezt nem biztos, hogy B végig tudja játszani az válaszlépései miatt.

Nyerő stratégia Egy játékos nyerő stratégiája egy olyan elv, amelyet betartva az ellenfél minden lépésére tud olyan választ adni, hogy megnyerje a játékot. nyerő stratégia NEM egyetlen győztes játszma, hanem olyan győztes játszmák összessége, amelyek közül az egyiket biztos végig tudja játszani az a játékos, aki rendelkezik a nyerő stratégiával. Hasznos lehet a nem-vesztő stratégia megtalálása is, ha döntetlent is megengedő játéknál nincs győztes stratégia. Általános zéró összegű játékoknál beszélhetünk adott hasznosságot biztosító stratégiáról.

Megjegyzés játék az egyik játékos szempontjából egy ÉS/VGY fával ábrázolható. saját szinten egy csúcs utódai között VGY kapcsolat van ellenfél szintjén egy csúcs utódai között ÉS kapcsolat van nyerő (nem-vesztő) stratégiát az ÉS/VGY játékfa azon hiper-útja mutatja, amely a gyökércsúcsból csupa nyerő (nem-vesztő) levélcsúcsba vezet. nyerő stratégia keresése tehát egy ÉS/VGY fabeli hiperút keresési probléma.

Nyerő stratégia keresése a B játékos ÉS/VGY fájában B B B B B B B B B B

Nyerő stratégia keresése az játékos ÉS/VGY fájában B B B B B B B B B B Nincs nyerő stratégia. Csak az egyik játékosnak lehet nyerő stratégiája.

Tétel két esélyes (győzelem vagy vereség) teljes információjú véges determinisztikus kétszemélyes játékokban az egyik játékos számára biztosan létezik nyerő stratégia. B B B B B B B B B B három esélyes játékokban (van döntetlen is) a nem vesztő stratégiát lehet biztosan garantálni. B

Részleges játékfa-kiértékelés nyerő vagy nem-vesztő stratégia megkeresése egy nagyobb játékfa esetében reménytelen. z optimális lépés helyett a soron következő jó lépést keressük. Legyen a bennünket képviselő játékos neve mostantól MX, az ellenfélé pedig MIN. Ehhez az aktuális állapotból indulva kell a játékfa néhány szintjét felépíteni, ezen a részfa leveleinek számunkra való hasznosságát megbecsülni, majd ez alapján a soron következő lépést meghatározni.

Kiértékelő függvény Minden esetben szükségünk van egy olyan heurisztikára, amely a mi szempontunkból becsüli meg egy állás hasznosságát: f : Állások [-1000, 1000] függvény. Példák: Sakk: (kiértékelő függvény a fehérnek) f(s) = (fehér királynő száma) (fekete királynő száma) Tic-tac-toe: f(s) = M(s) O(s) M(s) = a saját lehetséges győztes vonalaink száma O(s)= az ellenfél lehetséges győztes vonalaink száma X O X 6 O 5

Minimax algoritmus 1. játékfának az adott állás csúcsából leágazó részfáját felépítjük néhány szintig. 2. részfa leveleit kiértékeljük a kiértékelő függvény segítségével. 3. z értékeket felfuttatjuk a fában: saját (MX) szintek csúcsaihoz azok gyermekeinek maximumát: szülő := max (gyerek 1,..., gyerek k ) z ellenfél (MIN) csúcsaihoz azok gyermekeinek minimumát: szülő := min (gyerek 1,..., gyerek k ) 4. Soron következő lépésünk ahhoz az álláshoz vezet, ahonnan a gyökérhez felkerült a legnagyobb érték.

Példa Legyen a mi nevünk MX, az ellenfélé MIN. MX MIN 7 6 MX MIN 7 8 6 23-2 7 2-4 8-1 -2 6 5 6 12 23 10

Megjegyzés z algoritmust minden alkalommal, valahányszor mi következünk, megismételjük, hiszen lehet, hogy az ellenfél nem az általunk várt legerősebb lépésekkel válaszol, mert: eltérő mélységű részfával dolgozik, más kiértékelő függvényt használ, nem minimax eljárást alkalmaz, hibázik.

Átlagoló kiértékelés Célja a kiértékelő függvény esetleges tévedéseinek simítása. MX szintjeire az m darab legnagyobb értékű gyerek (max m ) átlaga, a MIN-re az n darab legkisebb értékű gyerek (min n ) átlaga kerül. MX MIN (m,n)-átlagoló Minimax m=2,n=2 6.5 8 4 9 MX 7 8 7.5 8 6 8 4 9 MIN 8 0 5 6 7 4 8 8 4-1 9-1 -2

Váltakozó mélységű kiértékelés Célja, hogy a kiértékelő függvény minden ágon reális értéket mutasson. Megtévesztő lehet egy csúcsnál ez az érték ha annak szülőjénél a kiértékelő függvény lényegesen eltérő értéket mutat: a játék ezen szakasza nincs nyugalomban. Egy adott szintig (minimális mélység) mindenképpen felépítjük a részfát, majd ettől a szinttől kezdve egy adott szintig (maximális mélység) csak azon csúcsokat terjesztjük ki, amelyekre nem teljesül a nyugalmi teszt: f(szülő) f(csúcs) < K,

Példa Minimax 6 Váltakozó mélységű 7 MX MIN 9 10 4 6 8 7 23 22 MX 8 10 7-4 -5 8 6 6 7 21 22-5 6 8 4 6 min mélység=3 max mélység=5 nyugalmi konstans= 3-1 6 MIN MX MIN

Szelektív kiértékelés Célja a memória-igény csökkentése. Elkülönítjük a lényeges és lényegtelen lépéseket, és csak a lényeges lépéseknek megfelelő részfát építjük fel. Ez a szétválasztás heurisztikus ismeretekre épül.

Negamax algoritmus Negamax eljárást könnyebb implementálni. Kezdetben ( 1)-gyel szorozzuk azon levélcsúcsok értékeit, amelyek az ellenfél (MIN) szintjein vannak, majd z értékek felfuttatásánál minden szinten az alábbi módon számoljuk a belső csúcsok értékeit: szülő := max( gyerek 1,..., gyerek k )

Példa MX MIN -7-6 MX 7 8 23 6 MIN -2 7 2-4 5-3 -8 12 23 10 2-7 -2 4-12 -23-10 -5 6 3 7 12 8

lfa-béta algoritmus Visszalépéses algoritmus segítségével járjuk be a részfát (olyan mélységi bejárás, amely mindig csak egy utat tárol). z aktuális úton fekvő csúcsok ideiglenes értékei: a MX szintjein érték: ennél rosszabb értékű állásba innen már nem juthatunk MIN szintjein érték: ennél jobb értékű állásba onnan már nem juthatunk Lefelé haladva a fában :=, és := +. Visszalépéskor az éppen elhagyott (gyermek) csúcs értéke (felhozott érték) módosíthatja a szülő csúcs értékét: a MX szintjein: := max( felhozott érték, ) a MIN szintjein: := min( felhozott érték, ) Vágás: ha az úton van olyan és, hogy.

Példa = - 2 = + 2 + 2 = - 2-4 - -1 2 = + 82-2 + + 74 + -1 + 2 8 2-2 7 8 4-1 2

Elemzés Ugyanazt a kezdőlépést kapjuk eredményül, amit a minimax algoritmus talál. (Több egyforma kezdőirány esetén a baloldalit választjuk.) Memória igény: csak egy utat tárol. Futási idő: a vágások miatt sokkal jobb, mint a minimax módszeré. Átlagos eset: egy csúcs alatt, két belőle kiinduló ág megvizsgálása után már vághatunk. Optimális eset: egy d mélységű b elágazású fában kiértékelt levélcsúcsok száma: d b Jó eset: részfa megfelelő rendezésével érhető el.

Kétszemélyes játékot játszó program Váltakozó mélységű, szelektív, (m,n) átlagoló, negamax alfa-béta kiértékelést végez. Keretprogram, amely váltakozva fogadja a felhasználó lépéseit, és generálja a számítógép lépéseit. Kiegészítő funkciók (beállítások, útmutató, segítség, korábbi lépések tárolása, mentés stb.) Felhasználói felület, grafika Heurisztika megválasztása (kiértékelő függvény, szelekció, kiértékelés sorrendje)