S-114.240 Laskennallisen tekniikan seminaari

Evoluutiolaskenta ja keinoelämä

 10.4.1997

ADAPTIIVISET AUTONOMISET AGENTIT

  

Tommi Orpana

torpana@cc.hut.fi


Sisällysluettelo:

 

1. JOHDANTO

 2. AGENTTIEN LUONNE

2.1. Agentit vs. perinteinen tekoäly

2.2. Toteutettujen agenttiratkaisujen yleisiä ominaisuuksia

3. AGENTTIEN SUUNNITTELU JA TUTKIMINEN

3.1. Hyödyllisiä periaatteita

3.2. Keskeisiä ongelmia

3.2.1. Teon valinta (action selection)

3.2.2. Kokemuksesta oppiminen

4. AGENTTIEN OPPIMISEN MALLINTAMINEN

4.1. Perusmalli: johdonmukainen maailma

4.2. Epäjohdonmukainen maailma

4.3. Käyttäytymisen oppiminen

4.4. Käyttäytymisen arviointikriteerit

4.4.1. Oikeellisuus

4.4.2. Suppenemisnopeus

4.4.3. Kompleksisuus

5. ESIMERKKEJÄ AGENTEISTA

5.2. Käyttöliittymäagentti

6. USEAN AGENTIN JÄRJESTELMÄT

6.1.2. Kommunikaatio

6.2. Esimerkki agenttiyhteisöstä

7. YHTEENVETO

 8. LÄHDELUETTELO

  


 1. JOHDANTO

 

Kahdentoista kuluneen vuoden aikana tekoälyn piiriin on syntynyt uusi toimintaa kuhiseva tutkimusala, adaptiivisten autonomisten agenttien tutkimus. Syy innostukseen on näiden agenttien perinteisiin tekoälymenetelmiin verrattuna lupaavaksi osoittautunut kyky toimia dynaamisissa, hankalasti mallinnettavissa kohinaisissakin ympäristöissä.

Käsillä olevassa työssä pyritään tarkastelemaan adaptiivisten autonomisten agenttien (kutsutaan vastaisuudessa agenteiksi) luonteenomaisia piirteitä jotka erottavat ne perinteisistä tekoälysysteemeistä. Piirteiden avulla pohditaan agenteille parhaiten soveltuvia tehtäviä sekä syitä jotka tekevät agenttiratkaisuista hyviä näissä tehtävissä. Lisäksi perehdytään agenttitutkimuksen polttaviin ongelmiin ja katsotaan lyhyesti mikä on alan nykytilanne. Erityisesti tarkastellaan oppimista agenteissa.

Agenteille tunnusomaisia piirteitä ovat mm. hajautettu sisäinen rakenne ja näiden rinnakkain toimivien sisäisten modulien yhteistoiminnan sivuvaikutuksena syntyvä ongelmanratkaisukyky. Luonnollinen jatko näiden periaatteiden soveltamiselle on agenttiyhteisöjen käyttö, mitä käsitellään työn lopussa.


 

2. AGENTTIEN LUONNE

 

Mikä on adaptiivinen autonominen agentti, muu kuin vierasperäinen sanahirviö? Agentilla tarkoitetaan järjestelmää, joka yrittää suorittaa tehtäviä monimutkaisessa, dynaamisessa ympäristössä. Agentti sijaitsee itse ympäristössään, johon se on vuorovaikutuksessa aistielinten (sensors) ja "vaikuttajien" (effectors, actuators, elinten jotka manipuloivat ympäristöä) kautta. Autonomisuus merkitsee, että agentti päättää itsenäisesti miten aistihavainnot muunnetaan ympäristöön kohdistuviksi toimiksi ja teoiksi. Adaptiivinen agentti puolestaan kykenee parantamaan suoritustaan ympäristöstä saamansa kokemuksen myötä, eli on oppiva. Erilaisia adaptiivisten autonomisten agenttien implementaatioita on näinollen rajattomasti, em. määritelmien piiriin kuuluvia olioita voivat olla esimerkiksi robotit fyysisessä ympäristössä, ohjelmistoagentit tietokoneverkoissa, oliot tietokoneilla simuloiduissa maailmoissa, eläimet sekä ihmiset.

 

2.1. Agentit vs. perinteinen tekoäly

Agenttien ekologinen lokero tekoälymenetelmien maailmassa voidaan kuvata esittämällä karrikoituja eroavaisuuksia agenttien ja perinteisten tekoälymenetelmien (seuraavassa pt-menetelmät, pt-systeemit) välillä. Kaikki agentit ja perinteiset tekoälymenetelmät eivät luonnollisesti mahdu seuraaviin raameihin, ja monia perinteisen tekoälyn luomuksia voidaan edellisen kappaleen määritelmien perusteella kutsua agenteiksi. Oikeastaan seuraavassa määritellään uusi tapa luoda agentteja. Luonteenomaisia piirteitä ovat:

 b) Pt-systeemit ovat "suljettuja", ne eivät yleensä vuorovaikuta suoraan ympäristönsä kanssa vaan tarvitsevat väliin vaikkapa ihmisoperaattorin. Operaattori koodaa ympäristön tilanteen symboleiksi joita pt-systeemi ymmärtää ja manipuloi, ja joina se antaa vastauksen. Joskus operaattoria tarvitaan myös implementoimaan annettu ratkaisu. Esimerkiksi shakkikone Deep Blue ei itse havaitse tai siirtele fyysisiä shakkinappeja pelatessaan Garri Kasparovia vastaan, vaan tarvitsee operaattorin. Agentti sen sijaan on suoraan yhteydessä ympäristöönsä.

c) Usein pt-systeemeillä on ratkaistavanaan vain yksi operaattorin esittämä ongelma joka ei systeemin kannalta katsoen muutu laskennan aikana. Agentin on itse selvitettävä mitä ongelmat ja tavoitteet ovat ympäristön muuttuessa jatkuvasti.

d) Agenteilla ei ole pt-systeemien jäykkiä tietorakenteita (knowledge structure), esim. eksplisiittistä tarkkaa karttaa maailmasta. Agentin käyttäytymistä pidetään tärkeämpänä kuin sen kykyä vastata ongelmaa koskeviin kysymyksiin, vaikkapa muodostaa eksplisiittinen suunnitelma. Käyttäjän kyky paikantaa mikä rakenne vastaa mistäkin teosta ei ole tärkeää, sillä on täysin hyväksyttävissä että käyttäytyminen syntyy useiden sisäisten rakenteiden ja ympäristön (monimutkaisen) vuorovaikutuksen tuloksena.

