Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Luku 9: Tekoäly
Tekoäly peleissäAgentit
TekniikoitaToimintapelitTaktiset pelit
Luku 9: Tekoäly
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 vai rationaalisuus
● Poikkitieteellinen ala: filosofia, matematiikka, psykologia, tietotekniikka, lääketiede, robotiikka, kielitiede
● Paljon matemaattisia menetelmiä
Luku 9: Tekoäly
Agentti
● Tekoälyllä varustettu olio usein ympäristöstään irrallinen toimija, jota kutsutaan agentiksi
● Agentin osat: sensorit, aktuaattorit, muisti, tiedonkäsittely
● Agentti toimii jossakin rajatussa ympäristössä● Maailman luokittelua: havainnoitavuus,
deterministisyys, episodisuus, dynaamisuus, diskreettisyys, agenttien määrä
Luku 9: Tekoäly
Tekoäly peleissä
● Peleissä tekoälyn tavoitteina mm. luoda pelaajalle haastetta, elävöittää ja monipuolistaa maailmaa
● Vaatimukset hyvin erilaisia eri peleissä● Tarvitaanko verkkopeleissä tekoälyä?
– kaikki haluavat olla sankareita, joten MMO-peleissäkin tarvitaan ”taviksia”
Luku 9: Tekoäly
Pelit vs. teknillistieteellinen
● Tekniikassa tekoälyllä pyritään ratkaisemaan ongelmia, peleissä luomaan illuusio järjestä
● Monissa peleissä tekoälyn on tarpeen tehdä tahallaan virheitä
● Peleissä maailma on hallittavissa ja ”omalla puolella”: voidaan tarvittaessa huijata
● Peleissä usein kovemmat reaaliaikavaatimukset
Luku 9: Tekoäly
Tekoäly peleissä
● Tekoälytutkimusta on tehty pitkään, mutta vain pieni osa siitä on hyötykäytössä peleissä
● Monet menetelmät vaativat paljon prosessoritehoa, mutta sitä ei usein haluta käyttää tekoälyyn
● Peliagentilta toivotaan luotettavuutta: aina vähintään kohtuullisia päätöksiä
● Oppivia järjestelmiä näkee silloin tällöin peleissä, mutta ennustettavuus on ongelma
Luku 9: Tekoäly
Agentteja peleissä
● Ilmeisimmät tekoälyagentit peleissä sivuhahmot: vastustajat, apulaiset jne.
● Myös muita: kameran ohjaus, tutoriaalit, fysiikkaengine, avatarin automatiikka, ”ohjaaja”
● Agentti: olio, joka tekee havaintoja pelimaailmasta ja suorittaa itsenäisesti niistä riippuvia toimintoja
● Tekoälyä eri tasolla: strategian suunnittelusta yksittäisten esineiden toimintaan
Luku 9: Tekoäly
Agentteja peleissä
● Laird ja Lent luokittelevat pelitekoälyjä:– taktiset vastustajat (esim. FPS-botit, autopelit)
– ystävät (roolipelit, urheilupelin joukkuekaverit)
– tukihahmot (opastavat pelaajaa, neuvonantajat)
– strategiset vastustajat (suunnittelee, strategiapelit)
● Muita: simulaatiohahmot, selostajat, dynamiikka (juoni, fysiikka, sää, ...), pelaajan sijainen
● Toteutustekniikoita useita● Tekniikoita voi yhdistellä ja luoda hierarkioita
Luku 9: Tekoäly
Tekniikoita
● Peleissä käytettyjä perustekniikoita:– Tilakoneet
– Päätöspuut
– Logiikka, sumea logiikka, sääntöjärjestelmät
– Tila-avaruushaku, polunetsintä
– Neuroverkot
– Geneettiset algoritmit
– Parveilualgoritmit
– Influence map
Luku 9: Tekoäly
Tilakoneet
● Äärelliset tilakoneet (finite state machine, FSM) on ehkä eniten peleissä käytetty tekniikka
● Toiminta intuitiivista, joten myös pelisuunnittelijoiden käytössä
● Äärellinen määrä tiloja ja siirtymiä niiden välillä● Tavoitteet määräytyvät sen mukaan, missä
tilassa ollaan● Havainnot maailmasta aiheuttavat tilasiirtymiä
Luku 9: Tekoäly
Epädeterminismi
● Epädeterministisessä tilakoneessa sama syöte voi aiheuttaa eri tilasiirtymän
– Ilman tätä toiminta on aina samanlaista
– Käytännössä esim. tilasiirtymien todennäköisyydet
● todennäköisyyksiä voidaan päivittää agentin oppiessa
Luku 9: Tekoäly
Rinnakkaisuus
● Samaakin agenttia voi ohjata useilla rinnakkaisilla tilakoneilla, joista kukin voi olla hyvinkin yksinkertainen
● Toimii parhaiten, jos tilakoneet ovat toisistaan riippumattomat
● Tilakoneita voi synkronisoida esim. jaetulla muistilla tai yhteisillä tilasiirtymillä
● Synkronisoiduilla tilakoneilla voi toteuttaa myös pienen tiimitekoälyn
Luku 9: Tekoäly
Etuja ja haittoja
● Tilakoneiden hyviä puolia:– paljon tutkimusta ja teoreettista taustaa
– helppo esittää ymmärrettävästi
– sopivat hyvin alimmalle, taktiselle tasolle
● Huonoja puolia:– paisuvat nopeasti jos niillä yritetään mallintaa liikaa
– sellaisenaan rajoittuneita
– helposti liian ennalta-arvattavia, oppiminen vaikeaa
Luku 9: Tekoäly
Päätöspuut
● Päätöspuut (decision trees) ovat yksinkertainen tapa aikaansaada rationaalista toimintaa
– Koostuvat kysymyksistä (usein binäärisiä), joiden vastaus määrää, mihin lapseen edetään
– Solmussa on haluttu toiminta (tai hierarkisen puun tapauksessa toinen päätöspuu)
– Oikeastaan siis vastaavat kasaa if-lauseita
● Yhdistäminen tilakoneisiin: suoritettava tilasiirtymä valitaan päätöspuun avulla
Luku 9: Tekoäly
Päätöspuut
● Varsinaisesti hyödyllisiä päätöspuista tulee, kun niitä aletaan muodostaa saadun palautteen perusteella lennossa
● Hyvin yksinkertaisesti toteutettava oppiminen– Esim. Black & White ja Quinlanin ID3-algoritmi
● Perustuu informaatioteoriaan: otetaan saadusta palautteesta maksimaalinen hyöty päätöspuun kysymyksillä
● Laajempi versio: behavior trees
Luku 9: Tekoäly
Tila-avaruushaku
● Tila-avaruushaun idea on tutkia toimintojen mahdollisia seurauksia etukäteen ja löytää näin paras tai ainakin kelvollinen toiminto
● Maailma diskretisoidaan; tila-avaruuden tila vastaa maailman yhtä tilaa ja siirtymät niiden välillä mahdollisia toimintoja
● Tila-avaruus luodaan agentin saatavilla olevista tiedoista maailman toiminnasta (säännöistä)
● Syntyy puumainen rakenne, jonka juurena on tämänhetkinen tilanne
Luku 9: Tekoäly
Tila-avaruushaku
● Tila-avaruus sisältää kaikki tilat, joita tästä tilasta voi sääntöjen mukaisesti seurata
● Pyritään valitsemaan toimintojen sarja, jonka seurauksena tila on agentille edullisin
● Useimmissa peleissä tila-avaruus on liian laaja edes rakennettavaksi kokonaan
● Lisäksi yleensä kaikki tekijät eivät ole agentin hallittavissa: viholliset, satunnaisuus
● Jako omiin siirtoihin ja muihin siirtoihin
Luku 9: Tekoäly
Tila-avaruushaku
● Koska tila-avaruutta ei rakenneta pelin loppuun saakka, täytyy lehtisolmujen arvo määritellä– Esim. shakissa voi kannattaa uhrata kuningatar, jos
seuraavalla vuorolla saa matin; mutta jos puu katkeaa tässä välissä, voi uhraus näyttää erittäin huonolta idealta
● Käytännössä tila-avaruuden karsiminen jollakin menetelmällä on pakollista, ja tätä varten solmujen arvon arviointi on keskeistä
● Algoritmeja: A*, min-max, alfa-beta-karsinta
Luku 9: Tekoäly
Tila-avaruushaku
● Tila-avaruushakua käytetään eniten lautapeleissä ja abstrakteissa strategiapeleissä– lautapeleissä usein alfa-beta-karsintaa
– rubikin kuution ratkaisemiseen A*
● Modernien pelien tila-avaruudet olisivat hyvin laajoja ja diskretisointi hankalaa
● Moderneissa peleissä on silti joitakin osa-alueita, joihin tila-avaruushaku sopii– Polunetsintä (A* muunnelmineen)
Luku 9: Tekoäly
Sääntöjärjestelmät
● Sääntöjärjestelmät (Rule-Based Systems) perustuvat loogiseen päättelyyn
● Säännöt ovat muotoa ehto → reaktio● Reaktio ei välttämättä ole toiminto, vaan se voi
olla myös havainto tai päätelmä● Sääntöjärjestelmän osat: säännöt, muisti, tulkki● Käytetään paljon asiantuntijajärjestelmissä● Säännöt voivat olla esim. propositio-,
predikaatti- tai sumeaa logiikkaa
Luku 9: Tekoäly
Sääntöjärjestelmät
● Esimerkki:– näkyy(vihollinen) → pakene()
– nälkä AND hallussa(ruoka) → syö(ruoka), NOT hallussa(ruoka)
– nälkä AND näkyy(ruoka) → poimi(ruoka), hallussa(ruoka)
– nälkä → etsi(ruoka)
– TRUE → nuku()
● Tässä valitaan ensimmäinen, jonka ehto toteutuu (voisi olla myös paras, tarkin, ...)
Luku 9: Tekoäly
Sääntöjärjestelmät
● Hyviä puolia:– yksinkertainen ja luonnollinen
– modulaarinen (sääntöjä helppo lisätä ja poistaa)
– valmiita ratkaisuja olemassa
● Huonoja puolia:– yksinkertaisuudesta johtuen arvattava
– hidas, jos sääntöjä on paljon
– ei sovellu pitkän tähtäimen suunnitteluun
Luku 9: Tekoäly
Suunnittelu
● Loogista päättelyä voi käyttää myös pidemmälle suunnittelevien, tavoitteellisten agenttien toteutukseen
● Paljon tutkittu aihe sekä teknistieteellisellä alalla että peleissä
● Maailma kuvataan formaalisti, esim. logiikalla● Agentilla käytössään sääntöjä, jotka koostuvat
esiehdosta (milloin sääntöä voi käyttää), toiminnosta (mitä tehdään) ja jälkiehdosta (millainen maailma on toiminnon jälkeen)
Luku 9: Tekoäly
Suunnittelu
● Agentti toimii seuraavasti (regression planning):– Valitaan tavoite (voi olla kiinteä)
– Tutkitaan, minkä sääntöjen jälkeen tavoite voisi toteutua
– Niin edelleen etsitään, minkä sääntöjen avulla niiden esiehdot tulevat voimaan
– Jatketaan kunnes löydetään polku nykytilasta tavoitteeseen
● Yo. kuvaus on hyvin abstrakti, käytännössä menetelmiä on erilaisia
Luku 9: Tekoäly
Suunnittelu● Käytännön peleissä ei niin helppoa, koska
sääntöjä ja faktoja on liikaa● Esiehtojen määrä säännöissä voi olla valtava
– Esim. Matti haluaa leipää, jota saa kaupasta● Esiehtoja: Matilla rahaa, kaupassa leipää,
kauppa auki, kauppias elossa, ei zombieinvaasiota matkan varrella...
● Jos itsestäänselvä esiehto unohtuu mainita mallissa, koko suunnitelma voi epäonnistua
● Partial order planner, GOAP
Luku 9: Tekoäly
Neuroverkot
● Neuroverkot jäljittelevät ihmisaivojen toimintaa● Verkko koostuu neuroneista ja niiden välisistä
yhteyksistä● (Yleensä) järjestetään kerroksiksi: syötekerros,
0 tai useampia välikerroksia, ulostulokerros● Jokaisesta neuronista yhteys jokaiseen
seuraavan kerroksen neuroniin● Toiminta koodattuna yhteyksien painokertoimiin● Oppiminen on painokertoimien muuttamista
Luku 9: Tekoäly
Neuroverkot
● Painokertoimia muutetaan opetusnäytteiden perusteella, yleisin algoritmi tähän on nimeltään back-propagation
● Neuroverkko lopultakin oppii ”vain” jonkin funktion syötteen ja ulostulon välillä
● Oppiminen vaatii paljon laskemista● Esim. autopelin kuski: syötteinä näkyvät esteet
sijainteineen, ulostuloina kaasu/jarru, ohjaus● Läpinäkyvyyden puute pahin ongelma
Luku 9: Tekoäly
Geneettiset algoritmit
● Geneettisissä algoritmeissa (GA) matkitaan luonnonvalintaa
● Pidetään yllä populaatiota, jossa seuraava sukupolvi muodostetaan risteyttämällä (enimmäkseen) parhaiten menestyviä yksilöitä
● Risteytys esim. koodaamalla yksilöt bittijonoiksi ja ottamalla alkuosa toiselta, loppuosa toiselta vanhemmalta
● Yleensä lisäksi mutaatioita
Luku 9: Tekoäly
Geneettiset algoritmit
● Mutaatioiden määrä täytyy valita niin, ettei kehitys jähmety, mutta populaatio pysyy kuitenkin elinkelpoisena
● Parhaiden valintaa varten täytyy suorittaa jonkinlainen evaluaatio, mikä voi olla vaikeaa tai ainakin työlästä– Jos yksilöt esim. pelistrategioita, evaluaatio voi olla
pelien pelaamista toisia yksilöitä vastaan
● Tuottaa kohtalaisia, mutta harvoin optimaalisia tuloksia
Luku 9: Tekoäly
Geneettiset algoritmit
● Sukupolvia voidaan tarvita paljon, joten ei välttämättä sovi reaaliaikaiseen peliin– Voidaan kuitenkin käyttää etukäteen vaikkapa
pelistrategian optimoimiseen
● Joskus yksinkertainen hill climbing tms. voi olla helpompaa ja tuottaa nopeammin ratkaisuja
– GA usein pelkkä hypetermi
● Tosin evoluution seuraaminen sinänsä on hauskaa, joten joissakin peleissä GA:n toiminta ja hienovarainen ohjailu on osa itse sisältöä
Luku 9: Tekoäly
Parveilu
● Parveilu (flocking) mallintaa yksinkertaisista olioista muodostuvien joukkojen käyttäytymistä
– Esimerkiksi linnut, kalat, muurahaiset
– Muurahaiset ja polunetsintä feromoneilla
● Käytetään etenkin sivuhahmojen kuten ihmismassojen liikkumisen luomiseen
● Boids: ero, suuntaus, yhtenäisyys– ajateltavissa voimakenttien avulla, jolloin esteet
ovat luotaantyöntäviä
Luku 9: Tekoäly
A-life
● Keinoelämä (A-life, artificial life) viittaa elämän simuloimiseen keinotekoisessa ympäristössä
● Ei yksittäinen tekniikka, vaan laaja käsite, a-lifeä voi esiintyä monella tasolla
● Esim. ekosysteemit ja päämäärälliset ihmiset● Peleissä voi olla yksinkertaisimmillaan vain sitä,
että pelin hahmoja päivitetään vaikka ne eivät ole lähellä pelaajaa
● Sim-sarjan pelit, S.T.A.L.K.E.R.
Luku 9: Tekoäly
Muita menetelmiä
● Sims ja fiksu maasto– esineet osaavat kertoa hahmoille, mitä tarpeita ne
tyydyttävät ja miten niitä käytetään
– mainostus, mitä lähempänä esine on, sitä enemmän se vaikuttaa hahmoon
– koska toiminnallisuus on esineissä eikä itse pelissä, pelistä tulee hyvin laajennettava
● Creatures ja kemialliset eritteet– tunteet aiheuttavat hahmoille yhdisteiden eritystä
– muiden jättämät eritteet vaikuttavat hahmoon
Luku 9: Tekoäly
Polunetsintä● Polunetsintä on hyvin yleinen ongelma peleissä
– Lokaalit menetelmät ottavat huomioon van lähialueen: ihmismäisiä
– Globaalit menetelmät vastaavat ihmisen toimintaa, kun käytössä on kartta
● Jos maasto ei suoraan ruudukko, jaetaan konvekseihin soluihin ja portaaleihin
– Syntyy navigaatioverkko
● Algoritmeja: ”törmää ja käänny”, Dijkstra, A*– A*:stä erilaisia versioita: IDA* ym.
Luku 9: Tekoäly
Toimintapelin AI
● Muutamia perusideoita, joita toimintapelin AI voi hyödyntää käytöksessään– katsominen: käännytään kohti
– seuraaminen: katsotaan ja liikutaan eteenpäin
– ennakointi: kohteen tulevan sijainnin arviointi
– pakeneminen: katsotaan poispäin ja liikutaan
– välietapit (waypoints): vuorotellen kohteeksi ennalta määrättyjä pisteitä, joiden välillä partioidaan
● esim. käytetään välietappeja jos pelaajaa ei näy, muuten seurataan pelaajaa
Luku 9: Tekoäly
Toimintapelin AI
– suojautuminen: etsitään lähin este, vedetään suora pelaajasta esteen keskipisteen kautta ja liikutaan mahdollisimman suoraan tämän suoran varrelle esteen taakse
– yllättäminen: suojan takaa voi hyökätä kun agentti ei enää ole pelaajan näköfrustumin alueella
– ampuminen: usein muistuttaa seuraamista (ennakoinnilla tai ilman), mutta esim. konekiväärillä voi olla erilaista
– joukkuetaktiikat: suojatuli, parit, piiritys
– tilakoneet yleisin tekniikka
Luku 9: Tekoäly
Maaston piirteet
● Usein tekoälylle on avuksi, jos sille on etukäteen merkitty kenttään hyödyllisiä piirteitä– polunetsinnän nopeutus: valmiit reitit, konveksi jako
– suojat, kyttäyspaikat, hyökkäyssuunnat, kapeikot
– autopeleissä optimaalinen ajolinja
● Näiden löytäminen automaattisesti on hankalaa tai ainakin aikaavievää
● Usein kenttäsuunnittelijan työtä, mutta silloin niitä täytyy päivittää kentän muuttuessa
Luku 9: Tekoäly
Ryhmän liike
● Tekoäly liikuttaa usein joukkoa yksiköitä● Esim. RTS:ien muodostelmat● Synkronisoidut tilakoneet eivät välttämättä
toimi, koska yksiköitä on helposti liikaa● Parveilualgoritmit (boids)● Sotilaallisessa muodostelmassa pysymiselle
korkeampi painoarvo: voimakenttä, joka vetää kohti sotilaan oikeaa sijaintia muodostelmassa
● Avaruuden osittavat tietorakenteet avuksi
Luku 9: Tekoäly
Influence map● Ihminen näkee taistelukentästä heti, missä on
kunkin puolen vahva alue ja missä on rintamia● Tekoäly ratkoo ongelmaa influence mapilla
– Kartta jaetaan ruudukkoon● Vaihtoehtoisesti käytetään navigaatioverkkoa,
erityisesti jos pelimaailma on aidosti 3d
– Merkitään kartalle esim. omat (+) ja viholliset (-)● Myös väliaikaiset uhat, esim. kranaatin räjähdys● Yksikön tyyppi (kesto, vahinko) voi vaikuttaa
kertoimena arvoihin
Luku 9: Tekoäly
Influence map
● Vaikutus levitetään ympäristöön etäisyyden mukana vähenevän funktion avulla
– Vähenee nopeasti esteiden suuntaan
– Verkossa leviää vain yhteyksien suuntaan
– esim. eksponenttifunktio tai lineaarinen
● Kokonaisvaikutus summa yksiköiden kentistä● Päivityksessä jätetään jokin osuus vanhasta
arvosta voimaan (momentum)● Päivitysväli esim. 0,2 s ... 5 s pelistä riippuen
Luku 9: Tekoäly
Influence map
● Kartasta voi tehdä monenlaisia analyysejä– Positiiviset alueet omien hallussa, negatiiviset
vihollisen
– Rintama on siellä, missä arvot ovat lähellä nollaa
– Jos kahden vahvan vihollisalueen välillä on heikko alue, isku sinne saattaa jakaa vihollisen kahtia
– Aikaderivaatan avulla näkee isot hyökkäykset
– Turvallisten reittien etsintä
– Suuri gradientti kuvaa kiisteltyä aluetta
Luku 9: Tekoäly
Strateginen suunnittelu
● Esim. RTS-pelin tekoäly koostuu usein kahdesta kerroksesta: yksittäiset yksiköt kuten toimintapeleissä (tilakone tms.)
● Ylemmällä tasolla strateginen äly● Vastaava äly myös strategiapeleissä, mutta
hierarkiassa voi olla useampia kerroksia● Käytettyjä tekniikoita sääntöpohjaiset
järjestelmät, käsin tehdyt skriptit, suunnittelualgoritmit, influence mapit