Tekoäly tietokonepeleissä
|
|
- Timo Siitonen
- 8 vuotta sitten
- Katselukertoja:
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ä 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ätiedotLuku 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ätiedotNollasummapelit 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ätiedotOHJ-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ätiedotOngelma(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ätiedotOngelma 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ätiedotEpä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ätiedotTietotekniikan 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ätiedotOngelma 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ätiedotBayesin 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ätiedotSe 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ätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotAutomaatit. 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ätiedotNeuroverkkojen 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ätiedotTilastotiede 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ätiedotTuringin 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ätiedotKonsensusongelma 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ätiedotOngelma(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ätiedotAlgoritmit 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ätiedotKieli 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ätiedotYhteistyö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ätiedotImplementation 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ätiedotEvolutiivisesti 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ätiedotEsimerkkejä vaativuusluokista
Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään
LisätiedotDatatä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ätiedotPeliteoria 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ätiedotTilastotiede 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ätiedotPohdiskeleva 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ätiedotSEKASTRATEGIAT 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ätiedotV. 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ätiedotJOHDATUS 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ätiedotAlgoritmit 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ätiedotA 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ätiedotM =(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ätiedotJOHDATUS 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ätiedot1 + 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ätiedotOMINAISUUS- 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ätiedotAlgoritmit 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ätiedot1. (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ätiedotMatinteko (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ätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotEsimerkki: 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ätiedotHahmon 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ätiedotTEEMU 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ätiedotLuku 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ätiedotKontrollilaitteet. 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ätiedotTIEA241 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ätiedotTuloperiaate. 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ätiedotA. 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ätiedotGA & 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ätiedotperustelu 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ätiedotJOHDATUS 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ätiedotTIEA241 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ätiedotPelin 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ätiedotGeneettiset 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ätiedot2.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ätiedotOnnistut 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ätiedotAS 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ätiedotJOHDATUS 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ätiedotJohdanto 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ätiedotAlgoritmit 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ätiedotKoodaamme 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ätiedotSeniorit 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ätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotLisää 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ätiedot9.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ätiedotAlgoritmit 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ätiedotT 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ätiedotJOHDATUS 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ätiedotAgentit 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ätiedotSystemointiosamäärä. Nimi: ********************************************************************************
Systemointiosamäärä SQ Nimi: ******************************************************************************** Lue jokainen väite huolellisesti ja arvioi, miten voimakkaasti olet tai eri sen kanssa. 1.
LisätiedotInformaation 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ätiedotSatunnaisalgoritmit. 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ätiedotJOHDATUS 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ätiedotAlgoritmit 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ätiedotTietorakenteet 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ätiedotUML -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ätiedot7.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ätiedotCHERMUG-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ätiedotYhteistyö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ätiedotLaskut 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ätiedotTasohyppelypeli. 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ätiedotAVL-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ätiedotEsimerkkejä 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ätiedotJohdatus 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ätiedotLaskennallinen ä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ätiedotICS-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ätiedotPeliohjelmointi: 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ätiedotGraafit 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ätiedot811120P 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ätiedotThe 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ätiedotFI3 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ätiedotKombinatorinen 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ätiedot811312A 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ätiedotJOHDATUS 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ätiedotMatematiikan 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ätiedot811120P 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