Tekoälysovellus A* -reitinhakualgoritmilla
Luikku, Tero (2013)
Luikku, Tero
Tampereen ammattikorkeakoulu
2013
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2013120119247
https://urn.fi/URN:NBN:fi:amk-2013120119247
Tiivistelmä
Tekoäly on yksi keskeisimmistä konsepteista ohjelmoinnissa. Päätöksentekokyky ja tilannetajuinen reagointi syventävät kokemusta peleissä ja tuovat käyttömukavuutta hyötyohjelmissa.
Opinnäytetyön aiheena oli suunnitella tekoäly peliprojektiin, missä käyttäjä etenee ylhäältä päin kuvatussa ympäristössä vältellen tietokoneen hallitsemia hahmoja. Tekoälyn ohjaamien yksiköiden tuli pystyä liikkumaan ympäristössä, sekä reagoida muuttuvaan tilanteeseen kentällä. Tämän lisäksi tekoälyn tuli olla laajennettavissa.
Tekoälyä suunnitellessa päädyttiin rakennevaihtoehdoista hierarkiseen tilakoneeseen. Tämä helpottaa laajentamista osakokonaisuuksien ollessa mahdollisimman tehokkaasti eristettyjä toisistaan.
Liikkumisessa tarvittiin reitinhakualgoritmia esteiden kiertämiseksi. Toteutus tapahtui Dijkstran algoritmin tuloksia painottavalla sovelluksella, joka yleisesti tunnetaan nimellä A*.
Pelin tarkoituksiin suunnitellussa tekoälyssä reitinhakualgoritmi osoittautui haastavimmaksi osaksi vieden suurimman osan kehitystyöhön kulutetusta ajasta. Lopputuloksena syntynyttä tekoälymoduulia on vähäisillä muutoksilla mahdollista hyödyntää navigointisovelluksessa reitinhakumoduulina.
Opinnäytetyön aiheena oli suunnitella tekoäly peliprojektiin, missä käyttäjä etenee ylhäältä päin kuvatussa ympäristössä vältellen tietokoneen hallitsemia hahmoja. Tekoälyn ohjaamien yksiköiden tuli pystyä liikkumaan ympäristössä, sekä reagoida muuttuvaan tilanteeseen kentällä. Tämän lisäksi tekoälyn tuli olla laajennettavissa.
Tekoälyä suunnitellessa päädyttiin rakennevaihtoehdoista hierarkiseen tilakoneeseen. Tämä helpottaa laajentamista osakokonaisuuksien ollessa mahdollisimman tehokkaasti eristettyjä toisistaan.
Liikkumisessa tarvittiin reitinhakualgoritmia esteiden kiertämiseksi. Toteutus tapahtui Dijkstran algoritmin tuloksia painottavalla sovelluksella, joka yleisesti tunnetaan nimellä A*.
Pelin tarkoituksiin suunnitellussa tekoälyssä reitinhakualgoritmi osoittautui haastavimmaksi osaksi vieden suurimman osan kehitystyöhön kulutetusta ajasta. Lopputuloksena syntynyttä tekoälymoduulia on vähäisillä muutoksilla mahdollista hyödyntää navigointisovelluksessa reitinhakumoduulina.