Tekoäly tietokonepeleissä



Samankaltaiset tiedostot
Tekoäly ja dynamiikka tietokonepeleissä

Luku 9: Tekoäly. Tekoäly peleissä Agentit Tekniikoita Toimintapelit Taktiset pelit

Nollasummapelit ja bayesilaiset pelit

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Tietotekniikan valintakoe

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

Automaatit. Muodolliset kielet

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Tilastotiede ottaa aivoon

Turingin koneen laajennuksia

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Algoritmit 1. Luento 1 Ti Timo Männikkö

Kieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat

Yhteistyötä sisältämätön peliteoria

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Evolutiivisesti stabiilin strategian oppiminen

Esimerkkejä vaativuusluokista

Datatähti 2019 loppu

Peliteoria Strategiapelit ja Nashin tasapaino. Sebastian Siikavirta

Tilastotiede ottaa aivoon

Pohdiskeleva ajattelu ja tasapainotarkennukset

SEKASTRATEGIAT PELITEORIASSA

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

JOHDATUS TEKOÄLYYN TEEMU ROOS

Algoritmit 2. Luento 12 To Timo Männikkö

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

JOHDATUS TEKOÄLYYN TEEMU ROOS

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

OMINAISUUS- JA SUHDETEHTÄVIEN KERTAUS. Tavoiteltava toiminta: Kognitiivinen taso: Ominaisuudet ja suhteet -kertaus

Algoritmit 2. Luento 13 Ti Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Matinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla).

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Esimerkki: Tietoliikennekytkin

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Luku 8. Aluekyselyt. 8.1 Summataulukko

Kontrollilaitteet. Arsenaali

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä. 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä.

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

perustelu Noudatetaan sääntöjä. Opetuskortit (tehtävät 16 28), palikoita, supermarketin pohjapiirustus, nuppineuloja, tangram-palat

JOHDATUS TEKOÄLYYN TEEMU ROOS

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Pelin tekoäly. Aleksi Vuorela IIO14S1. Tietorakenteet ja algoritmit harjoitustyö Joulukuu 2015

Geneettiset algoritmit

2.4. Oppimistyyleistä

Onnistut yrittämässäsi, mutta jokin täysin epäolennainen. vikaan.

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdanto peliteoriaan Kirja kpl. 2

Algoritmit 2. Luento 12 Ke Timo Männikkö

Koodaamme uutta todellisuutta FM Maarit Savolainen

Seniorit ja tietokonepelit. Tietokonepelien pelaamisesta senioreiden näkökulmasta. Seniorien pelitapahtuma Enter ry

Määrittelydokumentti

Lisää pysähtymisaiheisia ongelmia

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Algoritmit 2. Luento 4 To Timo Männikkö

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

JOHDATUS TEKOÄLYYN TEEMU ROOS

Agentit ja semanttinen web. Pekka Halonen

Systemointiosamäärä. Nimi: ********************************************************************************

Informaation arvo. Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

JOHDATUS TEKOÄLYYN TEEMU ROOS

Algoritmit 1. Luento 8 Ke Timo Männikkö

Tietorakenteet ja algoritmit - syksy

UML -mallinnus TILAKAAVIO

7.4 Sormenjälkitekniikka

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi

Yhteistyötä sisältämätön peliteoria jatkuu

Laskut käyvät hermoille

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Johdatus tekoälyn taustalla olevaan matematiikkaan

Laskennallinen älykkyys. Computational Intelligence

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Peliohjelmointi: Kontrollilaitteet. Teppo Soininen

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

811120P Diskreetit rakenteet

The OWL-S are not what they seem

FI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan:

Kombinatorinen optimointi

811312A Tietorakenteet ja algoritmit I Johdanto

JOHDATUS TEKOÄLYYN TEEMU ROOS

Matematiikan tukikurssi

811120P Diskreetit rakenteet

Transkriptio:

Tekoäly tietokonepeleissä

Mitä tekoäly on? Termin tekoäly määritelmä on hieman kiistelty Sisältää käsitteen äly jonka määrittely on itsessään epämääräinen Laskennallinen rationaalisuus olisi monen mielestä parempi termi Millainen toiminta on älykästä? Oman aikansa älykästä järjestelmää voidaan pitää hyvinkin tyhmänä tulevaisuudessa Älykkäät järjestelmät voidaan luokitella seuraavasti: 1. Järjestelmä joka ajattelee kuin ihminen (Kognitiivinen lähestyminen) 2. Järjestelmä joka ajattelee rationaalisesti (Looginen lähestyminen) 3. Järjestelmä joka toimii kuin ihminen (Behavioristinen lähestyminen) 4. Järjestelmä joka toimii rationaalisesti (Käytännöllinen lähestyminen) 2

Teknillistieteellistä tekoälyä tutkittu 1950 luvulta saakka Teknillistieteellinen tekoäly pohjautuu varsin moneen eri tieteenalaan Filosofia (voiko formaaleilla säännöillä saada aikaan valideja tuloksia?) Matematiikka (mitä voidaan selvittää laskennallisesti?) Kauppatieteet (miten toimitaan jotta saadaan maksimoitua voitto?) Hermostotutkimus (kuinka aivot käsittelevät tietoa?) Psykologia (miten ihmiset ja eläimet ajattelevat ja toimivat?) Tietotekniikka (miten rakentaa tehokas laskukone?) Robotiikka (kuinka koneet toimivat omassa ohjauksessaan?) Kielitieteet (kuinka kieli kuvaa ajattelua?) 3

Moderni tekoäly Moderni tekoäly pohjautuu varsin vahvasti matematiikkaan Tilastotiede, logiikka, laskettavuus, algoritmiikka Tekoälykäs olio käsitetään usein ympäristöstään irrallisena kokonaisuutena, jota kutsutaan agentiksi (termi n. 1995) Agentti on käsitteellinen yksikkö, ei välttämättä konkreettinen olio Ajattelun apuväline monimutkaisen kokonaisuuden hahmottaiseksi Yleisesti agentti koostuu neljästä eri osasta 1. Syötteenluku / havainnointijärjestelmä (sensorit) 2. Tulostus / toimintoja suorittava järjestelmä (aktuaattorit) 3. Tietovarasto / tietämyskanta (muisti) 4. Tiedon käsittelyjärjestelmä (tekoäly) 4

