Tekoäly ja dynamiikka 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 Tutkimusta on tehty varsin monella eri tieteenalalla 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 Agentti on käsitteellinen yksikkö, ei välttämättä konkreettinen olio Kaikki teokset eivät käsittele tekoäly agenttien kautta (termi n. 1995) 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 näkemä kuvaus sen toimintaympäristöstä 5
Tekoäly agenttien 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 joka maailman höylä tyyppisen agentin toteuttaminen olisi käytännössä mahdoton tehtävä Agentteja voi myös luokitella eri kategorioihin Refleksiivinen, tavoitehakuinen, oppiva jne Agenttien luokittelusta saavutetaan enemmänkin akateemista iloa kuin todellista apua suunnittelulle (henkilökohtainen mielipide) 7
Perustekniikoita tekoälyn toteuttamiseksi Tekoälyä on tutkittu paljon Olemassa paljon erilaisia tekniikoita joiden avulla tekoälyn ongelmakohtia saadaan ratkaistua Tietokonepelit hyödyntävät toistaiseksi hyvin vähän teknillistieteellisen tekoäly tutkimuksen menetelmiä Tietokonepelien tekoäly usein varsin yksikertaista 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) 8
Muutamia perustekniikoita joita käytetään tekoälyn toteuttamisessa Sääntöjärjestelmät (Rule Systems) Tilakoneet (Finite State Machines) Looginen päättely (Logical Reasoning) Tila-avaruus haku (State Space Search) Polunetsintä (Path Finding) Geneettiset algoritmit (Genetic Algorithms) Hermoverkot (Neural Networks) Sumea Logiikka (Fuzzy Logic) Parveilu algoritmit (Flocking Algorithms) 9
Sääntöjärjestelmät (Rule Based System - RBS) Erittäin yksikertainen reaktiivinen järjestelmä Kaikkiin havaintoihin 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 Kokemus on tallennettuna säännöiksi joita noudatetaan orjallisesti Esim. ei kosketa hellan levyyn jos levy on punainen, koska se on kuuma 10
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 Ei kaikkien tulkintojen mukaan kuulu RBS:ään 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 11
Sääntöpohjaisen agentin toteuttamiseen on monia eri tapoja Toteuttamistapa riippuu lähes täysin ympäristöstä jossa agentin on tarkoitus toimia Sääntökanta Miten säännöt esitetään? Propositiologiikka Predikaattilogiikka Sumea logiikka Todennäköisyyksiin perustuvat säännöt Millaisia sääntöjä agentti tarvitsee toimiakseen maailmassa? Sääntöjen tuottaminen vaatii usein varsin paljon tietämystä maailmasta jossa agentti toimii (esim. jääkiekkomaalivahtiagentin sääntöjen teko vaatii tietoa jääkiekkomaalivahdin toiminnasta) 12
Työmuisti Mitä faktoja agentin tulee maailmasta tietää ja mitä säilyttää? Tarpeettoman tiedon käsittelyä tulisi välttää Huolehdittava, ettei muistissa ole keskenään ristiriitaisia faktoja Tulkki Miten havainnot tulkitaan? Tulkin tulee luokitella kaikki maailman tilat johonkin luokkaan kuuluvaksi (saattaa olla ongelmallista rajatapauksissa) Miten toimintoihin päädytään? Eteenpäin ketjutus Taaksepäin ketjutus 13
Eteenpäin ketjutuksen toiminta Perustuu tunnistus-toiminto sykliin (recognise-act cycle) Toimintojen seurauksena muistin faktat muuttuvat suoraan tai epäsuorasti (yksinkertaisimmillaan lisätään tai poistetaan fakta) Sykliä toistetaan kunnes mitään toimintoja ei pystytä toteuttamaan tai ollaan saavutettu jokin maalitila Tunnistus-toiminto sykli 1. Tulkki listaa muistissa olevien faktojen perusteella ne toiminnot joiden esiehdot toteutuvat 2. Valitaan toiminnoista yksi toteutettavaksi 3. Muutetaan muistissa olevia faktoja toiminnon edellyttämällä tavalla 14
Taakepäin ketjutuksen toiminta Perustuu hypoteesi-testi sykliin (hypothesize-test cycle) Tehdään hypoteesi toiminnosta jonka toteutumista halutaan testata ja katsotaan saadaanko toiminnon esiehdot täytettyä muistissa olevien faktojen ja muiden toimintojen avulla Taakespäin ketjuttamisessa muistiin ei päivitetä faktoja, vaan tieto siitä, mitä toimintoja täytyy suorittaa jotta kaikki alkuperäisen toiminnon esiehdot tulee toteutettua mm. Prolog toimii tähän tapaan 15
Hypoteesi-testi sykli Valitaan jokin toiminto jonka toteutuminen halutaan tarkistaa 1. Tarkastellaan mitä esiehtoja toiminnolla on 2. Tarkastetaan toteutuvatko toiminnon esiehdot muistissa olevien faktojen perusteella 3. Mikäli faktat eivät riitä toiminnon esiehtojen kattamiseen, listataan ne toiminnot joiden seurauksena yksittäinen esiehto toteutuu (kaikille toteutumatomille esiehdoille) 4. Valitaan yksi toiminto ja toistetaan sykli tämän toiminnon esiehdoille 16
Mitä yhteistä ja mitä eroa näillä tekniikoilla on? Molemmissa tekniikoissa on mahdollista joutua valitsemaan yksittäinen toiminto monen vaihtoehdon joukosta Valinnan tekemiselle on monta eri vaihtoehtoa Valitaan ensimmäinen sopiva toiminto (ei tarvitse säilyttää mitään listaa mahdollisista toiminnoista -> sääntöjen järjestyksellä on suuri merkitys) Valitaan paras toiminto (vaikeaa määritellä mikä on paras) Valitaan kattavin toiminto (Eteenpäin ketjutuksessa sellainen jolla on eniten toteutuneita esiehtoja, taaksepäin ketjutuksessa sellainen jonka seurauksena saadaa täytettyä eniten hypoteesitoiminnon esiehtoja) Valitaan sellainen toiminto jota ei olla aikaisemmin käytetty (tarvitaan historia muisti, mutta toiminnasta saatta tulla monipuolisempaa) Satunnainen valinta (osoittautunut varsin hyväksi tekniikaksi) 17
Molemmissa tekniikoissa on hyvät ja huonot puolensa Taaksepäin ketjuttaminen toimii mainiosti mikäli toiminnon valitseva hypoteesi on hyvä, mutta hypoteesin valitessa huono toiminto, saattaa ratkaisun hakemisessa mennä todella kauan Eteenpäinketjutus toimii usein hyvin mikäli sääntöjä ja havaintoja on paljon, mutta se voi johtaa epäolennaisten toimintojen toteuttamiseen kehitettyjen faktojen perusteella Yksinään sääntöjärjestelmä ei ole kovinkaan älykäs tapa hoitaa asioita Sopii yksinkertaisiin systeemeihin Yhdistettynä muihin tekniikoihin saattaa tuottaa todella hyviä lopputuloksia 18
Sääntöjärjestelmien hyviä puolia Yksinkertainen Melko luonnollinen tapa mallintaa toiminnallisuutta Eteenpäin ketjutuksella helppo totetuttaa 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 Valmiita tehokkaita ratkaisuja on olemassa 19
Huonoja puolia Yksinkertainen Vasteet ennalta arvattavia (ei yllättävää käytöstä) Suoritus aika Suurien sääntömäärien läpikäyminen hidasta Lokaalisuus Sääntöjärjestelmät eivät sovellu hyvin toimintosarjojen toteuttamiseen 20
Äärelliset tilakoneet (Finite State Machine - FSM) 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ä kotekstissa 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 21
Tilakoneet voivat olla deterministisiä tai epädeterministisiä Epädeterministiset tilakoneet ovat kuitenkin toiminnaltaan deterministisiä (tietokoneen ollessa deterministinen tilakone) Formaalisti tilakone voidaan määritellä viisikkona FSM = {Σ,Q,Z, δ,λ} c Σ = syöteaakkosto {a,b,c} Q = tilojen joukko {S1,S2,S3} S1 a S3 Z = tulosteaakkosto δ = tilasiirtymäfunktio QxΣ Q b a λ = tulostefunktio S2 22
Tulostefunktion määritelmä riippuu siitä, mihin tilakoneen tulosteet halutaan sitoa Tilasiirtymään sidottuna λ: QxΣ Z (Mealyn tilakoneet - vasemmalla) Tiloihin sidottuna λ: Q Z (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 S2/w 23
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 24
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 δ: QxΣxM Q (M on muistin tilojen joukko) Tilasiirtymään voi myös liittyä jokin funktio (esim. muistin tilan muuttaminen) δ: QxΣ QxM tai δ: QxΣxM QxM 25
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ä deteministinen) b S3 S1 a S2 a a b S4 26
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ään liittyvä todennäköisyys δ(s t, a) = {(S 1,P 1 ), (S 2,P 2 ),,(S n,p n )} P i = f(s t-1, S t, S i, X t-1, a) Tilasiirtymäfunktio δ määrittelee siirtymätodennäköisyydet kaikille tiloille (osa todennäköisyyksistä voi olla nollia) 27
Todennäköisyys voi riippua paitsi lähtötilasta, tapahtumasta ja kohdetilsta, myös edellisestä tilasta sekä edellisestä tulosteesta 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 28
Tilakoneen tilasiirtymät voi toteuttaa monella eri tavalla 2D taulukko (eli matriisi) joka sisältää tiedon siitä, mitä mahdollisia tilasiirtymiä kustakin tilasta on Taululukon alkioihin pääsee käsiksi suoraan indeksoimalla (nopeaa pienillä taulukoilla) Tilakoneet usein melko harvoja eli S1 S2 S3 b a a c taulukossa paljon tyhjiä alkioita (kuluttaa muistia) Suunnattuna graafina (tuttu tietorakenteiden kurssilta) Joustava esitystapa Ei sisällä turhaa tietoa Tiloihin ja tilasiirtymiin liittyvä tieto voidaan tallentaa helposti 29
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 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) 30
Käytännössä maailman tilassa saattaa tapahtua monia muutoksia kerralla Funktioden 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 (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 31
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 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 32
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 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 33
Tilakoneiden hyviä puolia Tilakoneilla on varsin vahva ja hyvin ymmärretty teoreettinen tausta Tilakoneet on helppo esittää ymmärrettävässä muodossa 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 34
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 35
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 36
Tila-avaruus sisältää kaikki sääntöjen puitteissa mahdolliset tilat joita lähtötilanteesta voi seurata 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 37
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 38
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 39
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 40
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 41
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 Tietokonepelien tekoäly eroaa tavoitteiltaan varsin paljon teknillistieteellisestä tekoälystä 42
Teknillistieteellisen tekoälyn ominaispiirteitä Pyrkii usein ratkomaan tai optimoimaan todellisen maailman ongelmia mahdollisimman tehokkaasti Tekoälyn avulla pyritään ratkaisemaan jokin tehtävä jonka lopputulosta ei usein tunneta tai saamaan jostain yleisestä ongelmasta yksiselitteinen ratkaisu (karkea yleistys) Toimintaympäristö on heikosti hallittavissa ja usein joudutaan toimimaan epätarkan tiedon varassa Kaikkea toimintaympäristöön liittyvää tietoa ei pystytä käsittelemää (joko se ei ole havainnoitavissa tai tietoa on liikaa käsiteltäväksi) 43
Tietokonepelien tekoälyn ominaispiirteitä Tekoälyn keinoin pyritään luomaan todenmukainen illuusio jostain todellisen maailman osasta Lopputuloksen tulee olla oikeanlaatuinen, ei välttämättä optimaalinen tai tehokas (esim. kyky tehdä inhimillisiä virheitä vaikuttaa erittäin positiivisesti pelikokemukseen) Toivottu lopputulos on usein, yksittäisessä tilanteessa, ennalta tunnettu 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ää) 44
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 45
Tekoäly 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ä 46
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 47
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ä Tila-avaruushakuun pohjautuvia järjestelmiä (oppivat järjestelmät tulossa) 48
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 Esim. Red Alertissa vastustava pelaaja Tila-avaruushakuun pohjautuvia järjestelmiä (oppivat järjestelmät tulossa) Eroaa tukihahmoista mm. siinä, että agentti joutuu tarkkailemaan suunnitelmien onnistumista 49
Muita mahdollisia tekoälyn käyttökohteita 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ö tai haluton) 50
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. 51