e) Agenttitutkimuksessa tiedon hankkimisella sekä käyttäytymisen ja rakenteiden kehittymisellä on erityisen keskeinen asema. Pt-systeemi tarvitsee toimiakseen paljon taustatietoa eivätkä tiedon kehitys ja sen alkuperä ole niin tärkeitä.

  

2.2. Toteutettujen agenttiratkaisujen yleisiä ominaisuuksia

 Agentit on tyypillisesti rakennettu useista pienistä tehtäväkohtaisista moduleista. Nämä modulit ovat kukin erikseen suoraan yhteydessä agentin aisteihin ja vaikuttajiin, ja niiden keskinäinen kommunikaatio on vähäistä ja yleensä tällöinkin kahdenvälistä. Modulit voivat tosin kommunikoida keskenään ympäristön kautta, mutta tähän ei välttämättä eksplisiittisesti pyritä. Modulien tehtävät eivät ole yleisluontoisia, esim. ei ole yleistä suunnittelu -tai oppimismodulia. Sen sijaan tehtävä voi olla esim. esteen väistö, ja vastaava moduli suorittaa itse tarvitsemansa havainnoinnin, laskennan ja ympäristöön vaikuttamisen. Lähestymistapa juontaa juurensa epäluulosta "yleisten ratkaisujen" olemassaoloa kohtaan. Yksikään moduli ei myöskään valvo ja ohjaa muita, ei ole olemassa pomomodulia. Sen sijaan on olemassa (ja oltava) valintamekanismi joka päättää mikä teko suoritetaan jos moduleiden vaikuttajille antamat käskyt ovat ristiriidassa keskenään. Koska kaikki modulit toimivat rinnakkain, systeemi kykenee reagoimaan nopeasti.

Agentin näennäinen pyrkimys tietynlaisten tavoitteiden saavuttamiseen on niinikään tyypillisesti erilaisten vuorovaikutusten implisiittinen ominaisuus. Agenteilla ei ole mitään sisäistä rakennetta joka vastaisi niiden "suunnitelmaa" jonkin ongelman ratkaisemiseksi. Tarkoituksenmukainen käyttäytyminen syntyy eri moduleiden ja ympäristön elementtien vuorovaikuttaessa keskenään. Näinollen joissakin agenttisysteemeissä ei ole eksplisiittisiä tavoitteita lainkaan, vaikka ulkopuolisesta tarkkailijasta siltä näyttäisikin. Toisenlaisissa ratkaisuissa agenteilla voi olla eksplisiittiset tavoitteet, joiden perusteella moduleiden prioriteettia ristiriitatilanteissa säädellään.

Itsenäinen oppiminen on agenttien tavaramerkki. Agenteille ei pakkosyötetä valmiita ratkaisumalleja, vaan niille jätetään runsaasti liikkumavaraa oikeiden käyttäytymistapojen oppimiseksi ympäristön perusteella. Agentit oppivat induktiolla ja voivat muuttaa itseään, jolloin niiden on helppo selvitä muuttuvassa ympäristössä. Yleensä oppiminen on myöskin rinnakkainen prosessi, eli kukin moduli pyörittää omia oppimisalgoritmejaan.

Edellä mainitut ominaisuudet on havaittu hyviksi, sillä ne tuottavat agentteja jotka ovat adaptiivisia ja robusteja (sietävät hyvin vikoja). Agentit ovat nopeita, koska niissä on rinnakkaisuudesta johtuen vähän informaation käsittelykerroksia eivätkä ne yleensä suorita hidasta laskentaa, esim. hakuja. Adaptiivisuutta auttaa ympäristön välitön käyttö informaatiolähteenä, sillä onhan ympäristö toki paras oma mallinsa. Se ei vanhene eikä ole virheellinen toisin kuin mahdollinen agentin sisäinen maailmanmalli. Robustius johtuu ensinnäkin siitä, että kaikki modulit ovat suurinpiirtein yhtä tärkeitä ja suorittavat monesti samankaltaisia tehtäviä, ja toiseksi siitä, että agentit eivät pyri täysin ymmärtämään tilanteita joissa ovat. Myös adaptiivisuus lisää agenttien robustiutta.

 


 

3. AGENTTIEN SUUNNITTELU JA TUTKIMINEN

 

Agentteja suunniteltaessa päämääränä on luoda agentti, joka on tyypillisesti adaptiivinen ja robusti. Lisäksi agentin olisi oltava tehokas (effective): sen tulisi saavuttaa tavoitteensa ennen pitkää. Agenttitutkimuksen päätavoitteena on näin ollen löytää ne periaatteet ja järjestelmät jotka johtavat em. kaltaiseen käyttäytymiseen. Lisäksi pyritään kehittämään työkaluja ja algoritmeja joilla voidaan luoda halutun kaltaisia agentteja. Kuluneina vuosina on havaittu, että mikään yksittäinen agenttiarkkitehtuuri ei ole optimaalinen joka suhteessa. Niinpä yhtenä tavoitteena on määrittää minkälaisiin tilanteisiin kukin arkkitehtuuri sopii parhaiten. Tilanteet määritellään agenttien ja ympäristöjen ominaisuuksien perusteella.

 

3.1. Hyödyllisiä periaatteita

 Agenttitutkimuksen perustana käytetään kahta periaatetta, joiden uskotaan helpottavan ongelmien ratkaisua agenttien avulla:

2) Vuorovaikutukset agentin ja ympäristön eri osasten välillä voivat synnyttää monimutkaisia rakenteita ja toimintoja, eli systeemi on "enemmän kuin osiensa summa". Englanninkielisessä kirjallisuudessa ilmiöstä käytetään termiä emergence (of complex behaviour/structure).

