Developing and Optimizing Artificial Intelligence in Zero-sum Games
Järvensivu, Matti (2018)
Järvensivu, Matti
Jyväskylän ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018060312201
https://urn.fi/URN:NBN:fi:amk-2018060312201
Tiivistelmä
Tekoäly tekee toimintoja saavuttakseen tietyn tavoitteen, ja on tärkeää, että se tekee optimaalisen valinnan. Peliteoria tarjoaa matemaattisen viitekehyksen, joka auttaa kehittämään optimaalisen tekoälyn. Minimax-algoritmi on ratkaisu nollasummapeliin, ja se iteroi läpi jokaisen pelitilanteen pelissä tehden optimaalisen valinnan.
Tavoiteena oli tutkia yleisimpiä peliteorian konsepteja ja kehittää voittamaton tekoäly ristinolla-peliin peliteorian antamilla työkaluilla. Kehitettyä tekoälyä optimoitiin alpha- beta karsintamenetelmällä, jotta saadaan laskettua komputaatioiden määrää. Kehitettyä tekoälyä testattiin laittamalla se pelaamaan kahta yksinkertaisempaa tekoälyä vastaan. Peli kehitetettiin Unity3D-pelimoottorilla ja ohjelmointikielenä käytettiin C# ohjelmointikieltä.
Tavoite luoda voittamaton tekoäly ristinollaan onnistui. Peliteoreettinen tekoäly voitti 17 peliä ja pelasi 13 peliä tasan 30 pelistä. Optimointi alpha-beta-karsintamenelmällä nosti tekoälyn suorituskykyä huomattavasti laskien komputaatioden määrää 549945:stä 16771:een ensimmäisellä vuorolla, ja kun alpha-beta-karsintaa paranneltiin komputaatioden määrä laski 7273:een.
Peliteoria tarjoaa loistavan viitekehyksen tekoälyjen kehitykseen. Minimax on ratkaisu nollasummapeliin, ja sitä on helppo implementoida ja sitä voi optimoida muutamalla helpolla tavalla. Ratkaisu on hyvä, sillä sitä voi hyödyntää myös muissa nollasummapeleissä.
Tavoiteena oli tutkia yleisimpiä peliteorian konsepteja ja kehittää voittamaton tekoäly ristinolla-peliin peliteorian antamilla työkaluilla. Kehitettyä tekoälyä optimoitiin alpha- beta karsintamenetelmällä, jotta saadaan laskettua komputaatioiden määrää. Kehitettyä tekoälyä testattiin laittamalla se pelaamaan kahta yksinkertaisempaa tekoälyä vastaan. Peli kehitetettiin Unity3D-pelimoottorilla ja ohjelmointikielenä käytettiin C# ohjelmointikieltä.
Tavoite luoda voittamaton tekoäly ristinollaan onnistui. Peliteoreettinen tekoäly voitti 17 peliä ja pelasi 13 peliä tasan 30 pelistä. Optimointi alpha-beta-karsintamenelmällä nosti tekoälyn suorituskykyä huomattavasti laskien komputaatioden määrää 549945:stä 16771:een ensimmäisellä vuorolla, ja kun alpha-beta-karsintaa paranneltiin komputaatioden määrä laski 7273:een.
Peliteoria tarjoaa loistavan viitekehyksen tekoälyjen kehitykseen. Minimax on ratkaisu nollasummapeliin, ja sitä on helppo implementoida ja sitä voi optimoida muutamalla helpolla tavalla. Ratkaisu on hyvä, sillä sitä voi hyödyntää myös muissa nollasummapeleissä.