Agentti toimii jossain rajatussa toimintaympäristössä eli maailmassa Agentti saa syötteensä maailmasta ja suorittaa toimintoja maailmaan Maailma on siis agentin ymmärtämä kuvaus sen toimintaympäristöstä 5

Tekoälyagenttien suunnittelun kannalta on hyödyllistä määritellä tarkoin millaisessa maailmassa agentti toimii Russell ja Norvig luokittelevat agenttien toimintaympäristöt kuuden ominaisuuden perusteella 1. Täysin havainnoitava tai osittain havainnoitava Pystyykö agentti tekemään havaintoja koko maailman tilasta? 2. Deterministinen tai stokastinen Ovatko agentin toimintojen seuraukset yksikäsitteisiä? 3. Episodinen tai ei-episodinen Voiko maailman jakaa ajanjaksoihin jotka ovat riippumattomia toisistaan? 4. Staattinen tai dynaaminen Muuttuuko maailman tila sillä aikaa kun agentti ei tee mitään? 6

5. Diskreetti tai jatkuva On maailman aika jaettavissa erillisiin jaksoihin? 6. Yhden agentin tai monen agentin Onko agenttimme ainoa olio joka tekee muutoksia maailmaan? Maailman määrittelystä on hyötyä tekoälyagentteja suunniteltaessa Geneerisen kaikkialle soveltuvan agentin toteuttaminen olisi käytännössä mahdoton tehtävä Agentteja voi myös luokitella eri kategorioihin Refleksiivinen, tavoitehakuinen, oppiva jne Agentilla voi olla ominaisuuksia eri kategorioista, esim. hälyttävät havainnot käsitellään refleksiivisesti ja muut tavoitehakuisesti 7

Tekoälyn rooli tietokonepeleissä Tekoälyn tavoitteet peleissä on mm.: Luoda haasteita pelaajalle Luoda monimuotoisuutta pelimaailmaan Se, minkä tasoista tekoälyn tulisi olla saavuttaakseen edellä mainitut tavoitteet, riippuu hyvin pitkälti pelimaailmasta Yksinkertaisissa peleissä hyvinkin yksinkertainen tekoäly riittää luomaan riittävän hyvän haasteen (esim. Super Mario Bros.) Moderneissa peleissä maailman kuvaus saattaa olla hyvinkin lähellä todellista maailmaa Tekoälyltä vaaditaan huomattavasti enemmän 8

Pelien kompleksisuuden kehitys on lisännyt tekoälyn ja maailman dynamiikan merkitystä tietokonepeleissä Pelialan ammattilaiset ovat antaneet ymmärtää, että grafiikka on saavuttanut jonkinasteisen saturaatiopisteen ja paino peleissä siirtyy tekoälyn ja dynamiikan puolelle Verkkopelit, joissa pelaajan on mahdollista pelata ihmisvastustajia vastaan saattaa hieman vähentää älykkäiden ei-pelaaja hahmojen (non-player character) tarvetta, muttei poista sitä Kaikki pelaajat haluavat olla sankareita, eivät sivuhahmoja tai epäonnistujia Tarvitaan uskottavia sivuhahmoja monen pelaajan peleihin 9

Tietokonepelien tekoäly eroaa teknillistieteellisistä tekoälyn käyttökohteista Tekoälyn keinoin pyritään luomaan todenmukainen illuusio jostain todellisen maailman osasta Lopputuloksen tulee olla uskottava, ei välttämättä optimaalinen (esim. kyky tehdä inhimillisiä virheitä vaikuttaa erittäin positiivisesti pelikokemukseen) Toimintaympäristö on täysin hallittavissa, eli agentille voidaan antaa haluttaessa käyttöön kaikki mahdolliset resurssit Myös huijaaminen on täysin sallittua (tosin tylsää jos se on läpinäkyvää) Toisaalta pelitekoälylle asetetaan yleensä vaatimus reaaliaikaisuudesta 10

Ensisilmäykseltä voisi ajatella, että tietokonepeleissä tekoäly seuraa vahvasti behavioristista lähestymistapaa Pelit sisältävät myös rationaalisesti toimivia tekoälyagentteja Moderneissa tietokonepeleissä on paljon komponentteja joiden toiminta voidaan tulkita älykkääksi (tai tekoälyyn rinnastettavan olion ohjaamaksi) Ilmeisiä osia: vastustajat, apulaiset ja sivulliset hahmot Ei niin ilmeisiä osia: pelaamista avustavat helpperit, kameraa liikutteleva moottori ja fysiikkamoottori Agentti on olio joka tekee havaintoja maailmasta ja suorittaa tämän seurauksena toimintoja jotka muuttavat maailmaa 11

Tekoälyn käyttökohteita tietokonepeleissä Tekoälylle ominaisia piirteitä löytyy lähes kaikista tietokonepeleistä Toimintastrategian suunnittelu Yksittäisen objektin toiminta Mitä tekoäly tekee eri genren peleissä Yksittäinen moderni tietokonepeli sisältää usein monia tekoälyyn rinnastettavia järjestelmiä John E. Laird and Michael van Lent luokittelevat artikkelissaan Human-level AI s Killer Application: Interactive Computer Games eri tyyppisiä tekoälyjä 12

1. Taktiset vastustajat (tactical enemy) Häiritsee pelaajaa tai kilpailee häntä vastaan pelin hengen nimissä Agentin toiminta usein varsin autonomista Käytetään usein toiminta- ja urheilupeleissä Esim. Quaken botit tai NHL 2004:n maalivahti Toteutustekniikkana tilakoneet varsin suosittuja 2. Ystävät (partners) Avustaa pelaajaa hänen pyrkimyksissään Agentin toiminta yhteistyöpainotteista Käytetään usein urheilu-, seikkailu- ja roolipeleissä Esim. NHL 2004:n joukkuekaverit tai NPC:t Neverwinter Nights:ssa Jaetulla muistilla toimivat tilakoneet paljon käytetty tekniikka 13