Ensimmäisen periaatteen mukaan agenttia ja sen ympäristöä kannattaa tarkkailla kokonaisuutena, jolloin agentti suunnitellaan nimenomaan tiettyyn ympäristöönsä. Agentin modulien tasoa tarkasteltaessa tämä tarkoittaa että älykkäitä toimintoja kuten havainnointi, suunnittelu ja oppiminen ei kutakin lokeroida omaan moduliinsa vaan että nämä syntyvät eri toiminnoista vastaavien (erilaisten) modulien yhteistyön tuloksena. Esimerkiksi agentti jolla on paitsi kuulo- myös näköaisti voi helpommin tunnistaa ihmisen puhetta kuin sokea agentti. Ottamalla huomioon ympäristö jossa agentti sijaitsee ympäristöä voidaan käyttää ulkoisena muistina ja sen säännönmukaisuuksia voidaan käyttää hyödyksi. Eräs agentin ympäristön ominaisuus on ajan kuluminen, ja siitä voidaan hyötyä käyttämällä aikaa oppimiseen (mikäli mahdollista) tai ongelman iteratiiviseen ratkaisuun. Puhetta ymmärtävän agentin tehtävä helpottuu jos se voi esittää kysymyksiä aiemmin kuulemistaan epäselviksi jääneistä asioista. Ympäristöön voi kuulua myös muita agentteja jotka suorittavat samoja tai samankaltaisia tehtäviä, ja tällöin näitä voi matkia tai seurata eikä agentin tarvitse itse keksiä ratkaisuja kaikkeen.

Toisen periaatteen hyväksikäyttö johtaa hyviin tuloksiin, sillä yleensä vuorovaikutusten synnyttämä kompleksinen käyttäytyminen on joustavampaa ja paremmin vikoja sietävää kuin eksplisiittisesti ohjelmoitu kompleksinen käyttäytyminen. Muurahaisyhteisön kollektiivinen tehokas ruoankeruu ja polkujen muodostaminen ei yhden muurahaisen kuolemasta paljoa hätkähdä.

Esimerkki agentin komponenttien (modulien) vuorovaikutuksen synnyttämästä käyttäytymisestä on seiniä seuraava robotti. Yksi moduli ohjaa robotin seinää kohti mikäli robotti on liian kaukana seinästä, ja toinen kääntää robotin poispäin esteistä jos sellaisia on liian lähellä. Kumpikaan moduli ei ole ensisijaisesti vastuussa em. käyttäytymisestä.

Ethologien (eläinten käyttäytymisen tutkijoiden) mukaan eläimen käyttäytymistä voi ymmärtää vain suhteessa niiden ympäristöön. Useiden tutkijoiden mukaan käyttäytymisen kompleksisuus johtuu yhtälailla eläimen kuin sen ympäristön kompleksisuudesta. Yksinkertainenkin agentti voi käyttäytyä kompleksisesti jos se on monimutkaisessa ympäristössä. Tällaisen käyttäytymisen synnyttämiseksi tulee tutkia ympäristöä ja sen vuorovaikutusmahdollisuuksia agentin kanssa, silmukoita ja takaisinkytkentää.

 

3.2. Keskeisiä ongelmia

3.2.1. Teon valinta (action selection)

Teon valinnan ongelma syntyy, kun agentin pitäisi (jonkin kriteerin suhteen) optimoida tavoitteeseen pääsy, olettaen että agentilla on tietyt ajan mukana kehittyvät tavoitteet (mukaan lukien mahd. oppiminen), tietyt toimintavaihtoehdot, ja tietty havaintodata. Aina ei ole välttämättä edes mahdollista laskea teoreettista optimitekoa oikeille agenteille, johtuen rajoitetuista resursseista, virheellisestä tai epätäydellisestä havaintodatasta, ympäristön monimutkaisuudesta, jne. Tällaisessa tilanteessa herää kysymys miten jonkin teon hyvyyttä voidaan arvioida. Yleisesti kuitenkin agenttitutkimuksessa ei olla kiinnostuneita ratkaisujen optimaalisuudesta tai absoluuttisesta "hyvyydestä", vaan siitä johtaako teon synnyttänyt käyttäytyminen tavoitteiden saavuttamiseen ja onko käyttäytyminen adaptiivista ja robustia. Tämä tarkoittaa muun muassa sitä, että agentin teonvalintamekanismin tulisi:

 Paras teonvalintamekanismi riippuu luonnollisesti ympäristöstä: mitä vakavampia vaikutuksia virheillä on sitä tarkemmin tekoja tulee harkita. Oma vaikutuksensa on myös kohinaisilla sensoreilla. Tällöin pienet vaihtelut havaintodatassa eivät saa muuttaa tekoja. Jos taas sensoreita on lukuisia, agentti saa paremman kuvan ympäristöstä ja voi luottaa havaintodataansa tekoja valitessaan. Päinvastaisessa tilanteessa agentti luultavasti tarvitsee muistia auttamaan päätöksenteossa.

 Maes [1] jakaa teonvalinta-arkkitehtuurit kolmeen luokkaan: käsintehdyt litteät verkot, kääntäjän tuottamat litteät verkot (kuva 1) sekä käsintehdyt hierarkiset verkot (kuva 2). Käsintehty litteä verkko synnyttää implisiittisesti agentille tavoitteita. Valinta eri modulien tuottamien ohjaussignaalien välillä tehdään loogisilla piireillä tms. siten että korkeintaan yksi moduli ohjaa kerrallaan yhtä vaikuttajaa. Komentoja ei voi yhdistää esim. tekemällä kuten kahden komennon keskiarvo edellyttäisi. Tällaisen agentin hyvä toteutus edellyttää suunnittelijalta paljon; hänen on tunnettava ympäristö ja tavoitteet hyvin. Edellä kuvatun kaltaisten suunnitteluratkaisujen huono puoli on että niistä ei ole paljoakaan apua muiden agenttien suunnittelussa; ne voivat toimia esimerkkeinä onnistuneista kokonaisratkaisuista, mutta uusi agentti on yleensä suunniteltava täysin alusta alkaen. Lisäksi agentin rakentaminen tällä tavalla on hankalaa.

Kääntäjän tuottamat litteät verkot on aluksi kuvattu jollain formalismilla, minkä jälkeen kääntäjä tuottaa piirin joka valitsee teot oikein. Suunnittelijalta edellytetään että hän pystyy kuvaamaan formalismin mukaisesti agentin tavoitteet, modulit, teot sekä millä ehdoilla teot suoritetaan ja niiden vaikutukset. Itse implementaatiossa agentin tavoitteet ovat implisiittisiä, mutta koodissa eksplisiittisiä. Jos tavoitteet muuttuvat, agentti on rakennettava täysin uudelleen. Lähestymistavan huono puoli on siinä että luodut agentit kuuluvat rajoittuneeseen luokkaan, eikä aina ole helppoa kuvata tavoitteita formalismin mukaisesti.

Käsintehdyssä hierarkisessa verkossa teoilla on hierarkinen järjestys, siten että korkeamman tason teot voivat vaikuttaa alemman tason tekoihin. Ainoastaan alimman tason teot voidaan varsinaisesti toteuttaa. Yleensä hierarkiaan joudutaan turvautumaan kun agentin käyttäytyminen monimutkaistuu.

