Tekoälyn rakentaminen vuoropohjaiseen nollasummapeliin
Halsinaho, Laura (2021)
Halsinaho, Laura
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021112822174
https://urn.fi/URN:NBN:fi:amk-2021112822174
Tiivistelmä
Opinnäytetyön tarkoituksena oli tutkia eri toteutustapoja vuoropohjaisen nollasummapelin tekoälylle. Tekoäly tehtiin shakkia muistuttavaan strategiapeliin, joka on osa Friendly Fire Oy:n mobiilipeliprojektia. Tekoäly toimii minimax-algoritmilla, johon on lisätty alpha-beta-karsinta. Työssä esitellään tekoälyn käytännöntoteutus ja sen käyttämät erilaiset heuristiikat. Tekoäly on toteutettu C#-koodikielellä Unity-pelimoottorissa.
Opinnäytetyössä perehdyttiin nollasummapeleissä yleisesti käytettyihin puuhakualgoritmeihin ja niiden toimintaan sekä eroihin. Käsiteltävät algoritmit ovat minimax, alpha-beta-karsinta ja Monte Carlo-haku. Alpha-beta-karsinnan havaittiin olevan puhdasta minimaxia parempi vaihtoehto, koska sillä saadaan sama tulos minimaxia nopeammin. Koneoppimisen todettiin olevan ylimitoitettu vaihtoehto kyseiseen projektiin, mistä syystä työssä keskityttiin käsittelemään aihetta klassisen tekoälyn ja puuhaun näkökulmasta.
Minimaxin todettiin olevan hyvä ratkaisu nollasummapelin tekoälylle, koska se on yksinkertainen toteuttaa ja sen suorituskykyä voidaan parantaa yksinkertaisin keinoin, kuten käyttämällä alpha-beta-karsintaa. Monte Carlo-haun havaittiin myös olevan varteenotettava vaihtoehto, etenkin jos peliin halutaan lisätä enemmän ominaisuuksia, koska Monte Carlo-haku skaalautuu minimaxia ja alpha-beta-karsintaa paremmin pelin monimutkaistuessa.
Opinnäytetyössä perehdyttiin nollasummapeleissä yleisesti käytettyihin puuhakualgoritmeihin ja niiden toimintaan sekä eroihin. Käsiteltävät algoritmit ovat minimax, alpha-beta-karsinta ja Monte Carlo-haku. Alpha-beta-karsinnan havaittiin olevan puhdasta minimaxia parempi vaihtoehto, koska sillä saadaan sama tulos minimaxia nopeammin. Koneoppimisen todettiin olevan ylimitoitettu vaihtoehto kyseiseen projektiin, mistä syystä työssä keskityttiin käsittelemään aihetta klassisen tekoälyn ja puuhaun näkökulmasta.
Minimaxin todettiin olevan hyvä ratkaisu nollasummapelin tekoälylle, koska se on yksinkertainen toteuttaa ja sen suorituskykyä voidaan parantaa yksinkertaisin keinoin, kuten käyttämällä alpha-beta-karsintaa. Monte Carlo-haun havaittiin myös olevan varteenotettava vaihtoehto, etenkin jos peliin halutaan lisätä enemmän ominaisuuksia, koska Monte Carlo-haku skaalautuu minimaxia ja alpha-beta-karsintaa paremmin pelin monimutkaistuessa.