Evoluutio - (kriittinen analyysi) 2

Marko Grönroos (magi@iki.fi), 2000

Osa III: Kausaalinen evoluutiotutkimus: evoluutio organismien tasolla

Luku 6. Makroevoluutio

6.2. Teknisten systeemien evoluutio (s. 84)

Kommentoin tätä kappaletta hieman enemmän, koska aihe on omaa erikoisalaani. Kappaleen sisällöstä huomaa selvästi, että kirjoittajat eivät tunne alaa alkuunkaan ja ovat noin 40 vuotta ajasta jäljessä.

Otsikosta huolimatta kappaleessa puhutaan itse asiassa evolutiivisista algoritmeista, mutta kutsutaan niitä oudosti vain "teknisten systeemien optimointikeinoksi", aivan kuin niitä ei käytettäisi muuhun kuin triviaaleihin mekaanisten laiteosien parametrisäätöihin. Evolutiivisten algoritmien tutkimus laajeni räjähdyksenomaisesti noin 10 vuotta sitten ja on nykyään eräs johtavia tekoäly- ja tekoelämätutkimuksen, optimoinnin ja automaattisen suunnittelun menetelmiä.


Kuva 1: Evolutiivisen algoritmin suunnittelema ''mahdollisimman pitkä'' Lego-silta. Huomaa vastapaino. Kyseessä ei ole pelkkä kiinteiden parametrien ''optimointi'', vaan täydellinen ilmaisunvapaus legorakenteen muodossa. (Funes)

Kirjan käyttämä termi ''evoluutiostrategia'' viittaa saksalaisten Rechenbergin ja Schwefelin 1960-luvulla kehittämään menetelmään optimoida reaalilukuparametreja, joka oli ensimmäinen ''evolutiivinen'' menetelmä. Myös kirjan antama esimerkki evoluutiostrategian käytöstä levyn ilmanvastuksen optimoinnissa on eräs Rechenbergin sovellus 60-luvulta. Tämä alkeellinen menetelmä oli hyvin rajoitettu - populaation koko oli vain kaksi yksilöä - eikä sitä nykyään oikeastaan edes kutsuttaisi evolutiiviseksi algoritmiksi (se on lähempänä nk. simulated annealing -menetelmää).

Myöhemmin evoluutiostrategiat laajennettiin toimimaan myös suuremmilla populaatioilla ja niihin lisättiin muitakin evolutiivisia operaatioita kuin vain mutaatiot ja tämä kehitys osoittautui varsin hyväksi ratkaisuksi. Evoluutiostrategiat ovat kuitenkin vain hyvin, hyvin pieni osa evolutiivisten algoritmien tutkimusta, ja itse asiassa hyvin harvinainen ja epätyypillinen osa (nk. geneettiset algoritmit ovat paljon yleisempiä).

Scherer kirjoittaa:

''Kun evoluutiostrategiaa käytetään teknisiin systeemeihin, lähdetään liikkeelle jo olemassa olevasta perusrakenteesta.''

Kuva 2: Erilaisia evolvoituja olioita, joille annettiin tehtäväksi uida mahdollisimman tehokkaasti. Toiset olennot opetettiin kävelemään, jotkut hyppäämään, jotkut taas kilpailemaan toistensa kanssa maalin koskettamisessa. Sekä olioiden muoto että liikkumista ohjaava keinohermoverkko ovat täysin tietokoneen evolutiivisesti suunnittelemia. Eri oliot kehittivät täysin erilaisia liikkumatapoja, kuten kiemurtelua, lentämistä, soutamista ja erilaisia propelleja. Liikkuminen oli hätkähdyttävän luonnollisen näköistä. (Sims, 1994).


Kuva 3: Eräs toinen tutkimus, jossa evolvoitiin oikeita käveleviä robotteja. Jälleen sekä robotin muoto että logiikka ovat evolvoituja. Tämä ''Tetra'' on yksi monista evolvoituneista rakenteista ja liikkumismuodoista. (Pollack).

Alkeellisessa evoluutiostrategiassa näin tehdäänkin, mutta tämä ei pidä paikkaansa yleisemmällä tasolla. Geneettisessä ohjelmoinnissa lähdetään täysin satunnaisesta tai nollapituisesta ohjelmasta. Tämä ohjelma voi sitten evolvoitua hyvinkin monimutkaiseksi ohjelmaksi, joissain tapauksessa jopa paremmaksi kuin yksikään ihmisohjelmoijan tekemä.