Lukuisia avoimia kysymyksiä ja ongelmia liittyy agenttien teonvalintaan, ja monella saralla kaivataan lisää tutkimustuloksia. Eräs hankalimmista ongelmista on ratkaisujen muuttaminen monimutkaisempiin ongelmiin soveltuviksi, ja tähän liittyen toimivien ratkaisujen siirto agentista toiseen on lapsenkengissään. Lisäksi erilaisten vuorovaikutusten dynamiikkaa tulisi ymmärtää paremmin. Samoin komentojen yhdistäminen on jätetty suurelta osin käsittelemättä; yleensä yhtä vaikuttajaa ohjaa yksi moduli. Edellä mainitut arkkitehtuurit eivät sisällä keskusmuistia, joten ne voivat helposti juuttua silmukoihin ja umpikujiin. Edelleen havaintojen ja tekojen välinen suhde on turhan yksioikoinen. Harvassa ratkaisussa pyritään esimerkiksi aktiivisesti hakemaan lisää tai erilaista havaintomateriaalia.

KUVA PUUTTUU

Kuva 1: Litteä verkko-arkkitehtuuri

 KUVA PUUTTUU

Kuva 2: Hierarkinen verkko-arkkitehtuuri

 

 

3.2.2. Kokemuksesta oppiminen

 Jos agentti joutuu toimimaan kauan dynaamisessa ympäristössä, oppiminen on välttämätöntä jotta tavoitteisiin päästäisiin. Ilman oppimistakin odottamattomista tilanteista voidaan selviytyä, mutta selviytyminen ei muutu tehokkaammaksi. Oppivaa agenttia voi käyttää myös täysin erilaisissa ympäristöissä. Lisäksi oppimiskykyinen agentti helpottaa suunnittelijan työtä, sillä hänen ei tällöin tarvitse ohjelmoida agenttiin kaikkia tavoitteisiin pääsemiseen tarvittavia käyttäytymismalleja. Ongelmana on siis selvittää kuinka agentti jolla on tietyt tekovaihtoehdot, havaintodata ja tavoitteet voi parantaa teonvalintamekanismiaan kokemuksen perusteella. Tavoitteista riippuen voidaan parantaa esim. suoritusaikaa, tekojen lukumäärää, energiankulutusta tms.

 Riippumatta tavoitteista, oppimismekanismin on oltava sellainen, että:

- agentti oppii joka kokemuksesta
- oppi on relevanttia
- agentin on tultava toimeen kohinan, satunnaisilmiöiden ja vikojen kanssa
- oppiminen on itsenäistä
- jos mahdollista agentille voidaan antaa taustatietoa jottei sen tarvitse oppia aivan kaikkea.

Oppivan agentin suunnittelemisen ongelma voidaan jakaa kahteen aliongelmaan, ensinnäkin kysymykseen siitä miten agentti oppii, luo testattavia vaihtoehtoja ja valitsee näistä parhaan jatkossa käytettäväksi, toisekseen kysymykseen milloin agentin tulisi tehdä kuten paras olemassaoleva ratkaisu edellyttää ja milloin kokeilla jotain uutta.

Yleensä agenttien oppimisella tarkoitetaan käytännössä teonvalintamekanismin oppimista, eli oletetaan että agentilla on perusmodulit paikallaan. Toisinaan systeemi voi myös luoda uusia yhdistelmätekoja. Oppimisarkkitehtuurit voidaan jakaa kolmeen päätyyppiin, jotka käsitellään seuraavaksi.

"Vahvistusoppiminen" (reinforcement learning) perustuu palkkiosignaaliin jonka agentti saa aina toimiessaan. Tavoitteena on löytää kuvaus tilanteista tekoihin joka maksimoi ajan mittaan kertyneen palkkion. Q-oppiminen on tällainen strategia, jossa opitaan tilanne-teko parien palkkioarvot. Aluksi kaikilla pareilla on jokin arvo jota muutetaan kokemusten myötä niin että se suppenee "maksimi kertyneeseen painotettuun palkkioon" mitä tulevaisuudessa on mahdollista saada. Palkkioita eri tulevaisuuden teoista on painotettu siten että lähitulevaisuuden teot painavat eniten. Kun agentti tekee jotain, tilanne-teko-taulukkoa päivitetään siten että ao. kohtaan lisätään teon palkkio ja seuraavan tilanteen paras mahdollinen palkkio. Agentti suorittaa aina sen teon jolla sinä hetkenä on paras arvo lukuunottamatta pientä prosenttia teoista jotka ovat täysin satunnaisia. Metodi on teoreettisesti miellyttävä, sillä voidaan osoittaa että Markov-ympäristössä teonvalintamekanismi suppenee kohti optimia. Menetelmä on myös hyvin suosittu, mutta sillä on lukuisia heikkouksia, esimerkiksi se että tavoitteiden muuttuessa kaikki on opeteltava alusta. Taulukot ovat yleensä aivan liian isoja, ja pitkien tekosarjojen oppiminen on vaikeaa jos palkkiota saa vasta viimeisen teon jälkeen. Lisäksi oletetaan että agentti tietää aina oman tilansa. Hankaluuksia aiheuttaa myös aiemman tiedon sisällyttäminen systeemiin, ja se että monen teon samanaikaista suorittamista ei voida oppia.

"Luokittelujärjestelmiä" (classifier systems) käyttävillä agenteilla on joukko toimintasääntöjä eli luokittelijoita (classifiers) ja tietoa kunkin luokittelijan suorituskyvystä. Jokainen luokittelija määrittelee tilanteet joissa tehdään tietty teko. Agentin teko on sen luokittelijan ehdotus jolla on tilanteeseen sopivista luokittelijoista korkein arvo. Jos jonkin luokittelijan ehdotus johtaa tuloksiin, paitsi luokittelijan myös edeltäneitä tekoja ehdottaneiden luokittelijoiden arvoa parannetaan (ns. bucket brigade-algoritmi). Uusia luokittelijoita syntyy kun silloin tällöin evoluutiolaskennalla luodaan parhaiden muunnoksia joilla huonoimmat korvataan. Luokittelujärjestelmien etu on että evoluutiolaskenta on järkevämpi tapa etsiä uusia vaihtoehtoja kuin puhdas arvailu. Yleisten lainalaisuuksien etsiminen on myöskin helppoa kun otetaan käyttöön "ei väliä"-symboli määriteltäessä luokittelijan pätevyysaluetta. Huonoja puolia ovat edelleen että tavoitteet eivät saa muuttua ajan myötä, ja että pitkien tekosarjojen oppiminen on vaikeaa.