3. Tukihahmot (support characters) Ohjaa pelaajaa oikeaan suuntaan Agentin toiminta tavoitehakuista Käytetään usein seikkailu- ja roolipeleissä ohjaa pelaajaa juonen mukaiseen suuntaan Muita esimerkkejä: neuvonantajat strategia- tai urheilupeleissä 4. Strateginen vastustaja (strategic enemy) Strateginen vastus pelaajalle Agentin toiminta perustuu suunnitelmien tekoon ja niitten toteuttamiseen Strategiapeleissä lähes aina jokin tämän tyyppinen tekoäly Eroaa tukihahmoista mm. siinä, että agentti joutuu tarkkailemaan suunnitelmien onnistumista 14

Muita mahdollisia tekoälyn käyttökohteita Simulaatiopelien hahmot (Ant farm) Urheilupelin selostaja Pelin dynamiikka (fysiikka, sää, jne ) Juonen kehittäminen pelaajan toiminnan pohjalta (dynaaminen juoni) Pelaajan pelityylin opetteleva agentti (voi ohjata avataria pelaajan ollessa siihen kyvytön tai haluton) Eri tarkoituksiin kannattaa käyttää eri toteutustekniikoita Hybriditekniikat Hierarkiset ratkaisut Esim. agentin taktinen suunnittelu voi käyttää eri tekniikkaa kuin agentin strateginen suunnittelu 15

Perustekniikoita pelitekoälyn toteuttamiseksi Tekoälyä on tutkittu paljon On olemassa paljon erilaisia tekniikoita, joiden avulla tekoälyn ongelmakohtia saadaan ratkaistua Tietokonepelit hyödyntävät toistaiseksi hyvin vähän teknillistieteellisen tekoälytutkimuksen menetelmiä Tietokonepelien tekoäly usein varsin yksinkertaista Akateeminen tekoälytutkimus ja pelitekoälytuotanto ovat melko erillään toisistaan henkilöstön ja tietojen vaihtoa vain vähän Viimeaikoihin asti grafiikka on vienyt niin suuren osan kapasiteetista, että kovin monimutkaiselle tekoälylle ei ole ollut tilaa 16

Toisin kuin monissa muissa tekoälysovelluksissa, peliagentti ei saa tehdä silloin tällöin täysin järjettömiä päätelmiä, jos se vain on riittävän hyvä muulloin aina keskinkertaisesti toimiva tekoäly on peleissä useinmiten parempi kuin yleensä loistava, mutta silloin tällöin todella karkeita virheitä tekevä esim. neuroverkkojen käyttö on tästä syystä hankalaa Yksinkertaiset oppivat järjestelmät on otettu käyttöön vasta hiljattain Max Payne: vastustajien taso mukautuu pelaajan tasoon Gand Turismo 4: AI opettelee pelaajan ajotyylin ja voi haluttaessa ottaa auton hallintaansa (kehitteillä, ei välttämättä pelissä mukana) Black and White: pelaaja opettaa pelihahmoa toimimaan halutulla tavalla 17

Muutamia perustekniikoita joita käytetään tekoälyn toteuttamisessa Tilakoneet (Finite State Machines) Päätöspuut (Decision trees) Looginen päättely (Logical Reasoning) ja Sumea Logiikka (Fuzzy Logic) Sääntöjärjestelmät (Rule Systems) Partial-order planners Tila-avaruus haku (State Space Search) Polunetsintä (Path Finding) Neuroverkot (Neural Networks) Geneettiset algoritmit (Genetic Algorithms) Parveilualgoritmit (Flocking Algorithms) 18

Seuraavaksi käsitellään edellämainittuja tekniikoita, sekä joitakin spesifisesti peleihin kehitettyjä menetelmiä Menetelmät esitellään pintapuolisesti: tarkoitus ei opetella toteuttamaan esim. neuroverkkoa Keskitytään tarkastelemaan mihin mitäkin tekniikkaa voisi käyttää ja mihin niitä on käytetty pelien tekoälyä ohjelmoitaessa Tarkemmin menetelmien yksityiskohtiin perehdytään Tekoäly-kurssilla 19

Äärelliset tilakoneet (Finite State Machine) Yksi eniten käytetyistä tekoälytekniikoista tietokonepeleissä Tilakoneet voidaan esittää melko intuitiivisessa muodossa myös tietojenkäsittelyä tuntemattomille (esim. pelisuunnittelijoille) Tilakone koostuu äärellisestä määrästä tiloja, joiden välillä on tilasiirtymiä Eri asia kuin äärellinen automaatti (Finite automaton FA), joskin termejä käytetään sekaisin kirjallisuudessa Esim. tilakoneilla ei tässä kontekstissa tarvitse olla lopputilaa ja ne voivat tuottaa tulostetta jokaisen tilasiirtymän yhteydessä Agentin tavoitteet määräytyvät tilakoneen tilan mukaan Tilasiirtymät aiheutuvat agentin havainnoista 20

Tilakoneet voivat olla deterministisiä tai epädeterministisiä Epädeterministiset tilakoneet ovat kuitenkin toiminnaltaan deterministisiä (tietokoneen ollessa deterministinen tilakone) Tilakoneen tulosteet voidaan sitoa Tilasiirtymään sidottuna (Mealyn tilakoneet - vasemmalla) Tiloihin sidottuna (Mooren tilakoneet - oikealla) Tulosteaakkoston merkkaaminen riippuu myös siitä, mihin tulosteet on sidottu c/x c S1 a/z S3 S1/x a S3/y b/w a/y b a S2 21 S2/w

