Tekoäly tietokonepeleissä

Koko: px
Aloita esitys sivulta:

Download "Tekoäly tietokonepeleissä"

Transkriptio

1 Tekoäly tietokonepeleissä

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 Ää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

21 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

22 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

23 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

24 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

25 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

26 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

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

28 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

29 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

30 (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

31 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

32 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

33 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

34 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

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

36 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

37 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 38

39 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

40 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

41 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 tilaa 41

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 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

69 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

70 Lähteitä [Dalmau, 2004] Daniel Sánches-Crespos Dalmau, Core Techniques and Algorithms in Game Programming. New Riders Publishing [Russel and Norvig, 2003] Stuart Russell and Peter Norvig, Artificial Intelligence, A Modern Approach. Pearson Education inc [Soininen, 2004] Teppo Soininen, AI in computer games, unpublished [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 AAAI Press / The MIT Press, [Evans] Richard Evans, From Black and White to Infinity and Beyond. 70

71 [Brownlee] Jason Brownlee: A Practical Analysis of FSM within the domain of first-person shooter (FPS) computer game, [Kunzle] Philippe Kunzle: Vehicle Control with Neural Networks, [Gameai] [NERO] Neuro Evolving Robotic Operatives 71

Tekoäly ja dynamiikka tietokonepeleissä

Tekoäly ja dynamiikka tietokonepeleissä 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

Lisätiedot

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

Luku 9: Tekoäly. Tekoäly peleissä Agentit Tekniikoita Toimintapelit Taktiset pelit Tekoäly peleissä Agentit Tekniikoita Toimintapelit Taktiset pelit Tekoäly Mitä on tekoäly? laskennallinen rationaalisuus nyt älykäs ei välttämättä ole sitä myöhemmin ajattelu vai toiminta ihmismäisyys

Lisätiedot

Nollasummapelit ja bayesilaiset pelit

Nollasummapelit ja bayesilaiset pelit Nollasummapelit ja bayesilaiset pelit Kristian Ovaska HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaari: Peliteoria Helsinki 18. syyskuuta 2006 Sisältö 1 Johdanto 1 2 Nollasummapelit 1 2.1

Lisätiedot

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki OHJ-2710 Peliohjelmointi Syksy 2012 Timo Kellomäki timo.kellomaki@tut.fi Käytännön juttuja Kurssihenkilökunta koostuu Timo Kellomäestä Luennot torstaisin salissa TB223 klo 12-14 2. viikko harkkatyöinfo,

Lisätiedot

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(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs ja jos voi, niin tulisiko sellainen rakentaa? 2012-2013

Lisätiedot

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

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2013-2014 Lasse Lensu 2 Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2013-2014 Lasse Lensu 3 Ongelma 3: Miten hankalia ongelmia

Lisätiedot

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

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

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

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2012-2013 Lasse Lensu 2 Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2012-2013 Lasse Lensu 3 Ongelma 3: Miten hankalia ongelmia

Lisätiedot

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

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly Bayesin pelit Kalle Siukola MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 12.10.2016 Toistetun pelin esittäminen automaatin avulla Ekstensiivisen muodon puu on tehoton esitystapa, jos peliä

Lisätiedot

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

Tilastotiede ottaa aivoon

Tilastotiede ottaa aivoon Tilastotiede ottaa aivoon kuinka aivoja voidaan mallintaa todennäköisyyslaskennalla, ja mitä yllättävää hyötyä siitä voi olla Aapo Hyvärinen Laskennallisen data-analyysin professori Matematiikan ja tilastotieteen

Lisätiedot

Turingin koneen laajennuksia

Turingin koneen laajennuksia Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k

Lisätiedot

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

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

Lisätiedot

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

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

Kieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat Luento 2. Kieli merkitys ja logiikka 2: Helpot ja monimutkaiset Helpot ja monimutkaiset ongelmat Tehtävä: etsi säkillinen rahaa talosta, jossa on monta huonetta. Ratkaisu: täydellinen haku käy huoneet

Lisätiedot

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

Yhteistyötä sisältämätön peliteoria Yhteistyötä sisältämätön peliteoria jarkko.murtoaro@hut.fi Optimointiopin seminaari Kevät 2003 / 1 Sisältö Johdanto Käsitteistö Työkalut Nashin tasapaino Täydellinen tasapaino Optimointiopin seminaari

Lisätiedot

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

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Jari Hast xx.12.2013 Ohjaaja: Harri Ehtamo Valvoja: Hari Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Evolutiivisesti stabiilin strategian oppiminen

Evolutiivisesti stabiilin strategian oppiminen Evolutiivisesti stabiilin strategian oppiminen Janne Laitonen 8.10.2008 Maynard Smith: s. 54-60 Johdanto Käytös voi usein olla opittua perityn sijasta Tyypillistä käytöksen muuttuminen ja riippuvuus aikaisemmista

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Peliteoria Strategiapelit ja Nashin tasapaino. Sebastian Siikavirta sebastian.siikavirta@helsinki.fi

Peliteoria Strategiapelit ja Nashin tasapaino. Sebastian Siikavirta sebastian.siikavirta@helsinki.fi Peliteoria Strategiapelit ja Nashin tasapaino Sebastian Siikavirta sebastian.siikavirta@helsinki.fi Helsinki 11.09.2006 Peliteoria Tomi Pasanen HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö

Lisätiedot

Tilastotiede ottaa aivoon

Tilastotiede ottaa aivoon Tilastotiede ottaa aivoon kuinka aivoja voidaan mallintaa todennäköisyyslaskennalla, ja mitä yllättävää hyötyä siitä voi olla Aapo Hyvärinen Laskennallisen data-analyysin professori Matematiikan ja tilastotieteen

Lisätiedot

Pohdiskeleva ajattelu ja tasapainotarkennukset

Pohdiskeleva ajattelu ja tasapainotarkennukset Pohdiskeleva ajattelu ja tasapainotarkennukset Sanna Hanhikoski 24.3.2010 Sisältö Pohdiskeleva ajattelu Nashin tasapainotarkennukset Täydellinen tasapaino Täydellinen bayesiläinen tasapaino Vaiheittainen

Lisätiedot

SEKASTRATEGIAT PELITEORIASSA

SEKASTRATEGIAT PELITEORIASSA SEKASTRATEGIAT PELITEORIASSA Matti Estola 8. joulukuuta 2013 Sisältö 1 Johdanto 2 2 Ratkaistaan sukupuolten välinen taistelu sekastrategioiden avulla 5 Teksti on suomennettu kirjasta: Gibbons: A Primer

Lisätiedot

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 4 OP PERIODI 1: 6.9.2012-12.10.2012 (6 VIIKKOA) LUENNOT (B123, LINUS TORVALDS -AUDITORIO): TO 10-12, PE 12-14 LASKUHARJOITUKSET

Lisätiedot

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 12 To Timo Männikkö Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

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

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU ACTIVATOR 1 ACTIVATOR 2 PELIPUU ACTIVATOR 1 ACTIVATOR 2 -1 0 1 PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in

Lisätiedot

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.

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. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

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

OMINAISUUS- JA SUHDETEHTÄVIEN KERTAUS. Tavoiteltava toiminta: Kognitiivinen taso: Ominaisuudet ja suhteet -kertaus Harjoite 12: Tavoiteltava toiminta: Materiaalit: OMINAISUUS- JA SUHDETEHTÄVIEN KERTAUS Kognitiivinen taso: Ominaisuudet ja suhteet -kertaus Toiminnan tavoite ja kuvaus: Oppilaat ratkaisevat paperi- ja

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

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

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

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

Matinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla). Shakkinappuloiden voimasuhteet Matinteko (1 / 10) Kuningas on pelin tärkein nappula, ilman kuningasta peli on hävitty. 1. Kuningas + Daami + Torni vs Kuningas Matinteko (2 / 10) Helpointa matin tekeminen

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys

Lisätiedot

Esimerkki: Tietoliikennekytkin

Esimerkki: Tietoliikennekytkin Esimerkki: Tietoliikennekytkin Tämä Mathematica - notebook sisältää luennolla 2A (2..26) käsitellyn esimerkin laskut. Esimerkin kuvailu Tarkastellaan yksinkertaista mallia tietoliikennekytkimelle. Kytkimeen

Lisätiedot

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon etsiminen syotteesta (johdatteleva esimerkki) Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Kontrollilaitteet. Arsenaali

Kontrollilaitteet. Arsenaali Arsenaali Kontrollilaitteet Tietokonepeleissä käytettäviä kontrollilaitteita on valtava määrä Kaikilla alustoilla, joilla pelejä pelataan on jokin vakio kontrolleri PC: Hiiri ja näppäimistö Konsolit: Controller

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

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

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta Tuloperiaate Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta ja 1. vaiheessa valinta voidaan tehdä n 1 tavalla,. vaiheessa valinta voidaan tehdä n tavalla,

Lisätiedot

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

A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä. 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä. HUUTOKAUPOISTA A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä. 2. Huutokauppapelejä voidaan käyttää taloustieteen

Lisätiedot

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit GA & robot path planning Janne Haapsaari AUTO3070 - Geneettiset algoritmit GA robotiikassa Sovelluksia liikkeen optimoinnissa: * eri vapausasteisten robottien liikeratojen optimointi * autonomisten robottien

Lisätiedot

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

perustelu Noudatetaan sääntöjä. Opetuskortit (tehtävät 16 28), palikoita, supermarketin pohjapiirustus, nuppineuloja, tangram-palat Harjoitus 12: INDUKTIIVISEN PÄÄTTELYN KERTAUS Tavoiteltava toiminta: Kognitiivinen taso: Ominaisuuksien ja suhteiden kertaus Toiminnan tavoite ja kuvaus: Oppilaat ratkaisevat paperi- ja palikkatehtäviä

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 5 OP PERIODI 3: 18.1.2016-6.3.2016 (7 VIIKKOA+KOE) LUENNOT (CK112): MA 14-16, TI 14-16 LASKUHARJOITUKSET: RYHMÄ

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e

Lisätiedot

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

Pelin tekoäly. Aleksi Vuorela IIO14S1. Tietorakenteet ja algoritmit harjoitustyö Joulukuu 2015 Pelin tekoäly Aleksi Vuorela IIO14S1 Tietorakenteet ja algoritmit harjoitustyö Joulukuu 2015 Ohjelmistotekniikan koulutusohjelma Tekniikan ja liikenteen ala 1 1 Johdanto Harjoitustyön aiheena oli tutustua

Lisätiedot

Geneettiset algoritmit

Geneettiset algoritmit Geneettiset algoritmit Evoluution piirteitä laskennassa Optimoinnin perusteet - Kevät 2002 / 1 Sisältö Geneettisten algoritmien sovelluskenttä Peruskäsitteitä Esimerkkejä funktion ääriarvon etsintä vangin

Lisätiedot

2.4. Oppimistyyleistä

2.4. Oppimistyyleistä 2.4. Oppimistyyleistä 1. Käytännölliset Näin ajattelevilla todellisuus koostuu siitä, mitä he aistivat näkemällä, koskettamalla, kuulemalla, haistamalla ja maistamalla. He huomaavat ja pystyvät palauttamaan

Lisätiedot

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

Onnistut yrittämässäsi, mutta jokin täysin epäolennainen. vikaan. KYLLÄ, JA Onnistut yrittämässäsi ja saavutat enemmän kuin odotit, enemmän kuin kukaan osasi odottaa. KYLLÄ, MUTTA Onnistut yrittämässäsi, mutta jokin täysin epäolennainen asia menee vikaan. EI, MUTTA Et

Lisätiedot

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

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy. AS-84.161 Automaation signaalinkäsittelymenetelmät Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy. Tämän jälkeen täytyy: 1. Lisätä uusi sisääntulo edit->add input 2. nimetä

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU PELIPUU -1 0 1 PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu))

