Go-ohjelmien vertailu
Lemström, Mika (2015)
Lemström, Mika
Metropolia Ammattikorkeakoulu
2015
Creative Commons Attribution-NonCommercial 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2015120118807
https://urn.fi/URN:NBN:fi:amk-2015120118807
Tiivistelmä
Insinöörityön tarkoituksena oli tutkia ja vertailla eri tietokoneohjelmia, jotka pelaavat Goota. Tutkimuksessa
selvitettiin, millä tavoilla tietokoneohjelmia voitaisiin parantaa ja kehittää, jotta ne tarjoaisivat
kunnon vastuksen Goota ammatikseen pelaaville. Go on yli 2500 vuotta vanha aasialainen
lautapeli, jossa vasta viime vuosikymmeninä tietokoneohjelmat ovat saavuttaneet tason, jolla voittaa
edistyneitä amatööripelaajia. Tavoite oli selvittää valittujen tietokoneohjelmien mahdollisia heikkouksia
ja ehdottaa niihin parannuksia.
Insinöörityöprojektissa etsittiin kolmea yleistä avoimen lähdekoodin Go-tietokoneohjelmaa internetistä.
Valitut tietokoneohjelmat asennettiin kahdelle eri tietokoneelle ja tutkittiin, miten ne saadaan
pelaamaan toisiaan vastaan. Kaikki ohjelmat tukivat samaa protokollaa, niitä pystyttiin peluuttamaan
keskenään. Ohjelmissa oli mukana ohjeet, joista saatiin selvitettyä mitä komentoja pelit vaativat
voidakseen pelata monta peliä peräkkäin. Näin saatiin tulokset nopeammin selville. Insinöörityössä
tutkittiin ohjelmia myös kooditasolla, joten tutkimuksessa tarkasteltiin vain sellaisia ohjelmia, joissa
on pääsy lähdekoodiin. Tutkimuksen ulkopuolelle rajattiin suljetun lähdekoodin ohjelmat. Goota
pelaavia ohjelmia on lukuisia, ja tässä tutkimuksessa vertailtiin niistä kolmea. Nämä Go-ohjelmat
ovat nimeltään Gnugo, Fuego ja Pachi.
Go-ohjelmia peluutettiin toisiaan ja itseään vastaan. Eniten pelejä voitti Pachi, seuraavaksi eniten
pelejä voitti Fuego ja vähiten Gnugo. Ohjelmat eivät aina osanneet laskea pelien lopullista pistemäärää
oikein, eivätkä ne löytäneet pelin oikeaa voittajaa. Tämä ilmeni, kun tulokset tarkastettiin
manuaalisesti jälkikäteen.
Pelitilanteiden tulkitseminen tuotti ohjelmille vaikeuksia, mistä seurasi, että ohjelmat luovuttivat pelejä
ennenaikaisesti. Näin ollen ohjelmien pelitilanteiden hahmottamista tulisi parantaa.
Lupaava Go-ohjelmiin liittyvä jatkotutkimuskohde voisivat olla syväoppivat konvolutionaaliset neuroverkot.
selvitettiin, millä tavoilla tietokoneohjelmia voitaisiin parantaa ja kehittää, jotta ne tarjoaisivat
kunnon vastuksen Goota ammatikseen pelaaville. Go on yli 2500 vuotta vanha aasialainen
lautapeli, jossa vasta viime vuosikymmeninä tietokoneohjelmat ovat saavuttaneet tason, jolla voittaa
edistyneitä amatööripelaajia. Tavoite oli selvittää valittujen tietokoneohjelmien mahdollisia heikkouksia
ja ehdottaa niihin parannuksia.
Insinöörityöprojektissa etsittiin kolmea yleistä avoimen lähdekoodin Go-tietokoneohjelmaa internetistä.
Valitut tietokoneohjelmat asennettiin kahdelle eri tietokoneelle ja tutkittiin, miten ne saadaan
pelaamaan toisiaan vastaan. Kaikki ohjelmat tukivat samaa protokollaa, niitä pystyttiin peluuttamaan
keskenään. Ohjelmissa oli mukana ohjeet, joista saatiin selvitettyä mitä komentoja pelit vaativat
voidakseen pelata monta peliä peräkkäin. Näin saatiin tulokset nopeammin selville. Insinöörityössä
tutkittiin ohjelmia myös kooditasolla, joten tutkimuksessa tarkasteltiin vain sellaisia ohjelmia, joissa
on pääsy lähdekoodiin. Tutkimuksen ulkopuolelle rajattiin suljetun lähdekoodin ohjelmat. Goota
pelaavia ohjelmia on lukuisia, ja tässä tutkimuksessa vertailtiin niistä kolmea. Nämä Go-ohjelmat
ovat nimeltään Gnugo, Fuego ja Pachi.
Go-ohjelmia peluutettiin toisiaan ja itseään vastaan. Eniten pelejä voitti Pachi, seuraavaksi eniten
pelejä voitti Fuego ja vähiten Gnugo. Ohjelmat eivät aina osanneet laskea pelien lopullista pistemäärää
oikein, eivätkä ne löytäneet pelin oikeaa voittajaa. Tämä ilmeni, kun tulokset tarkastettiin
manuaalisesti jälkikäteen.
Pelitilanteiden tulkitseminen tuotti ohjelmille vaikeuksia, mistä seurasi, että ohjelmat luovuttivat pelejä
ennenaikaisesti. Näin ollen ohjelmien pelitilanteiden hahmottamista tulisi parantaa.
Lupaava Go-ohjelmiin liittyvä jatkotutkimuskohde voisivat olla syväoppivat konvolutionaaliset neuroverkot.