Tulosteaakkoston sitominen vaikuttaa tilakoneen tuottamaa käytökseen Tilasiirtymiin sidottuna tuloste riippuu syötteestä ja tilasta, jossa edellisessä vaiheessa oltiin Monipuolisempi toiminta Hankalampi suunnitella Tiloihin sidottuna tuloste on aina sama riippumatta siitä, mistä tilasta nykyiseen tilaan on saavuttu Yksikertaisempi suunnitella Arvattavampi käytös 22

Tilakoneen syöteaakkosto voidaan tulkita agentin tekemiksi havainnoiksi ja tulosteet agentin toiminnoiksi Tilat voidaan tulkita agentin tavoitteeksi kullakin ajanhetkellä Quake 2:ssa käytetään tilakonetta jolla on 9 eri tilaa: seisoskelu, kävely, juokseminen, väistely, hyökkääminen ampuma-aseella, hyökkääminen lyömä-aseella, vastustajan näkeminen, etsiminen ja odottaminen Tilakoneella voi olla myös muistia, jota se käyttää tilasiirtymien yhteydessä Tilasiirtymä saattaa riippua muistissa olevien muuttujien arvoista normaalin tilan ja syötesymbolin lisäksi Tilasiirtymään voi myös liittyä jokin funktio (esim. muistin tilan muuttaminen) 23

Epädeterministisissä tilakoneissa on mahdollista tehdä monta eri tilasiirtymää samalla syötteellä Usein varsin tarpeellinen ominaisuus Tarvitaan jokin keino jolla yksittäinen tilasiirtymä valitaan (eli tehdään tilakoneesta jossain mielessä deterministinen) b S3 S1 a S2 a a b S4 24

Yksi peleissä paljon käytetty epädeterministinen tilakoneformalismi on propabilistinen tilakone Tilasiirtymään liitetään todennäköisyys joka riippuu aikaisemmin tehdyistä tilasiirtymistä (saadut syötteet, edelliset tilat ja tulosteet) Myös tulostefunktioon voidaan sitoa todennäköisyys Todennäköisyyksien summan tulee olla 1 molemmissa tapauksissa Tilasiirtymäfunktio δ määrittelee siirtymätodennäköisyydet kaikille tiloille (osa todennäköisyyksistä voi olla nollia) Todennäköisyys voi riippua paitsi lähtötilasta, tapahtumasta ja kohdetilasta, myös edellisestä tilasta sekä edellisestä tulosteesta 25

Usein tilasiirtymien todennäköisyys riippuu vain tilasta, josta siirtymää ollaan tekemässä Noudattaa ns. ensimmäisen asteen Markovin ketjua Tilasiirtymien todennäköisyydet yksinkertaistuvat huomattavasti Myös tulosteet voidaan hoitaa näin a/x : 0,8 a : 0,3 S2 S1 S2 S1 a/y : 0,2 a : 0,7 S3 Monimutkaisemmat kokonaisuudet kannattaa usein esittää hierarkisina tilakoneina Tilakoneen tila voikin olla alemman tason tilakone 26

Esimerkkikuva Quaken Shambler-hirviöstä: - Attack State jakautuu alitiloihin, samoin Melee Attack 27

Tilakone kannattaa esittää tietorakennekurssilta tuttuna graafina 2D taulukko eli matriisiesitys käyttää usein liikaa muistia, koska suurin osa taulukon alkiosta on tyhjiä Kytkentälista esitys on yleensä parempi Tilakoneita toteutettaessa (kooditasolla) saattaa törmätä ongelmallisiin tilanteisiin Pelien tekoälyssä tilakoneiden syöte- ja tulostesymbolit vastaavat havaintoja ja toimintoja Tietoa ei usein välitetä symboleiden muodossa vaan tilasiirtymä tapahtuu jos jokin funktiokysely palauttaa halutunlaisen arvon 28

Tilat tulkitaan joksikin prosessiksi jonka perusteella agentti toimii aina kun tila on aktiivisena Teoreettisessa mallissa tilakone saa syötteenään jonon symboleita jotka ovat implisiittisesti järjestyksessä (koska ne syötetään yksi kerrallaan) Käytännössä maailman tilassa saattaa tapahtua monia muutoksia kerralla Funktioiden järjestyksellä on suuri merkitys siihen, mikä tilasiirtymä kussakin tilanteessa valitaan Esim. s. 22 tilakoneella: olemme tilassa S1 ja havainnot a ja b tapahtuvat yhtä aikaa, agentti tarkistaa ensin onko havainto a tehty 29

(joka aiheuttaa siirtymän S1->S3) ja sitten havainnon b (joka aiheuttaisi siirtymän S1->S2) Jos a tarkistetaan ennen b:tä päädytään suoraan tilasta S1 tilaan S3 (sillä S3:sta ei ole tilasiirtymää havainnolla b ei liikuta eteenpäin) Jos b tarkistetaan ennen a:ta, päädytään tilasta S1 tilaan S3 tilan S2 kautta Agentin käytös saattaa olla hyvinkin erilaista riippuen siitä, missä järjestyksessä havaintoja tarkastellaan (eräänlaista epädeterministisyyttä) Edellisessä esimerkissä saatetaan myös menettää tietoa Siirtymän S1->S3 jälkeen havainnon b paikkansapitävyyttä ei välttämättä tarkasteta (sillä S3:sta ei ole tilasiirtymää b:llä), joten havainto b jää huomioimatta 30

Mikäli havainto b tutkitaan ensin ja S2:een liittyvä toiminnallisuus muuttaa havainnon a epätodeksi jää taasen havainto a käsittelemättä Edellä mainittuihin ongelmiin voi vaikuttaa toteuttamalla agentille viestinvälitysjärjestelmän Esimerkiksi prioriteettijonon jossa tärkeät havainnot käsitellään ensin, mutta kaikki havainnot tulevat käsitellyiksi jossain vaiheessa (mikäli tarpeen) Toimintoja suoritettaessa agentin muistin tila saattaa muuttua ja tämä saattaa laukaista uuden tilasiirtymän ennen kuin edellinen on käsitelty loppuun Agentti saattaa jäädä jumiin kahden tilan välille hyvinkin pitkäksi aikaa 31