Lisätiedot

Johdanto peliteoriaan Kirja kpl. 2

Johdanto peliteoriaan Kirja kpl. 2 Aalto-yliopiston TKK Mat-2.4142 K2010 Esitelmä 1 Ilkka Leppänen 1 Johdanto peliteoriaan Kirja kpl. 2 Ilkka Leppänen 20.1.2010 Aalto-yliopiston TKK Mat-2.4142 K2010 Esitelmä 1 Ilkka Leppänen 2 Aiheet Laajennettu

Lisätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit

Lisätiedot

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/

Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/ Koodaamme uutta todellisuutta FM Maarit Savolainen 19.1.2017 https://blog.edu.turku.fi/matikkaajakoodausta/ Mitä on koodaaminen? Koodaus on puhetta tietokoneille. Koodaus on käskyjen antamista tietokoneelle.

Lisätiedot

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

Seniorit ja tietokonepelit. Tietokonepelien pelaamisesta senioreiden näkökulmasta. Seniorien pelitapahtuma 16.11.2015 Enter ry Seniorit ja tietokonepelit Tietokonepelien pelaamisesta senioreiden näkökulmasta Seniorien pelitapahtuma 16.11.2015 Enter ry 1 Seniorit ovat erilaisia Kiinnostus tietokonepelien pelaamiseen vaihtelee tietokonepelien

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää pysähtymisaiheisia ongelmia Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti

