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

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

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

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

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

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

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

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

Mesterséges intelligencia 2. laborgyakorlat

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

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

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

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

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

Intelligens Rendszerek Elmélete IRE 4/32/1

Megerősítéses tanulás 7. előadás

Struktúra nélküli adatszerkezetek

Mátrixjátékok tiszta nyeregponttal

Mesterséges Intelligencia I. kötelező program

Nyerni jó évfolyam

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

Dr. habil. Maróti György

2. Visszalépéses keresés

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Mesterséges Intelligencia MI

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

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

GEOMATECH TANULMÁNYI VERSENYEK ÁPRILIS

Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny 2-3. korcsoport. Maximális növekedés

Összefoglalás és gyakorlás

KÉTSZEMÉLYES JÁTÉKOK

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

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

Verem Verem mutató 01

Gépi tanulás a gyakorlatban. Lineáris regresszió

Algoritmusok bonyolultsága

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

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

Szakdolgozat. Miskolci Egyetem. Logikai játékok nyerő stratégiáinak keresése. Készítette: Dorgai Attila Programtervező informatikus szak

Mesterséges Intelligencia MI

Kifejezések. Kozsik Tamás. December 11, 2016

Keresések Gregorics Tibor Mesterséges intelligencia

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

Bevezetés a programozásba. 5. Előadás: Tömbök

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.

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Forrás: Nagylaci (

Sarokba a bástyát! = nim

( 1) i 2 i. megbízhatóságú a levont következtetése? A matematikai statisztika eszközeivel értékelje a kapott eredményeket!

Megerősítéses tanulás 2. előadás

Diszkrét matematika 2.C szakirány

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

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

Abszolút JollyJóker játékcsalád. A kisiskolásoktól a professzionális játékmesterekig, ki-ki talál közöttük szintjének megfelelőt.

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

SZAKDOLGOZAT. Hucker Dávid

Játékelmélet. előadás jegyzet. Kátai-Urbán Kamilla. Tudnivalók Honlap: Vizsga: írásbeli.

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Térinformatikai algoritmusok Elemi algoritmusok

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

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

Adatszerkezetek 2. Dr. Iványi Péter

8 bivaly 2 tigris ellen

JÁTÉKELMÉLETTEL KAPCSOLATOS FELADATOK

KOPI. KOPI Online Plágiumkereső és Információs Portál DSD. Pataki Máté MTA SZTAKI. Elosztott Rendszerek Osztály

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

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

INFORMATIKAI ALAPISMERETEK

Mesterséges Intelligencia MI

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

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

Mohó algoritmusok. Példa:

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Véletlenszám generátorok és tesztelésük HORVÁTH BÁLINT

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Térinformatikai algoritmusok Elemi algoritmusok

Érdekes informatika feladatok

Programozási nyelvek Java

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

A szimplex tábla. p. 1

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Kris Burm játéka. Tartozékok

Kifejezések. Kozsik Tamás. December 11, 2016

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Diszkrét matematika 2.C szakirány

Matematikai alapok. Dr. Iványi Péter

Specifikáció alapú teszttervezési módszerek

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Komplex feliratok készítése Maplex-el. Beke Dániel

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Átírás:

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

ULTIMATE TIC TAC TOE Amőba alapján Két változat, az első könnyű, a második nehéz A játék keletkezéséről nincsenek információk, de a játékelmélet elkezdett vele foglalkozni Számos verseny gépi játékosoknak A következőekben vizsgált változat megoldatlan

SZABÁLYOK Két játékos: X és O A pálya 9 táblát tartalmaz, mérete 3x3 Egy tábla mérete is 3x3 Egy játékos nyer, ha 3 szomszédos táblában nyer (vízszintesen, függőlegesen, átlósan), ekkor a játéknak vége Természetesen döntetlen is lehetséges

SZABÁLYOK Fontosabb a játék megnyerése, mint egy mini-játék megnyerése Az amőbához hasonlóan a táblákhoz tartozó nyerési esélyek különböznek Itt már lényeges szerepet kap az intelligencia!

SZABÁLYOK Extra szabály: ha a játékos az i. mezőre lépett, akkor a következő játékosnak az i. táblában kell lépnie Mi történik, ha a soron következő tábla megtelt, vagy már elfoglalta egy játékos? -> 2 változat

SZABÁLYOK 1. verzió 2. verzió A következő játékosnak kötelező a soron következő táblában lépnie, ha már megnyert tábla is (ha lehetséges) Ez az eredeti, de gyorsan megváltoztatták Megoldott! Az első játékosnak az ellenfél játékstílusától függetlenül létezik nyerő stratégiája A következő játékosan nem kötelező a soron következő táblában lépnie, ha már megnyert tábla De dönthet úgy, hogy igen! (ha lehetséges) Ez megoldatlan! Továbbiakban ezzel foglalkozunk

KOMPLEXITÁS 9 tábla, 81 mező X a kezdő Legjobb eset: 9 darab X, 8 darab O Legrosszabb eset: döntetlen(?) 81 lépéssel d: depth, b: branching factor Hagyjuk el az első kört (81 lehetséges lépés) és a wildcardokat, így maximum 9 elágazás egy szinten Átlagosan 5 elágazás (b) -> ~10 13, ha a d=17 Átlagosan 5 elágazás (b) -> ~10 63, ha a d=81 (sakk: ~10 50, Go: ~10 170 ) Reménytelenül nagy a keresési tér (elhagyva lényeges részeket!)

THE AI GAMES Egy keretrendszer Különböző kétszemélyes játékok Gépi játékosok páronként játszanak egymás ellen Első hely -> 1024$ Go, Texas Hold Em, Tetris, Connect4 Különböző programozási nyelvek Egységes felület minden játékhoz, nyelvtől független szabályok GUI is rendelkezésre áll Az engine open source, tesztelhető lokálisan a gépi játékos

THE AI GAMES Időlimit (nyelv?) Forráskód limit Mindenkinek azonos erőforrás Tiltott minden külső API, internet elérés, adatbázis szerver, stb Tilos bármilyen hack, játékosokról, stílusukról, módszereikről információ elmentése és felhasználása Természetesen játék közben lehet, és ajánlott is

THE AI GAMES Java Kommunikáció: standard I/O Timebank: 10sec, minden lépés után 500ms hozzáadva Ha nincs időn belül válasz, akkor vége és vesztett a játékos Szintén bármilyen exception esetén Látható, hogy megfelelő algoritmusokra és nagyon optimális kódra van szükség!

ALKALMAZHATÓ MÓDSZEREK Természetesen a lehetséges játékállások tárolása nagyon hasznos (AlphaGo: 30 millió), de most nincs rá lehetőség, gépi tanulás Minimax algoritmus, α-β vágás (exponenciálisan növekednek a csúcsok számai, Deep Blue: 12 lépés) Monte Carlo fakeresés (AlphaGo egy nagyon lényeges része) Értékelő függvények, heurisztikák, mohó módszerek Bitboard

BITBOARD Egy adatszerkezet, tipikusan táblajátékokhoz (bitset, bitmap) Alapvetően sakkhoz (12 x 64 bit) Lényegében egy bitvektor, meghatároz egy állapotot Sok állapot a memóriában, kevés CPU művelet (elvileg!) Lekérdezések, tesztek logikai operátorokkal Nehéz a fejlesztés és a debug 81 x 2 bit, a következő tábla sorszámához és a soron következő játékoshoz 4 + 1 bit Vagy mindkét játékosnak 81-81 bit? 21 byte elég lenne (Java integer 4 byte) Nem csak a tár a lényeg: forgatások, mintafelismerés, lekérdezések gyorsítása, stb + a mi esetünkben az idő a kritikus!

BITBOARD P P P P P P P P 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 whitepawns = 0000000000000000000000000000000000000000000000001111111100000000 Két állás ekvivalens? (whitepawns == whitepawns2), (whitepawns!= whitepawns2) Leütötték már? (whitepawns == 0), (!whitepawns), (whitepawns) Melyek az üthető bábuk? Hogy néz ki a teljes tábla? Melyek az üres négyzetek? Forgatások, mintafelismerés

BITBOARD Gyorsítás Kisebb tár De nehéz a tervezés és az implementáció is. Összetett és jól átgondolt formulákra van szükség a komolyabb vizsgálatokhoz, mintafelismeréshez Sakkhoz már komoly, optimalizált API-k állnak rendelkezésre Egy olyan reprezentációt kell terveznünk, mely tömör formában írja le a játékot és lényegében képesek vagyunk mindent logikai operátorokkal megoldani

HEURISZTIKÁK 1. Csak a soron következő táblát vizsgáljuk 1. Ha a lépés nyerő, akkor meglépjük 2. Ha ilyen nem volt, akkor blokkoljuk az ellenfél kettesét 3. Ha ilyen sem volt akkor a mezők értéke alapján lépünk: a lehető legnagyobb eséllyel nyerő mezőt választjuk Buta heurisztika, figyelmen kívül hagyja a játék valódi célját 3 2 3 2 4 2 3 2 3

HEURISZTIKÁK 2. Vegyük figyelembe a táblákat is A táblák súlyai: mint a mezők esetén, a középsőnek 4, a sarkoknak 3, az oldalsóknak 2 Az eljárás visszatér egy pontszámmal: súlyozott összege a tábláknak, egy tábla értéke: 1. Ha a táblát mi nyertük, akkor az értéke 24 2. Ha az ellenfél, akkor -24 3. Ha döntetlen, akkor 0 4. Egyébként az általunk birtokolt mezők súlyainak összegéből kivonjuk az ellenfél által birtokolt mezők súlyainak összegét (üres 0) Ez már jobbnak tűnik, mint az előző, bár nem preferálja a teljes játék megnyerését

HEURISZTIKÁK 3. Szükséges kiértékelni a már eldöntött táblákat is? Az előzőekhez és itt is alkalmazzunk egy kezdeti vizsgálatot: ha megnyertük a teljes játékot akkor maximális pontszám és vége. Ha az ellenfél nyert, akkor negatív minimum és vége, döntetlen esetén 0. (döntetlen esetén nem feltétlenül lesz vége) Most a teljes pályát kiértékeljük: először határozzuk meg csak a játszható táblák értékeit és ott is nyerési esélyekkel. Ezeket az értékeket adjuk össze. Ezután meghatározzuk a pálya értékét, mintha egy tábla lenne. Ehhez tetszőleges > 1 konstans súlyt rendelünk és hozzáadjuk az előbb kiszámított összeget. Miért kell súlyozni? A játék megnyerése a preferáltabb, nem egy tábla elfoglalása.

MINIMAX A teljes játékfa kiértékelése nem lehetséges O(b d ) Ezért szükséges értékelő függvények bevezetése és a mélység korlátozása Alfa-béta vágás Használhatjuk az előző heurisztikákat

MINIMAX Tehát rögzítsünk egy mélységet, pl. d = 4 Használjuk a legjobbnak gondolt heurisztikus értékelést Alfa-béta vágás, vagy egyéb Megfelelő kódolás Transzpozíciós táblák: ugyanazon játékállás különböző utakon elérhető (ismétlődő állapotok: transzpozíciók). Mindet értékeljük ki? Használjunk hash-táblákat és mentsük el az értékeket. -> különböző stratégiák Sakkban akár 2x mélység érhető el

MONTE CARLO FAKERESÉS Véletlenszerűen generálunk az adott állásból lépéseket egészen addig, míg a játéknak nincs vége Tehát k random játék Válasszuk a számunkra legígéretesebb csúcsot Jól használható véges játékok esetén Döntetlen? Dobjunk fel egy érmét! Nyilván, ha k->inf akkor optimális Meglepő, hogy milyen jól teljesít! (AlphaGO) Természetesen rengetek stratégia létezik, a fenti a pure módszer

EREDMÉNY Minimax + alfa-béta + heurisztika3 Az engine még beta Terv: transzpozíciós tábla, Monte Carlo, jobb heurisztikák (bitboard ) Ötlet: lehetne hibrid stratégiákat alkalmazni? Talán az idő függvényében, aktuális nyerési esélyektől, körök számától függően más-más algoritmusokat használni? Esetleg bizonyos állásban több időt felhasználni a rendelkezésre álló időből? (tudatosan)

VERSENYEK Akit érdekelnek a gépi játékosokkal kapcsolatos versenyek: http://theaigames.com/ https://www.battlecode.org/ http://vindinium.org/ https://www.codingame.com/home http://botprize.org/ http://www.pogamutcup.com/code

FORRÁSOK https://chessprogramming.wikispaces.com/bitboards http://pages.cs.wisc.edu/~psilord/blog/data/chesspages/rep.html http://theaigames.com/ http://www.cs.huji.ac.il/~ai/projects/2013/ulitmatetic-tac-toe/ https://pclub.in/site/sites/default/files/ultimate_tic_tac_toe_d oc.pdf http://project.mit.bme.hu/mi_almanach/books/aima/ch06s03 http://neverstopbuilding.com/minimax

KÖSZÖNÖM A FIGYELMET!