Tilasiirtymistä olisi hyvä tehdä atomisia toimintoja, eli niitä ei voi keskeyttää Agentin voi asettaa toimintojen suorittamisen ajaksi johonkin tilaan jossa se on tilassa josta tilasiirtymiä ei tehdä minkään havainnon seurauksena 32

Tilakoneiden hyviä puolia Tilakoneilla on varsin vahva ja hyvin ymmärretty teoreettinen tausta Tilakoneet on helppo esittää ymmärrettävässä muodossa Sopivat hyvin alemman tason tekoälyksi, jonkin monipuolisemman menetelmän ohelle Huonoja puolia Tilakoneista tulee todella monimutkaisia jos niillä yritetään mallintaa suuria kokonaisuuksia Eivät sellaisenaan sovellu kaikenlaisiin tehtäviin (esim. laskureitten pitämiseen) Heikoimmillaan todella ennalta-arvattavia 33

Päätöspuut (Decision trees) Päätöspuiden avulla voidaan mallintaa saman tyyppistä toimintaa helposti Päätöspuiden rakenne on selkeä ja helposti hahmotettava Jokainen päätöspuun solmu sisältää ehdon, usein binäärisen, joka evaluoituessaan määrittää mihin haaraan puussa edetään Päätöspuun lehdessä on sinne vievän polun määrittämässä tilanteessa suoritettava toiminto Päätöspuut voivat olla myös hierarkisia, jolloin lehtisolmuna voi olla toinen päätöspuu Jotkut AI Middleware ohjelmistot tukevat päätöspuita (esim. AI Implant) 34

Esimerkki päätöspuusta, jolla hahmo päättää hyökkääkö se havaitsemansa vihollisen kimppuun 35

On myös mahdollista liittää päätöspuita tilakoneisiin siten, että tila johon siirrytään valitaan päätöspuun avulla On helppo kuvitella, että edellisen kalvon esimerkkipäätöspuun avulla päätetään siirrytäänkö tilaan hyökkää vai tilaan pakene Sofistikoituneempi käyttötarkoitus päätöspuille on oppivien peliagenttien luominen Päätöspuita ei tehdä etukäteen vaan ne generoidaan pelin kuluessa tehtyjen havaintojen perusteella Menetelmä soveltuu hyvin esimerkiksi vastustajan taktiikan oppivan peliagentin tekemiseen Päätöspuiden etuna esimerkiksi neuroverkkoihin nähden on niiden helppo ymmärrettävyys ja jäljitettävyys 36

yksittäinen älytön toiminto voidaan paikallistaa ja korjata Menetelmää on menestyksekkäästi sovellettu pelissä Black and White, jossa pelaaja opettaa olentoa toimimaan toivomallaan tavalla Päätöspuuta rakennetaan pelaajan kunkin toiminnon jälkeen antaman palautteen perusteella Minimaalisten päätöspuiden generoimiseen käytetään Quinlanin ID3 - algoritmia Seuraavalla kalvolla on esimerkki, jossa näkyvät pelihahmon suorittamat hyökkäystoiminnot ja pelaajan niiden jälkeen antamat palautteet taulukkona sekä hahmon niistä muodostama päätöspuu: 37

38

Tila-avaruushaku (State Space Search) Tila-avaruushaun perusideana on löytää kelvollinen ratkaisu ongelmaan tutkimalla mahdollisten toimintojen seurauksia Johonkin asteeseen asti melko luonnollinen tapa ihmisille käsitellä asioita: jos teen X ja sitten tapahtuu Y niin siitä seuraa Z Tila-avaruus Maailma jaetaan diskreetteihin osiin (vaikka se ei diskreetti olisikaan) Tila-avaruuden yksittäinen tila kuvaa jotain maailman tilaa Toiminnot aiheuttavat maailman tilan muuttumisen joka kuvataan tilaavaruudessa liikkeenä tilasta toiseen 39

Agentti luo tila-avaruuden saatavilla olevan tiedon ja mahdollisten sääntöjen perusteella Tila-avaruuden esitys on puumainen Solmut esittävät maailman tiloja ja kaaret toimintoja (eli tilojen muutosta) Puun juurisolmu esittää maailman sen hetkistä tilaa..... Alipuihin luodaan mahdollisia seuraajatiloja algoritmin määrittelemällä tavalla 40

Tila-avaruus sisältää kaikki sääntöjen puitteissa mahdolliset tilat joita lähtötilanteesta voi seurata menetelmä toimii vain sellaissa maailmoissa, joissa tällaiset säännöt voidaan mielekkäällä tavalla määritellä Pyritään valitsemaan sellainen tilasiirtymäketju (eli toimintojen sarja) jonka seurauksena maailman tila on mahdollisimman edullinen agentille Tietokonepelien tila-avaruus on niin laaja, että kaikkien tilojen tuottaminen olisi todella työlästä Esim. Shakissa on noin 20 mahdollista aloitussiirtoa 4 ensimmäisen siirron simulointiin pitäisi generoida n. 160000 tilaa 41

Jos kaikki tilat olisi mahdollista generoida helposti, olisi ongelman ratkaisu triviaalia Luodaan kaikki mahdolliset tilat ja etsitään polku parhaasta mahdollisesta tilasta tämänhetkiseen tilaan Tila-avaruuden laajuuden lisäksi tila-avaruuden generointia hankaloittavat tekijät jotka eivät ole agentin hallittavissa Vastustajat pyrkivät toimimaan omaksi hyväkseen (usein juuri agenttia vastaan) Maailmaan saattaa vaikuttaa satunnaiset tekijät 42