Lisätiedot

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

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko 9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

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

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU -1 0 1 PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu))!

Lisätiedot

Agentit ja semanttinen web. Pekka Halonen

Agentit ja semanttinen web. Pekka Halonen Agentit ja semanttinen web Pekka Halonen Henkilökohtainen agentti Aika lääkäriin Agentti toteaa, että käyttäjä tarvitsee lääkäriä Pyytää lääkäriaikoja hoitavan agentin kautta pääsyä ko. vaivaa hoitavalle

Lisätiedot

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

Systemointiosamäärä. Nimi: ******************************************************************************** Systemointiosamäärä SQ Nimi: ******************************************************************************** Lue jokainen väite huolellisesti ja arvioi, miten voimakkaasti olet tai eri sen kanssa. 1.

Lisätiedot

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

Informaation arvo. Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät 259 Informaation arvo Öljykenttään myydään porausoikeuksia, palstoja on n kappaletta, mutta vain yhdessä niistä on C euron edestä öljyä Yhden palstan hinta on C/n euroa Seismologi tarjoaa yritykselle tutkimustietoa

Lisätiedot

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

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 5 OP PERIODI 3: 16.1.2017-3.3.2016 (7 VIIKKOA+KOE) LUENNOT (CK112): MA 14-16, TI 14-16 LASKUHARJOITUKSET: RYHMÄ

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

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

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi Tiivistelmä CHERMUG-projekti on kansainvälinen konsortio, jossa on kumppaneita usealta eri alalta. Yksi tärkeimmistä asioista on luoda yhteinen lähtökohta, jotta voimme kommunikoida ja auttaa projektin