"Mallinrakentajat" (model builders) ovat agentteja jotka oppivat tekojen probabilistisen mallin: mitkä teot johtavat mistäkin tilanteista toisiin. Valintaprosessi käyttää mallia päättäessään seuraavan teon. Mallin ei tarvitse olla täydellinen, vaan se voi sisältää osittaisia kuvauksia sekä lähtö- että lopputilanteista. Lähtötilanteiden (ehtojen), tekovaihtoehtojen ja lopputilanteiden (tulosten) yhdistelmää kutsutaan skeemaksi (schema) tai käyttäytymismoduliksi. Kun agentti toimii, se tarkkailee samanaikaisesti ympäristöään oppien korrelaatioita ja päivittäen niiden skeemojen tulososaa joilla on tekoon sopivat ennakkoehdot ja toimet. Joskus luodaan uusia skeemoja vanhoista ristiriitaisten tulosten esittämiseksi. Agentti voi myös päättää milloin ennakoehto-osaa on täydennettävä luotettavuuden parantamiseksi. Uusia skeemoja voidaan muodostaa suorittamalla joko täysin satunnaisia tekoja tai jollain älykkäämmällä tavalla luotuja kokeilemattomia vaihtoehtoja. Menetelmän hyviä puolia on, että opittuja malleja voidaan käyttää erilaisiin tavoitteisiin (myös aikariippuviin) pääsemiseksi. Lisäksi agentit oppivat joka teosta, eivät vain niistä jotka lopulta johtavat tuloksiin. Aiempaa tietoa on helppo sisällyttää agenttiin. Huonona puolena on että teon valinta saattaa kestää kauemmin kuin muilla menetelmillä.

Ikävä kyllä käytännön sovelluksissa kaikki edellä kuvatut oppimisalgoritimit ovat yleensä liian raskaita laskennallisesti. Havaintodataa myöskään ei käytetä hyödyksi niin paljon kuin mahdollista, sitä käsitellään vain yhdellä karkeustasolla eikä datan rakenteita huomioida. Runsaasti työtä on jäljellä myös uusien toimintavaihtoehtojen luomisen ja kokeilemisen kehittämisessä sekä oppimisen ja havaitsemisen vuorovaikutuksen tutkimisessa (kuinka agentti oppii havaitsemaan oikeita asioita). Lopuksi, malleja kaivataan siitä kuinka uusia "alkeistekoja" voitaisiin luoda ympäristön ja tavoitteiden perusteella.

 


 

4. AGENTTIEN OPPIMISEN MALLINTAMINEN

 

Edellisessä kappaleessa kävi ilmi että vaihtoehtoisia oppimismenetelmiä on lukuisia. Tässä kappaleessa keskitytään kuitenkin käsittelemään tarkemmin vain reinforcement-opetusta ja sen mallintamista. Tavoitteena on oppimisongelman selkeä esitys ja perustan löytäminen oppimisalgoritmien vertailulle.

Reinforcement-opetuksessa agentti oppii yritys ja erehdys-menetelmällä kuvauksen tilanteista optimaalisiin tekoihin. Toimiessaan tietyssä tilanteessa agentti oppii vain mitä suoritetusta teosta seuraa, ei sitä miten muut teot olisivat vaikuttaneet. Jos ympäristö on kohinainen, yksi suorituskerta ei kerro kaikkea.

4.1. Perusmalli: johdonmukainen maailma

Autonominen agentti toimii syklissä, jossa saadaan havainnot ympäristöstä (input), suoritetaan näiden perusteella tarvittava laskenta, ja vaikutetaan ympäristöön (output). Laskennan tulokseen voi myös vaikuttaa mahdollinen muisti. Syklin toistamista kutsutaan käyttäytymiseksi. Jotta käyttäytymisiä voitaisiin vertailla tarvitaan malli agentista ja ympäristöstä sekä niiden vuorovaikutuksesta.

Ympäristöä voidaan ajatella deterministisenä automaattina, jonka tilanvaihdot riippuvat agentin teoista. Formaalisti ympäristö voidaan kuvata joukolla (S,A,W), missä S on ympäristön tilojen joukko, A on agentin outputien joukko ja W on ympäristön tilanvaihtofunktio W: S A S. Agenttia puolestaan mallinnettakoon joukolla (L,I,R,B), jossa L on inputien joukko ympäristöstä agentille, I on kuvaus ympäristön tiloista inputeiksi (I: S L), R on reinforcement-funktio eli määrittää ympäristön tilan perusteella agentin palautteen, ja B on agentin käyttäytyminen tietyn inputin vallitessa (B: L A). Merkitään i:llä inputia, a:lla tekoa, r:llä palautetta ja s:llä maailman tilaa. Käyttäytymisprosessia havainnollistaa kuva 3([2], sivu 133).

 

KUVA PUUTTUU

Kuva 3: Agentin vuorovaikutus ympäristön kanssa

 

4.2. Epäjohdonmukainen maailma

Kun agentti saa tietylle input-output parille erilaisia palaute-arvoja tai ympäristön tila vaihtelee siten että sama toimintasarja tuottaa eri palaute-arvoja, ympäristö on epäjohdonmukainen. Tämä voi johtua useista syistä:

a) Agentti ei voi erottaa kaikkia maailman relevantteja tiloja; I ei ole yksi-yhteen kuvaus. Ympäristö ainoastaan näyttää agentista epäjohdonmukaiselta.

b) Agentin sensoreissa on vikaa. Ympäristö on tilassa s jolloin agentin tulisi havaita I(s) mutta toisinaan havaitseekin I(s') täten luullen että ympäristö on tilassa s'.

c) Agentin vaikuttajissa on vikaa. Agentin luullessa tehneensä teon a ympäristö reagoi toisinaan kuin agentti olisi tehnyt teon a'.

d) Ympäristön tila vaihtuu probabilistisesti, tilanvaihtofunktio kuvaakin S A:n toden-näköisyysjakaumaksi S:n yli.

Seuraavaksi tutkitaan lyhyesti kuinka kukin kohta (a)-(c) voidaan muuttaa ympäristöksi jolla on probabilistinen tilanvaihtofunktio P ja ympäristön tilajoukko S joka on identtinen agentin inputien joukon L kanssa. Syntyvän yhtenäisen lähestymistavan ansiosta myöhemmissä tarkasteluissa ei tarvitse ottaa huomioon mistä satunnainen tilanvaihtofunktio johtuu.