Jos maailman tilaan vaikuttaa agentin lisäksi jokin muu tekijä, pyritään peli usein formalisoimaan erillisiin siirtovuoroihin Agentti tekee siirtonsa (S a ) johon vastustaja (tai muu vaikuttava tekijä) vastaa (S b ) Tilasiirtymiä tapahtuu ainoastaan joukosta S a joukkoon S b ja toisinpäin Kaikki muista tekijöistä johtuvat tapahtumat voidaan ajatella erillisinä tilasiirtyminä Tila-avaruudesta tulee kapea, mutta syvä Kaikki muista tekijöistä johtuvat tapahtumat voidaan ajatella yksittäisenä tilasiirtymänä Tila-avaruudesta tulee leveä, mutta matala 43

Toteutettaessa yksi hankalimmista asioista on määritellä tilan arvo Kuinka hyvä yksittäinen tila on? Huonolla tilalla saattaa olla todella hyvät seuraukset (shakissa kuningattaren uhraaminen pelin voittamiseksi) Useissa tila-avaruushaku algoritmeissa sen tuottaman vastauksen laatu on kiinni tilan hyvyyden luokittelusta (mm. A* ja alpha-beta karsinta) Algoritmeja tila-avaruushaun toteuttamiseen A* Min-max Alpha-beta karsinta (alpha-beta pruning) Eri algoritmit tuottavat usein eri tyyppisiä tuloksia 44

Edellä mainituista syistä tila-avaruushakuja käytetään lähinnä lautapelien ja melko abstraktien strategiapelien tarpeisiin Useimmat menestyksekkäät lautapelialgoritmit perustuvat Alphabetakarsintaa käyttävään minimax-algoritmiin Rubikin kuutio tyyppiset puzzlet kannattaa yleensä ratkaista heuristisella tila-avaruushaulla kuten A* Modernimmissa peleissä tila-avaruusetsinnän käyttö rajoittuu yleensä pienempien osaongelmien kuten polunetsinnän tarpeisiin tähän käytetään usein A*-algoritmia tai sen muunnoksia 45

Sääntöjärjestelmät (Rule Based System - RBS) Sääntöjärjestelmät ovat hyvin yksinkertainen loogisen päättelyn menetelmä Niiden avulla voidaan toteuttaa refleksiivisiä agentteja Kaikkiin havaintoihin, ja havaintoyhdistelmiin on valmiiksi kovakoodattu reaktio Reaktion ei tarvitse olla maailmaan vaikuttava toiminto vaan se voi myös olla uusi havainto (eli päätelmä) Esim. hellan levy on punainen -> hellan levy on kuuma Idea juontaa juurensa psykologiasta Toiminta jäljittelee ihmisen tapaa tehdä asioita kokemuksen pohjalta, esim. peukalosääntöjen perusteella 46

Esim. ei kosketa hellan levyyn jos levy on punainen, koska se on kuuma Sääntöjärjestelmän voidaan tulkita koostuvan kolmesta osasta 1. Sääntökanta Tallennettu yhteydet toimintojen ja havaintojen välillä (eli säännöt) Maailma 2. Työmuisti Sisältää tunnettuja faktoja maailmasta 3. Tulkki Tulkin tehtävänä on tulkita syötteen ja työmuistin perusteella mitä sääntökannan havaintoa maailman tila vastaa Toiminto 1 Toiminto 2... Toiminto n Agentt i Tulkki Havainto 1 Havainto 2... Havainto n 47

Sääntöjärjestelmiä käytetään laajalti suurtenkin kokonaisuuksien hallintaan asiantuntijajärjestelmissä käytettävissä valmiita työkaluja (rule engine, esim. Jess) säännöt voivat olla esim. propositioloogiikkaa, predikaattilogiikkaa, sumeaa logiikkaa tai perustua todennäköisyyksiin Sääntöjärjestelmämoottoreiden käytöstä peleissä on tehty jonkin verran tutkimusta Useat pelit kertovat olevansa sääntöpohjaisia (rule based) Baldur s gate, FX Fighter, Roboforge Peleissä sääntöjärjestelmät kuitenkin lienevät yleensä ad-hoc menetelmällä kyhättyjä if-else rakennelmia 48

Esimerkki hyvin yksinkertaisen otuksen toimintaa kuvaavasta sääntöjärjestelmästä: Näkyvissä( vihollinen ) Pakene Nälkä AND Hallussa( ruoka ) Syö( ruoka ), not( Hallussa( ruoka ) ) Nälkä AND Näkyvissä( ruoka ) MeneJaPoimi( ruoka ), Hallussa( ruoka ) Nälkä Etsi( ruoka ) Default Nuku 49

Esimerkissä oletetaan, että säännöt käsitellään ylhäältä alas valiten suoritukseen ensimmäinen, jonka esiehto toteutuu mahdollista valita myös esim. paras tai tarkin Sääntöjärjestelmien hyviä puolia Yksinkertainen Melko luonnollinen tapa mallintaa toiminnallisuutta Eteenpäin ketjutuksella helppo toteuttaa Modulaarisuus Säännöt eivät ole kytköksissä toisiinsa (helppo täydentää sääntökantaa) Muunneltavuus Vasteet saadaan helposti muunneltua halutunlaisiksi Vahva teoreettinen pohja 50

Huonoja puolia Valmiita tehokkaita ratkaisuja on olemassa Yksinkertainen Vasteet ennalta arvattavia (ei yllättävää käytöstä) Suoritusaika Suurien sääntömäärien läpikäyminen hidasta Lokaalisuus Sääntöjärjestelmät eivät sovellu hyvin toimintosarjojen toteuttamiseen 51

Suunnittelevat agentit Suunnittelevat agentit ovat sääntöjärjestelmiä monipuolisempi loogisen päättelyn menetelmä Teknillistieteellisen tekoälytutkimuksessa kehitetään ahkerasti tavoitehakuisia suunnittelevia agentteja Myös pelitekoälytutkimuksessa lähestymistapaa on käytetty melko runsaasti Onhan tavoitteellinen tavoitteisiinsa suunnitelman avulla pyrkivä agentti juuri sitä mitä peleihin haluaisimme Maailma kuvataan agentille jollakin formaalilla tavalla, esimerkiksi predikaattilogiikalla 52