Tietämättömyydessään kirja kuitenkin tuomitsee:

''Samalla on kuitenkin tullut yhä selvemmäksi tämän tyyppisen evoluutio-optimoinnin rajat. Jos ei etukäteen määritellä sopivaa perusrakennetta, sopivaa mutaatio- ja rekombinaatiomekanismia ja muutosnopeuksia, sopivaa valintakriteeriä ja sopivaa populaation kokoa, ei toivottua optimointia tapahdu.''
Evolutiiviset algoritmit eivät ole kovin herkkiä parametriensä suhteen, mitä nimenomaan pidetään niiden etuna. Mitä tulee mutaatio- ja rekombinaatiomekanismeihin, sovelletaan niihin usein itseadaptaatiota, jolloin myös nämä parametrit koodataan algoritmin itsensä optimoitavaksi. Näin tapahtuu myös biologisessa evoluutiossa. Valintakriteerien itseadaptaatiota ei tietääkseni ole toteutettu, vaikka biologisilla organismeilla sitä ilmeisesti tapahtuukin. Populaation kokoa taas on säädetty mm. erityisellä metaevoluutio-prosessilla, jossa evoluutioparametria säädetään toisella evolutiivisella algoritmilla. Myös erilaisia alipopulaatio-rakenteita on käytetty. Populaation koko on kuitenkin resurssitekijä, joka ei ole (ainakaan merkittävästi) geneettisesti määrätty biologisissakaan systeemeissä, vaan vain ympäristön asettama rajoitus.

Esitetystä olkiukkomaisesta evolutiivisten algoritmien kuvauksesta päätellään:

''Hyvän evoluutio-ohjelman suunnittelemiseksi tarvitaan siis paljon tietotaitoa. Täsmälleen samanlaista tietoa tarvittaisiin myös makroevolutiivisille tapahtumille. Tälle tiedolle ei kuitenkaan ole näköpiirissä mitään luonnollista lähdettä.''
Hyvän evoluutio-ohjelman suunnittelemiseksi voidaankin tarvita paljon tietotaitoa, mutta huonokin evoluutio-ohjelma voi evolvoitua hyväksi; juuri näin tapahtuu algoritmien itseadaptaatiossa. Siten tietotaitoakin syntyy evoluution myötä. Biologisissa järjestelmissä, jotka ovat itsessään täysin rakentuneet evoluutiolle alttiina olevista rakenneosista - tietokonealgoritmit yleensä eivät ole - tämän itseadaptaation mahdollisuus on itsestäänselvää.

Avidan ja Tierran kaltaisissa tekoelämäsysteemeissä ''evoluutio-ohjelmat'' itse evolvoituvat kaikilta osin. Tulokset ovat olleet hämmästyttäviä. Eräiden tälläisten virtuaaliprosessoreiden konekieli (''keinokemia'') on sellainen, että itsereplikaatioon kykeneviä ja evolvoituvia ohjelmia syntyy jopa täysin sattumalta. Ihminen ei tässä tapauksessa ole tehnyt mitään osaa kyseisestä evoluutio-ohjelmasta.

Kappaleen lopuksi kuitenkin todetaan vielä:

''Makroevoluutio ei voi edetä tietyn rakenteen optimoinnin kautta.''
Evolutiiviset algoritmit eivät yleisesti ottaen ole ''vain'' optimointialgoritmeja. Toisaalta monet näkevät biologisenkin evoluution ''vain'' optimointina, mutta optimointi-nimike on hämäävä, koska se viittaa jo olemassaolevien rakenteiden paranteluun. Niin biologisessa evoluutiossa kuin monissa evolutiivisissa algoritmeissakin (mm. geneettisessä ohjelmoinnissa) syntyy evoluution myötä myös uusia rakenteita ja toiminnallisuuksia. Kyse ei siten ole ''vain'' optimoinnista.


Kuva 4: Geneettisellä ohjelmoinnilla ja generatiivisella kieliopilla evolutiivisesti suunniteltu suodatinpiiri, joka on yhtä hyvä kuin ihmisen suunnittelema ja patentoima piiri (Koza, 1997).

Lähteitä:
http://www.demo.cs.brandeis.edu/pr/buildable/long_bridge/
http://golem03.cs-i.brandeis.edu/results.html
http://www.hip.atr.co.jp/~degaris/papers/index.html
http://www.genarts.com/karl/


Pääsivu Takaisin Last modified: Thu Oct 26 08:31:04 EEST 2000