Táblareprezentáció és keretrendszer kidolgozása sakkprogramhoz

OData támogatás
Konzulens:
Rajacsics Tamás
Automatizálási és Alkalmazott Informatikai Tanszék

A sakk az egyik legnépszerűbb - Nemzetközi Olimpiai Bizottság által is elismert - szellemi sport ma a világon, 605 millió felnőtt játssza rendszeresen. Játékelméleti szempontból kedvező tulajdonságokkal bír, hiszen egy kétszemélyes, teljes információs, determinisztikus, nulla-összegű táblajáték. A lehetséges lépések egymásutánjából képzett állapottér azonban hatalmas, mérete meghaladja a megfigyelhető univerzumban lévő atomok számát. Ezért a játékosok a döntéseik meghozatala során ennek csak egy elhanyagolhatóan apró szeletét vizsgálják, és ez az összetettség az, ami miatt népszerűvé vált az utóbbi néhány évtizedben a számítástechnika területén is. A fordulópont, amikor a sakkot játszó programok berobbantak a köztudatba, az az IBM által fejlesztett Deep Blue mérkőzése volt Garry Kasparov ellen 1997-ben, ahol a gép legyőzte az akkor legerősebbnek számító embert. Noha, azóta a programok sokat fejlődtek, még mindig messze vannak a játék megoldásától.

Egy szokványos sakkprogram két fő részegységre osztható fel, az alapnak számító táblareprezentáció és a rá épülő mesterséges intelligencia modul (keresés és értékelés alrendszerekkel).

A diploma során a feladatom egy olyan táblareprezentáció készítése volt, amely a megfelelő modulokkal kiegészítve képes önállóan, a szabályokat betartva játszani, és játékerőben helytáll emberi játékosokkal és más programokkal szemben. A dolgozatom első részében általánosságban ismertetem a megvalósítandó feladatokat (lépések, szabályok) majd megközelítési lehetőségekként a különböző lehetséges megvalósítási módszereket (bitboard, 0x88, stb.) és technológiákat (transzpozíciós tábla). Végül elkészítem az implementációt és hozzá egy olyan tesztrendszert, ami segít megbizonyosodni a fő funkciók (lépésgenerálás, transzpozíció számítás) hibamentességéről és megbízhatóságáról, mindemellett alapot nyújt az optimalizáláshoz.

Az elkészült program összekapcsolva a kiegészítő modulokkal - melyeket Molnár László „Sakkprogram mesterséges intelligenciájának fejlesztése” című diplomamunkájának keretén belül készítette el - az elvárásaimnak megfelelően működik.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.