Agentilla on valittavinaan aktioita, joihin kuuluvat seuraavat osat: esiehto (precondition), joka määrittää, millainen maailman tulee olla aktioon ryhdyttäessä toiminnan kuvaus jälkiehto (postcondition), joka kertoo, millainen maailma on aktion jälkeen Agentin päättely tapahtuu seuraavasti: Agentti omaksuu jonkin tavoitteen, se on esimerkiksi annettu sille valmiiksi Agentti ryhtyy etsimään aktioita, joiden seurauksen kyseinen tavoite tulee voimaan Ja aktioita, joiden seurauksena nämä tulevat voimaan jne. kunnes ollaan löydetty suorituspolku alkutilanteesta lopputilanteeseen Käytännön algoritmeja tämän toteuttamiseen on useita, ne ovat yksityiskohdiltaan hieman erilaisia 53

Partial order planner Laajalti tunnettu paradigma tavoitehakuisten agenttien tekemiseen on BDI (Belief, Desire, Intention), jossa agenteilla on yleensä predikaattilogiikalla tai sen laajennoksella esitettyjä uskomuksia, tavoitteita ja aikomuksia, joiden pohjalta ne sitten valitsevat toimintonsa Teoreettisesta kauneudestaan huolimatta menetelmä on peliohjelmissa ongelmallinen Maailmassa, jossa faktoja ja aktioita on paljon, Partial order planner algoritmit ovat usein liian hitaita Yksinkertaisellekin aktiolle saatetaan joutua kirjaamaan merkittävä määrä esiehtoja 54

o Esim. ennen kuin Matti voi ostaa kaupasta leipää, täytyy varmistua paitsi siitä, että kaupassa on leipää ja Matilla on riittävästi rahaa, myös siitä että kauppa on auki, Matti on elossa ja kauppias on elossa o Joku tällaisista itsestään selvän tuntuisista esiehdoista helposti unohtuu, mistä voi olla seurauksena silminhavaiten järjetön tapahtuma 55

Neuroverkot Neuroverkot ovat tekoälymenetelmä, joka jäljittelee ihmisaivojen toimintaa Neuroverkot koostuvat neuroneista niiden välisistä yhteyksistä Neuronit järjestetään kerroksiksi syötekerros (input layer) ulostulokerros (output layer) mahdolliset välikerrokset 56

Kustakin neuronista on yhteys kaikkiin seuraavan tason neuroneihin Syötekerroksen neuronit saavat arvonsa verkon syötteestä Verkon ulostulo saadaan ulostulokerroksen neuroneista Neuroverkon älykkyys on neuronien välisten yhteyksien painokertoimissa Oppiminen tapahtuu säätämällä painokertoimia oikeiksi opetusnäytteiden avulla Opetusnäytteet koostuvat syötteistä sekä halutuista tulosteista Käytössä on useita algoritmeja, joista tunnetuin on back propagation 57

Siis: neuroverkon avulla muodostetaan approksimaatio funktiosta syötteen ja ulostulon välillä valittu neuroverkon rakenne määrää funktion muodon opetusprosessi määrää funktion painokertoimet Neuroverkot siis soveltuvat vain sellaisten tekoälyongelmien ratkaisemiseen, jotka on muotoiltavissa matemaattisiksi funktioiksi, joilla on syöte ja tuloste Opettaminen kuluttaa aikaa, joten sitä ei yleensä voida tehdä reaaliaikaisesti pelin kuluessa On kyseenalaista kuinka monissa peleissä, joissa neuroverkkoja on mainostettu käytettävän, niitä on käytetty tarkoituksenmukaisesti Soveltuvat parhaiten tietokoneen ohjaamien hahmojen esiopettamiseen 58

oma voima oma nopeus oma ase vihollisen koko vihollisen ase hyökkää ammu pakene Esimerkki, neuroverkon avulla tehtävästä päätöksestä Opetusaineisto voisi olla tämän tapaista: oma voima 5, oma nopeus 8, oma ase 0, vihollisen koko 7, vihollisen ase 1 pakene oma voima 8, oma nopeus 7, oma ase 0, vihollisen koko 6, vihollisen ase 0 hyökkää oma voima 5, oma nopeus 4, oma ase 1, vihollisen koko 8, vihollisen ase 0 ammu 59

Neuroverkkojen avulla on esimerkiksi mahdollista opettaa agentti ajamaan autoa simuloidussa ympäristössä Neuroverkon saama syöte ovat agentin näköpiirissä olevat objektit, ja niiden sijainti Neuroverkon ulostulona toimivat ohjaus ja kaasutus Ongelmana pelikäytössä on läpinäkyvyyden puute Jossakin tilanteissa toimivien räikeiden virhetilanteiden korjaaminen on vaikeaa, ja se voidaan joutua tekemään ad-hoc ratkaisuna neuroverkon ulkopuolelle Neuroverkkoja kerrotaan käytetyn ainakin seuraavissa peleissä: Battlecruiser: 3000AD, Dynamic Gin, Heavy Gear, Creatures 60

Geneettiset algoritmit Eräs melko monessa pelissä (ainakin pelisuunnittelijoiden kertomusten mukaan) esiintyvä tekoälytekniikka ovat geneettiset algoritmit Niitä on käytetty erityisesti simulaatiopeleissä uusien halutun tyyppisten populaatioiden luomiseen Nooks and Crannies, Creatures, Sigma Jotkut pelisuunnittelijat ovat raportoineet käyttäneensä niitä myös strategioiden luomiseen Return Fire II, Cloak, Dagger, and DNA 61

