Tekoäly ja dynamiikka tietokonepeleissä



Samankaltaiset tiedostot
Tekoäly tietokonepeleissä

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

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkki 1: Kahviautomaatti.

Peliteoria luento 2. May 26, Peliteoria luento 2

Neljän alkion kunta, solitaire-peli ja

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

Peliohjelmointi: Kontrollilaitteet. Teppo Soininen

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

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

Nollasummapelit ja bayesilaiset pelit

5. Rajoitelaskenta (Constraint Satisfaction)

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

Verkon värittämistä hajautetuilla algoritmeilla

etunimi, sukunimi ja opiskelijanumero ja näillä

Algoritmit 1. Luento 1 Ti Timo Männikkö

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kontrollilaitteet. Arsenaali

Harjoitus 6: Simulink - Säätöteoria. Syksy Mat Sovelletun matematiikan tietokonetyöt 1

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

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


JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tietotekniikan valintakoe

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

} {{ } kertaa jotain

Muodolliset kieliopit

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. joulukuuta 2015

Diskreetit rakenteet

JOHDATUS TEKOÄLYYN TEEMU ROOS

Simulation model to compare opportunistic maintenance policies

EDUTOOL 2010 graduseminaari

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

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

Probabilistiset mallit (osa 1) Matemaattisen mallinnuksen kurssi Kevät 2002, luento 10, osa 1 Jorma Merikoski Tampereen yliopisto

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Automaatit. Muodolliset kielet

Peliteoria luento 1. May 25, Peliteoria luento 1

Epätäydellisen tiedon jatkuvat pelit

Algoritmit 2. Luento 11 Ti Timo Männikkö

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

5.1 Semanttisten puiden muodostaminen

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

FYSP105/2 VAIHTOVIRTAKOMPONENTIT. 1 Johdanto

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

Kodu Ohjeet. Jos päivityksiä ei löydy niin ohjelma alkaa latautumaan normaalisti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

10. Painotetut graafit

Tarvitseeko informaatioteknologia matematiikkaa?

Algoritmit 2. Luento 2 Ke Timo Männikkö

Vastausehdotukset analyysin sivuainekurssin syksyn välikokeeseen

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

Algoritmit 2. Luento 7 Ti Timo Männikkö

Epätäydellisen tiedon jatkuvat pelit. Mika Viljanen Peliteorian seminaari

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

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

Dynaaminen analyysi II

Algoritmit 1. Luento 13 Ti Timo Männikkö

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

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Eero Hyvönen Helsingin yliopisto

13 Lyhimmät painotetut polut

Mikrotaloustiede Prof. Marko Terviö Aalto-yliopisto BIZ 31C00100 Assist. Jan Jääskeläinen Syksy 2017

Vektorien virittämä aliavaruus

Algoritmit 2. Luento 13 Ti Timo Männikkö

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

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

Paavo Kyyrönen & Janne Raassina

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Algoritmit 2. Luento 3 Ti Timo Männikkö

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Kieli merkitys ja logiikka. 4: Luovuus, assosiationismi. Luovuus ja assosiationismi. Kielen luovuus. Descartes ja dualismi

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

Turingin koneen laajennuksia

LASKENNALLISEN TIETEEN OHJELMATYÖ: Diffuusion Monte Carlo -simulointi yksiulotteisessa systeemissä

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä:

Harjoitus 6 ( )

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C =

Esimerkki: Tietoliikennekytkin

Transkriptio:

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