Oletetaan että vaikuttajassa on vika todennäköisyydellä p. Vian sattuessa teko onkin v(a) eikä a. Merkitään P:llä probabilistista tilanvaihtofunktiota ja W(s,a):lla determinististä tilanvaihtofunktiota. Tällöin P(W(s,a)) = 1-p ja P(W(s,v(a))) = p, muulloin P(muu lopputulos) = 0.

Reinforcement-opetuksessa tulee havaita oikein sekä tilanne josta lähdetään että teon seuraukset. Oletetaan, että sensorissa on vika (tekojen seuraukset havaitaan väärin) todennäköisyydellä p, todennäköisyydellä ps ympäristö on tilassa s ja näin myös havaitaan ja todennäköisyydellä ps' ympäristö on tilassa s' mutta havaitaankin s. Jos havaitut seuraukset ovat W(s,a) havaittiin sekä alkutilanne että seuraukset oikein. Tämän tilanteen todennäköisyys on P(W(s,a)) = ps(1-p). Todennäköisyys että alkutilanne havaittiin oikein ja seuraukset väärin on P(v(W(s,a))) = psp. Jos alkuperäinen tilanne olikin s' eikä s mutta seuraukset havaittiin oikein (eli kuten tilanteen ollessa s'), P(W(s',a)) = ps'(1-p). Viimein, jos kaikki havainnot menivät mönkään, P(v(W(s',a))) = ps'p .

Jos agentti ei voi erottaa kaikkia tiloja, havaittaessa tila s ympäristö onkin itse asiassa jossain s:n alitiloista. Todennäköisyydellä pj ympäristö on alitilassa sj, jolloin teon havaitut seuraukset ovat W(sj,a), ja tilansiirto P(W(sj,a)) = pj.

 

4.3. Käyttäytymisen oppiminen

Rakennetun mallin puitteissa käyttäytymisen oppimisen ongelma on sama kuin B:n valitseminen kun kaikki muu on annettu. Tulee löytää käytös B' joka havaintovirran pohjalta muuttaa itseään (tilaansa), supeten havaintoympäristön suhteen oikeaan käytökseen. Käytös jolla on tila on oppiva jos tilan osat ennen pitkää suppenevat kiinteään tai hitaasti muuttuvaan arvoon. Tämä lopputila on opittu käyttäytyminen.

Oppimiskäyttäytyminen (learning behaviour) on algoritmi jolla agentti oppii oikean käytöksen. Toisin kuin muut käyttäytymiset, oppimiskäyttäytyminen tarvitsee tiedon palautteesta. Se koostuu käyttäytymisen alkutilasta s0, päivitysfunktiosta u joka kuvaa tila havaintoinput teko palaute uusi tila sekä arviointifunktiosta e joka kuvaa tila havaintoinput teko. Arviointifunktio valitsee parhaan teon joka voi olla joko se jolla on korkein palaute tai se jota ei ole vielä koetettu. Alla oleva pseudokoodi kuvaa yleistä oppimiskäyttäytymistä.

4.4. Käyttäytymisen arviointikriteerit

 4.4.1. Oikeellisuus

 Jollakin tapaa on oltava mahdollista määritellä milloin agentin käyttäytyminen on oikeaa. Tämän arvioimiseksi on määriteltävä mitä oikea käytös on, ja vastauksesta riippuen saadaan eri algoritmeja oikeellisuuden määrittämiseksi. Määritelmä vaikuttaa myös siihen miten agentti käyttäytyy, sillä yleensä agentti suorittaa sen teon joka on eniten oikein.

Yksinkertainen kriteeri on seuraavan hetken palautteen odotusarvo er(i(t),a(t))

Jatkossa oletetaan, että ympäristö on globaalisti konsistentti, eli palautteen odotusarvo on vakio riippumatta i:sta tai a:sta. Edellä mainitun kriteerin suhteen oikea käytös on se joka tuottaa teon, joka maksimoi er(i,a):n, eli er(i,aopt)   er(i,a)  a. Kriteerin huono puoli on että se on ajallisesti rajoittunut eli lyhytnäköinen ja ahne.

Tulevat tapahtumat vaikuttavat oikeellisuuteen kun kriteerissä huomioidaan aikahorisontti, välittömän tulevaisuuden aikaväli jonka yli summattua agentin kokonaispalautteen odotusarvoa tarkastellaan. Em. suure on siten teon arvo, ja riippuu agentin käytöksestä teon jälkeen. Arvoa laskettaessa oletetaan että agentti käyttäytyy lopun aikaa optimaalisesti. Merkittäessä horisontin pituutta k:lla

 Suurilla k:n arvoilla em. kriteerin laskeminen on kallista. Jos horisontin pituus on ääretön, käytetään diskontattua summaa jolloin lähitulevaisuuden palautteet saavat suuremman painoarvon kuin myöhemmät palautteet. Menetelmä on yleisempi kuin horisonttikriteeri, ja intuitiivisesti miellyttävä.

 

 4.4.2. Suppenemisnopeus

 Suppenemisnopeus kertoo kuinka nopeasti oikea käyttäytyminen opitaan. Kun käyttäytyminen on oikeaa, sen virhe on nolla eikä positiivista palautetta menetetä suorittamalla vääriä tekoja. Teon virheen odotusarvo on sama kuin menetetyn positiivisen palautteen odotusarvo, eli

 Käyttäytymisen virheellisyyttä (äärettömän) pitkällä aikavälillä voidaan mitata katumuksella, joka on aikavälin tekojen virheiden summan odotusarvo. Mitä pienempi katumus, sitä vähemmän virheitä käyttäytymisessä on ja sitä paremmin se on supennut optimiin. Joskus optimaalista käytöstä ei voida laskea, mutta tällöinkin katumusta voidaan käyttää verrattaessa kahta eri käyttäytymismallia. Usean ajon palautteiden keskiarvojen avulla voidaan approksimoida palautteen odotusarvoa, ja siten vertailla käyttäytymisiä.

  

4.4.3. Kompleksisuus

Koska agentit toimivat reaalimaailmassa, niiden on oltava nopeita reagoidessaan ympäristön muutoksiin ja pysyttävä ylipäätään ajan tasalla. Tarpeeksi nopeat reaktiot voidaan varmistaa jos vaaditaan että teko seuraa inputia tietyssä (tarpeeksi lyhyessä) vakioajassa, kellojaksossa. Myös oppimisen olisi käytettävä vain vakioaika inputia kohden. Käytetyn ajan ei pitäisi vaihdella tulleiden inputien määrän mukaan, mutta se voi toki vaihdella inputin ja outputin koon mukaan. Käytännössä algoritmien ajoaikojen olisi oltava korkeintaan inputin ja outputin sisältämien bittimäärien polynomisia funktioita.

Tiettyyn rajaan saakka kellojakson lyhentäminen parantaa agentin suorituskykyä. Eri kellojaksot merkitsevät että agentit elävät eri maailmoissa, näinollen optimaaliset käytöksetkin vaihtelevat kellojakson pituuden mukaan. Toisinaan agentti jolla on pitkä kellojakso mutta joka suppenee nopeasti optimikäytökseen voi olla parempi kuin agentti jolla on lyhyt kellojakso mutta joka suppenee hitaasti optimiin.

 


 

5. ESIMERKKEJÄ AGENTEISTA

5.1. Liikkuva robotti

Robotti joka kulkee huoneesta toiseen tarvitsee ainakin kolme modulia: modulit (1) ovien tunnistamiseen ja niistä kulkemiseen, (2) seinien seuraamiseen ja (3) esteiden väistämiseen. Muitakin voi olla, ja ne voivat palvella samoja päämääriä. Modulit toimivat rinnan, ja valinta tekojen välillä tapahtuu seuraavasti: väistäminen on tärkeämpää kuin ovista kulkeminen, joka puolestaan on tärkeämpää kuin seinien seuraaminen. Agentilla ei ole eksplisiittistä suunnitelmaa kulkea huoneesta toiseen, mutta näin vain käy. Perinteisellä tekoälyllä toteutettuna robotti kasaisi havainnoistaan maailmanmallin jota päivitettäisiin mahdollisimman usein. Tässä mallissa olisi robotin sijainti huoneessa sekä ovien ja esineiden sijainti ja tyypit. Suunnitteluyksikkö etsisi toimintasarjan jolla ovelle päästäisiin törmäämättä esineisiin, ja lopulta toimintayksikkö suorittaisi suunnitelman.

 

5.2. Käyttöliittymäagentti

Tietokoneen käyttäjä törmää usein rutiinitehtäviin jotka ovat tylsiä ja vaativat useiden peräkkäisten käskyjen antamisen. Käyttöliittymäagentti pyrkii helpottamaan käyttäjien työtä suorittamalla automaattisesti niin monta käskyä kuin mahdollista. Agentti voi koostua useista eri moduleista jotka kukin pyrkivät ennakoimaan milloin käyttäjä antaa juuri sen käskyn johon ko. agentti on erikoistunut. Modulit tarkkailevat käyttäjän toimia ja oppivat niistä kukin itsenäisesti. Tällöin käskysarjan ennakointi on systeemin vuorovaikutusten synnyttämä ominaisuus. Perinteiseen tekoälyyn pohjaavaan systeemiin syötettäisiin tietoja käyttäjästä, hänen ympäristöstään ja käyttämistään ohjelmistoista. Lisäksi systeemillä olisi malli käyttäjästä ja hänen tehtävistään, ehkä tehtävien hierarkiasta ja käytetystä sanastosta. Mallin avulla tunnistettaisiin erilaiset tilanteet ja sitä kautta käyttäjän aikeet.

 


 

6. USEAN AGENTIN JÄRJESTELMÄT

Agenttiryhmien käyttö ongelmanratkaisussa on luonnollinen jatke agenttitutkimuksen periaatteiden soveltamiselle. Korvattaessa yksittäinen agentti agenttiryhmällä voidaan lisäksi kätevästi ratkaista ristiriitaisen informaation ja tavoitteiden aiheuttamat ongelmat; ryhmän agenteille voidaan antaa erilaisia tehtäviä ja ne voivat käyttää eri tiedonlähteitä. Ryhmän jäsenet toimivat samanaikaisesti, joten järkevällä yhteispelillä niiden pitäisi myös kyetä tehokkaampaan, nopeampaan toimintaan kuin yksittäisen agentin. Ongelmana onkin luoda yhteisö joka on vähintäänkin osiensa summa. Tutkimalla agenttiryhmiä voidaan myös lisätä sosiaalisten järjestelmien ymmärrystä. Autonomisen agentin käyttäytymistä ympäristössä jossa on lukuisia agentteja tutkii tekoälyn haara nimeltään hajautettu tekoäly (decentralized artificial intelligence).

 

6.1. Agenttien keskinäiset vuorovaikutukset

6.1.1. Sosiaaliset käyttäytymistyypit

Riippuen agenttien kyvystä suorittaa tehtävänsä itsenäisesti sekä tehtävän lokaalisuudesta, agentit yhteisössä tuottavat neljänlaista käyttäytymistä [3].

    kyky suorittaa yksin

    tavoite

    on

    ei

    henk.koht.

    cohabitation

    cooperation

    yleinen

    collaboration

    distribution

    Cohabitation (yhdessä asuminen): kaikki toimivat erikseen omien tavoitteidensa toteuttamiseksi, tosin ristiriitoja yhteisön jäsenten välillä saattaa ilmetä.

    Cooperation (yhteistyö): agentti tarvitsee henkilökohtaisen tehtävänsä suorittamiseen muiden apua, koska ei voi joko tehdä sitä lainkaan itse, tai sitten muiden avustuksella tehtävä suoritetaan paremmin.

    Collaboration (yhteistyö): agenttiyhteisön on valittava keskuudestaan joku tekemään tehtävä; eri agenttien samankaltaiset kyvyt johtavat systeemin robustisuuteen.

    Distribution (hajauttaminen): ongelmaksi muodostuu tehtävän jakaminen osiin ja osien jako eri agenttien suoritettaviksi.

     

    6.1.2. Kommunikaatio

    Agentit kommunikoivat keskenään usealla eri tasolla. Vahvinta vuorovaikutus on kun agentit vaikuttavat eksplisiittisesti toistensa päätöksentekoon. Tällöin agenteilla on pitkälle viedyt protokollat tiedottamiselle, neuvomiselle, vakuuttelulle ja neuvottelulle yleensä. Keskivahvaksi vuorovaikutukseksi katsotaan kun agentti haluaa tietää mitä toinen aikoo tehdä tai voisi tehdä. Tätä informaatiota voidaan käyttää omassa päätöksenteossa. Heikoin vuorovaikutus syntyy ympäristön kautta, jolloin agentti havaitsee ympäristön muutokset jotka toinen agentti on aiheuttanut.

    Kommunikaation sisältö voi olla esimerkiksi tietoa ympäristöstä. Agentilla voi olla jonkinlaisia päättelymekanismeja koskien toisten agenttien tietoja, ja päättelyn avulla se osaa kysyä muilta oikeanlaista tietoa tai ratkaista ristiriitoja omien ja toisten tietojen välillä. Agentit voivat myös vaihtaa suunnitelmia tai tekovaihtoehtoja keskenään, esimerkiksi neuvoteltaessa yhteistyöstä. Malli muiden päättelykyvystä saattaa auttaa agenttia kertomaan muille tietoja joita ne tarvitsevat tehdäkseen päätöksiä.

     

    6.2. Esimerkki agenttiyhteisöstä

    Roskien etsiminen ja kerääminen on tehtävä johon ryhmätyö on omiaan; tiedämmehän esimerkiksi miltä Otaniemi näyttää Wapun jälkeen. Jolleivät ahkerat teekkarit joukolla keräisi jätöksiään olisi tienoo sangen lohduton näky. Steels [4] on osoittanut miten homma voidaan hoitaa käyttämättä ylikoulutettua työvoimaa. Jokainen roskia keräävän yhteisön jäsen on mahdollisimman simppeli otus. Tasapainotilassaan moniagenttisysteemi koostuu agenteista jotka yhdessä järjestelmällisesti haravoivat ympäristöä roskia etsien. Kun niitä havaitaan, syntyy kuin taikaiskusta polku roskaläjältä roskakorille, ja polku häviää kun roskatkin loppuvat.

    Ensimmäinen askel suunnittelussa on luoda agenttien perusmodulit. Näitä ovat liikkuminen, roskien käsittely ja törmäysten välttäminen, jotka toimivat rinnakkain:

    Liikkuminen ja törmäysten välttäminen kytketään siten että törmäysten välttäminen on tärkeämpää kuin liikkuminen. Lauma edellä kuvatun kaltaisia agentteja kykenee kyllä ratkaisemaan ongelman, mutta hyvin hitaasti. Satunnaisesta liikkumisesta johtuen roskien löytäminen ja korille vieminen ovat sattumanvaraisia tapahtumia. Jos agentteja lisätään, roskien löytäminen kyllä nopeutuu, mutta niiden saaminen korille ei helpotu.

    Systeemiin lisätään seuraavaksi gradienttikenttä (esim. äänisignaali), joka on voimakkaimmillaan roskakorin vieressä ja heikkenee siitä poispäin mentäessä. Gradienttikenttää käytetään ohjaamaan agentit suoraan takaisin roskakorille, ja myös pitämään ne tietyn alueen sisällä. Tämän johdosta agenttiin voidaan lisätä kaksi moodia, jotka määräävät kaksi uutta käyttäytymistyyppiä:

    Nämä liikkeet sijoittuvat hierarkiassa väistämisen ja satunnaisen liikkeen välille. Moodi määrätään järkevällä tavalla (ohitetaan tässä), jotta agentit päätyvät roskakorille kuljettaessaan roskia ja menevät poispäin etsimään uusia kun heillä ei ole mitään kannettavaa. Jos korin ympäristössä ei ole yhtään roskia, agenttiyhteisö liikkuu sen ympärillä jatkuvasti supistuvassa ja laajenevassa renkaassa.

    Viimeinen vaihe on itseorganisaation lisääminen yhteisöön. Kun yksi agentti löytää roskan halutaan että se voi kommunikoida muiden kanssa jotta nämäkin löytäisivät esiintymän. Tässä tapauksessa agentit käyttävät ympäristöä kommunikointiin jättämällä ja noukkimalla sieltä murusia seuraavasti:

    Lisäksi tarvitaan liikuminen murusten mukaan:

    Tämä liikkumiskäyttäytyminen sijoitetaan toiseksi tärkeimmäksi hierarkiassa. Simulointitulokset osoittavat että kaikkien roskien noutoaika on yhdellä agentilla laskenut 30000:sta 2500:aan ja 256 agentilla 8000:sta 1000:een. Systeemi on siis paitsi tehokas myös robusti. Se soveltuu useisiin eri ympäristöihin ja on taloudellinen kommunikaation ja laskennan suhteen. Toiminta syntyy agenttien ja gradienttikentän vuorovaikutuksen seurauksena: polkuja ei vahvisteta eksplisiittisellä ohjelmoinnilla, eikä niitä myöskään eksplisiittisesti pureta.

     


     

     7. YHTEENVETO

     

    Tässä esitelmässä on esitelty pääpiirteissään adaptiiviset autonomiset agentit, niiden valmistus ja käyttö. Tähän päivään mennessä agentit ovat onnistuneet todistamaan käyttökelpoisuutensa ongelmanratkaisumenetelminä ja tapana luoda tekoälyä. Todisteena on jos ei muu niin alan tutkimusprojektien ja julkaisujen lukumäärien räjähdysmäinen kasvu. Tällainen kehitys onkin tarpeen, sillä vaikka lukuisat periaatteet ja menetelmät ovat osoittaneet pätevyytensä, niiden parhaiden soveltuvuuskohteiden määrittäminen on pahasti kesken. Agenttien ei voida odottaa ratkaisevan kaikkia tekoälyn haasteita. Erityisesti tulisi tutkia kuinka monimutkainen käyttäytyminen syntyy yksinkertaisista tekijoistä ja mitkä ovat näin syntyneen käyttäytymisen rajoitukset.

     

     


    8. LÄHDELUETTELO

     

    [1] Maes, Pattie (1995) Modeling Adaptive Autonomous Agents. Kirjassa Langton, Christopher (toimittaja): Artificial Life: An Overview. MIT Press, Cambridge, Massachusetts.

     [2] Kaelbling, Leslie P. (1991) Foundations of Learning in Autonomous Agents. Robotics and Autonomous Systems 8 (1991), pp.131-144. North-Holland.

    [3] Demazeau, Yves ja Müller, Jean-Pierre (1990) Decentralized Artificial Intelligence. Proceedings of the First European Workshop on Modelling Autonomous Agents in a Multi-Agent World. North-Holland, Amsterdam, Alankomaat.

    [4] Steels, Luc (1990) Cooperation between Distributed Agents through Self-Organisation. Proceedings of the First European Workshop on Modelling Autonomous Agents in a Multi-Agent World. North-Holland, Amsterdam, Alankomaat.