Nimensä mukaisesti geneettisissä algoritmeissa pidetään yllä populaatiota, jossa seuraavan sukupolven esi-isiksi valitaan todennäköisimmin menestyneimmät yksilöt Yleensä heikotkin yksilöt pääsevät jatkamaan sukua pienellä todennäköisyydellä, jottei algoritmi juuttuisi paikalliseen maksimiin Toisinaan kaikkein parhaat yksilöt siirretään suoraan seuraavaan populaatioon Yksilöille voi myös pienellä todennäköisyydellä tapahtua mutaatioita Risteyttäminen tapahtuu yleensä siten, että risteytettävät oliot koodataan esimerkiksi bittijonoiksi, jotka sitten katkaistaan satunnaisesta kohdasta ja yhdistetään 62

Mutatointi tapahtuu vastaavasti siten, että kukin bitti vaihtuu jollakin hyvin pienellä todennäköisyydellä Tässä piilevätkin geneettisten algoritmien suurimmat ongelmat Koodaus täytyy tehdä siten, että risteytyksen ja mutaatioiden seurauksena syntyy elinkelpoisia yksilöitä Tämä saattaa olla varsin haastavaa Populaation yksilöt täytyy voida evaluoida luotettavasti, mikä ei pelistragioiden kohdalla välttämättä ole helppoa Geneettiset algoritmit ovat hyvä tapa löytää kohtalaisia likimääräisratkaisuja vaikeisiinkin ongelmiin Optimaalisiin tuloksiin niiden avulla päästään harvoin Sikäli ne sopivat hyvin peleihin 63

Satunnaisesta lähtökohdasta hyvään lopputulokseen pääseminen voi kuitenkin vaatia useita sukupolvia, mikä saattaa olla liian hidasta peliohjelmaan Geneettisiä algoritmeja on käytetty vaikeisiin polunetsintäongelmiin, kuten kauppamatkustajan ongelma Peruspolunetsintään se on kuitenkin yleensä turhan hidas ja epätarkka menetelmä Antfarm tyyppisiin simulaatiopeleihin, joissa halutaan mallintaa evoluutiota geneettiset algoritmit sopivat kuitenkin erinomaisesti Geneettisiä algoritmeja on mahdollista käyttää myös yhdessä muiden tekoälymenetelmien kanssa Esim. Nero-projekti käyttää geneettisiä algoritmeja ja neuroverkkoja 64

Parveilualgoritmit (flocking) Parviälyn ideana on, että parvi on joukkona älykkäämpi, kuin sen yksittäiset jäsenet Parveilualgoritmit matkivat eläinten parvikäyttäytymistä Yleisimmin matkitaan lintuja, kaloja tai muurahaisia Muurahaisia jäljittelemällä on ratkaistu polunetsintäongelmia Melko hyviä mm. likimääräisratkaisuja kauppamatkustajan ongelmaan Muurahaiset erittävät kulkiessaan feromonia, joka haihtuu vähitellen Muurahaiset valitsevat mieluiten polun, jolla muutkin muurahaiset ovat feromonijäljestä päätellen kulkeneet Valitun polun feromonijälki vahvistuu ja syntyy muurahaispolku 65

Tätä algoritmia voidaan jäljitellä tietokoneen avulla jättämällä digitaalisia jälkiä, jotka agentit huomaavat Tämän tyyppiset algoritmit sopivat luontevasti liikkuvien sivuhahmojen ja strategiapelien ihmismassojen luomiseen Pelejä, joissa parveilualgoritmeja on hyödynnetty: Half Life, Unreal 66

Muita tekniikoita Fiksu maasto (Smart terrain) Simsissä Objektit sisältävät informaation siitä, miten niitä käytetään Pallo kertoo Simille, miten sitä potkaistaan Uusien ominaisuuksien lisääminen on yksinkertaista Esineet mainostavat itseään Simeille Kukin esine ilmoittaa mitä Simin tarpeita se kykenee tyydyttämään Mainonnan vaikutus heikkenee, sitä mukaa mitä kauemmas esineestä siirrytään Sim suunnistaa siihen suuntaan, jossa sen kulloisenkin tarpeen tyydyttävän esineen vaikutus on suurin 67

Kemialliset yhdisteet Agentit erittävät kemiallisia yhdisteitä, kun ne tuntevat jotakin Yhdisteet voivat muodostaa uusia yhdisteitä Agentin toiminta riippuu paitsi sen käsityksestä maailmasta myös sen tuntemuksista, joita yhdisteet edustavat Creatures Influence mapping Otetaan käyttöön pelialueen kokoinen (resoluutio voi toki olla pienempi) kartta Merkitään omat ja vihollisjoukot kartalle Aletaan käydä karttaa läpi siten, että jokaisen ruudun arvoa muutetaan sen naapureiden suuntaiseksi, toistetaan useita kertoja 68

Lopulta kartalta voidaan nähdä pelaajien väliset voimasuhteet, ja pelaajien vaikutus eri alueilla Käytössä lähinnä strategisissa sotapeleissä Fields of Battle 69

Lähteitä [Dalmau, 2004] Daniel Sánches-Crespos Dalmau, Core Techniques and Algorithms in Game Programming. New Riders Publishing 2004. [Russel and Norvig, 2003] Stuart Russell and Peter Norvig, Artificial Intelligence, A Modern Approach. Pearson Education inc. 2003. [Soininen, 2004] Teppo Soininen, AI in computer games, unpublished 2004. [Laird and Lent, 2000] John E. Laird and Michael van Lent, Human-level AI s Killer Application: Interactive Computer Games. In: Proceedings of AAAI 2000, pp. 1171-1178. AAAI Press / The MIT Press, 2000. [Evans] Richard Evans, From Black and White to Infinity and Beyond. http://www.gameai.com/blackandwhite.html 70

[Brownlee] Jason Brownlee: A Practical Analysis of FSM within the domain of first-person shooter (FPS) computer game, http://aidepot.com/finitestatemachines/fsm-practical.html [Kunzle] Philippe Kunzle: Vehicle Control with Neural Networks, http://www.gamedev.net/reference/articles/article1988.asp [Gameai] http://www.gameai.com [NERO] Neuro Evolving Robotic Operatives http://nn.cs.utexas.edu/nero/index.html 71