Lisätiedot

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

Yhteistyötä sisältämätön peliteoria jatkuu Yhteistyötä sisältämätön peliteoria jatkuu Tommi Lehtonen Optimointiopin seminaari - Syksy 2000 / 1 Bayesilainen tasapaino Täysi informaatio Vajaa informaatio Staattinen Nash Bayes Dynaaminen Täydellinen

Lisätiedot

Laskut käyvät hermoille

Laskut käyvät hermoille Laskut käyvät hermoille - Miten ja miksi aivoissa lasketaan todennäköisyyksiä Aapo Hyvärinen Matematiikan ja tilastotieteen laitos & Tietojenkäsittelytieteen laitos Helsingin Yliopisto Tieteen päivät 13.1.2011

Lisätiedot

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

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen: Tasohyppelypeli 1 Pelissä ohjaat liikkuvaa ja hyppivää hahmoa vaihtelevanmuotoisessa maastossa tavoitteenasi päästä maaliin. Mallipelinä Yhden levelin tasohyppely, tekijänä Antonbury Piirrä grafiikat Pelaajan

Lisätiedot

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 3. luento 17.11.2017 Neuroverkon opettaminen (ohjattu oppiminen) Neuroverkkoa opetetaan syöte-tavoite-pareilla

Lisätiedot

Laskennallinen älykkyys. Computational Intelligence

Laskennallinen älykkyys. Computational Intelligence Laskennallinen älykkyys Computational Intelligence MITEN PIDÄN TEIDÄT HEREILLÄ? SAMK ja laskennallisen älykkyyden tutkimus Lyhyesti muutamasta ongelmasta Miten jääkiekon SM liigan sarjaohjelma laaditaan?

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.

Lisätiedot

Peliohjelmointi: Kontrollilaitteet. Teppo Soininen

Peliohjelmointi: Kontrollilaitteet. Teppo Soininen Peliohjelmointi: Kontrollilaitteet Teppo Soininen Lähteet: Core Techniques and Algorithms in Game Programming, MSDN, www.xbox.com, www.playstation.com Arsenaali Tietokonepeleissä käytettäviä kontrollilaitteita

Lisätiedot

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

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

FI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan: LOGIIKKA 1 Mitä logiikka on? päättelyn tiede o oppi muodollisesti pätevästä päättelystä 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan: sisältö, merkitys: onko jokin premissi

Lisätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS NEUROVERKOT TURINGIN KONE (TAI TAVALLINEN OHJELMOINTI) VAIN YKSI LASKENNAN MALLI ELÄINTEN HERMOSTOSSA LASKENTA ERILAISTA: - RINNAKKAISUUS - STOKASTISUUS (SATUNNAISUUS) - MASSIIVINEN

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot