• Ei tuloksia

Soluautomaattisimulointi

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Soluautomaattisimulointi"

Copied!
90
0
0

Kokoteksti

(1)

Juha Haataja

SOLUAUTOMAATTISIMULOINTI

Diplomityö tehty systeemi- ja operaatiotutkimuksen syventymiskohteessa Työn valvoja professori Raimo P. Hämäläinen

Työn ohjaaja professori Risto Nieminen

Espoo 1.2.1991

(2)

Tekijä: Juha Haataja

Työn nimi: Soluautomaattisimulointi

Päivämäärä: 1.2.1991 Sivumäärä: 90

Osasto: Tietotekniikan osasto Professuuri: Mat-2

Matematiikan ja systeemianalyysin laitos Sovellettu matematiikka

Työn valvoja: professori Raimo P. Hämäläinen Työn ohjaaja: professori Risto Nieminen

Soluautomaatit ovat dynaamisia systeemejä, jotka soveltuvat mm. fysikaalisten proses­

sien mallinnukseen ja simulointiin erityisesti massiivisesti rinnakkaisten tietokonearkki­

tehtuurien yhteydessä.

Diplomityössä selvitettiin soluautomaattien teoriaa, tutkittiin niiden ominaisuuksia sekä visualisoitiin niiden käyttäytymistä. Saavutetut tulokset pyrittiin esittämään tiiviissä mutta kuitenkin kattavassa muodossa. Kirjallisen esityksen lisäksi tuotettiin noin viiden minuutin mittainen soluautomaattimalleja havainnollistava tietokoneanimaatio.

Diplomityö tehtiin Tieteellisen laskennan palvelussa (TLP), joka on Valtion tietokone­

keskuksen yhteyteen sijoitettu Suomen kansallinen supertietokonekeskus. Suurin osa työhön liittyvistä ohjelmointityöstä ja simulaatioista on tehty Silicon Graphicsin Iris- grafiikkatyöasemilla. Ohjelmointi on tehty pääosin C-kielellä, ja visualisointiin on käytetty Silicon Graphicsin GL-kirjaston funktioita. Joitakin C-ohjelmia on sovitettu TLP:n Cray- superkoneelle erilaisiin analyysitarkoituksiin. Lisäksi työn yhteydessä on käytetty koemie­

lessä Connection Machine -rinnakkaiskonetta ja sen FORTRAN-kieltä soluautomaattien simuloimiseen.

Työssä havaittiin soluautomaattien tarjoavan mielenkiintoisen ja lupaavan mallinnus- tavan esim. hydrodynamiikassa. Toisaalta soluautomaattitutkimus on sekä teorian että käytännön osalta vielä alkuvaiheissa, vaikka joitakin perustavia tuloksia onkin saatu selvitetyksi. Kiinnostusta soluautomaattitutkimukseen lisää ennen kaikkea rin­

nakkaislaskentaan sopivien mallien kasvava merkitys vaativassa tieteellisessä ja teknil­

lisessä laskennassa.

(3)

Sisällysluettelo

1 Alkusanat _____________________________ 1 2 Mitä ovat soluautomaatit?___________________________ 2

2.1 Esimerkki kaksiulotteisesta soluautomaatista ---2 2.2 Soluautomaatin formaali määritelmä__________________________ 3 2.3 Soluautomaatti mallitusvälineenä________ _________________ —3 2.4 Fysikaalisten systeemien mallitus__________________________ _4 2.5 Soluautomaatit laskennallisina systeemeinä_____________________4 2.6 Soluautomaattilaskennan käytännön toteutukset--- 5

3 Soluautomaattitutkimuksen historiaa_________________ 7

3.1 von Neumann ja itseään monistavat koneet_____________________ 7 3.2 Soluautomaattipelien kausi_________________________________ 8

3.3 Hahmontunnistussovellukset____________ 9

3.4 Soluautomaattitutkimuksen murroskausi 1980-luvulla____________ 9

4 Yksiulotteiset soluautomaatit________________________ 11

4.1 Määritelmiä__________ _____________ _____________________11 4.2 Soluautomaattisääntöjen koodinumerot --- 12 4.3 Yksiulotteisten soluautomaattien perusmalleja__________________16 4.4 Soluautomaattien luokittelu__________ _____________________ 16

5 Kaksiulotteiset soluautomaatit_______________________ 20

5.1 Määritelmiä____________________________________________ 20

5.2 Life-peli______________________________ 21

5.3 Rajajoukoista____________________ 23

5.4 Kaksiulotteiset hilakaasut_________________________________ 24

6 Soluautomaatit verrattuina muihin systeemeihin_______26

6.1 Dynaamisten systeemien hierarkia____________________________26 6.2 Dynaamiset hilasysteemit_______ _________________________ 26 6.3 Kaaos dynaamisessa hilasysteemissä________________________ 27

(4)

6.4 Dynaamisen systeemin diskretointi___________________________28

7 Soluautomaatit tietojenkäsittelysysteemeinä__________ 31

7.1 Automaattien teoriaa______________________________________31 7.2 Soluautomaattien tilastolliset ominaisuudet_____________________31 7.3 Soluautomaattien algebralliset ominaisuudet____________________ 33

8 Soluautomaattien käyttökohteita____________________ 3 6

8.1 Rinnakkaiskoneet_______________________________________ 36 8.2 Massiivisesti rinnakkaiset koneet___________________________ 36 8.3 Connection Machine______________________________________37 8.4 Soluautomaattien simulointi Connection Machinessa____________ 38 8.5 Soluautomaatit tietokonetekniikassa__________________________ 39

9 Kriittiset ilmiöt___________________________________ 40

9.1 1/f-skaalautuvuus______________ 40

9.2 Kriittisen ilmiön määritelmä ja terminologiaa__________________ 41 9.3 itseorganisoituvat kriittiset ilmiöt _______________________ 42

10 Soluautomaattimalleja______________________________43

10.1 Simulaatioiden toteutus___________________________________ 43

10.2 Simulaatio-ohjelmat_______ 44

10.3 Enemmistösääntö_____ _________________________________ 45 10.4 Hitaan jäähtymisen malli__________________________________ 46 10.5 Q2R-malli________________________ _____________________48 10.6 Neuronimalli__________ _________________________________ 51 10.7 DLA-malli_____________________________________________ 53

10.8 Hiekkakekomalli______ 56

10.9 Metsäpalomalli______ __________________________________ 61

11 Yhteenveto _64

12 Sanasto 66

13 Kirjallisuutta______________________________________68

13.1 Soluautomaatit__________________________________________68 13.2 Matematiikka ja fysiikka__________________________________ 68 13.3 Visualisointi ja tietojenkäsittely_____________________________ 69 13.4 Käsikirjoja ja oppaita_____________________________________69

14 Viiteluettelo 70

(5)

16 Kuvaliitteet 77

(6)

1 Alkusanat

“Mitä ovat soluautomaatit? Miten ne käyttäytyvät? Mitä niillä tehdään?”

Nämä ovat muutamia niistä kysymyksistä, joihin pyrin tässä työssä vas­

taamaan. Työ on tehty Tieteellisen laskennan palvelussa (TLP) Espoon Ota­

niemessä.

Tämä kirjoitus on toisaalta yleisluontoinen kuvaus soluautomaateista, toisaalta ajan tasalla oleva tutkimus soluautomaattiteorian tilasta. Yleisluon­

toinen osuus oli tyypillinen selvitys- ja kuvaustehtävä; tutkimusosuuteen kuului paljon oma-aloitteista työtä: teorian ja käytännön opettelua, ohjel­

mointia (ja ohjelmoinnin opettelua!), tulosten visualisointia ja analyysiä.

Kiijoituksen painopiste on erityyppisten soluautomaattimallien esittelyssä, mihin liittyy suurin osa tekemästäni ohjelmointityöstä. Lisäksi työn yhtey­

dessä on tehty video, joka havainnollistaa soluautomaattimalleja.

Toivottavasti tästä teoksesta on hyötyä kaikille soluautomaateista kiinnos­

tuneille—mielellään yhtä lailla tiedemiehille kuin maallikoillekin. Ainakin itselleni soluautomaatteihin perehtyminen on tarjonnut ja tarjoaa runsaasti aivotoiminnan virikkeitä.

Kiitokset TLP:n tieteelliselle johtajalle, professori Risto Niemiselle työn oh­

jauksesta ja suuntaamisesta mielenkiintoisille alueille. Työtovereilleni esi­

tän kiitokset kaikenkattavasta avusta, diplomityötä koskevista kommenteista ja ehdotuksista sekä ennen kaikkea inspiroivasta työilmapiiristä.

Otaniemessä 1.2.1991

Juha Haataja

(7)

2 Mitä ovat soluautomaatit?

Soluautomaatit (engl, “cellular automata” eli CA, yks. “cellular automa­

ton”) ovat diskreettejä dynaamisia systeemejä, jotka koostuvat joukosta säännölliseksi hilaksi jäljestettyjä soluja. Kaikki solut ovat samanlaisia, ja ne ovat yhteydessä toisiinsa naapurisuhteen perusteella. Solua ja sen naapu­

reita kutsutaan naapuristoksi. Kunkin solun mahdolliset tilat ovat diskreette­

jä; tiloja on tyypillisesti vain muutama. Solun nykyistä tilaa käytetään syöt­

tötietona naapuriston uusia tiloja laskettaessa.

2.1 Esimerkki kaksiulotteisesta soluautomaatista

Kuvassa 2.1 on esitetty eräs kaksiulotteinen soluautomaatti. Soluautomaatti- hila on suorakulmainen ja kullakin solulla on neljä naapuria (ns. “von Neu­

mann -naapuristo”). Muita mahdollisuuksia kaksiulotteisessa tapauksessa olisi lukea naapuristoon mukaan myös diagonaalisesti lähinnä olevat solut (ns. “Mooren naapuristo"), tai käyttää vaikkapa heksagonaalista hilaa.

Soluautomaatin nykyisestä konfiguraatiosta saadaan soluautomaatin seu- raava konfiguraatio päivittämällä kaikkien solujen arvot yhtä aikaa. Päivit­

tämiseen käytetään ns. soluautomaattisääntöä, joka tuottaa kunkin solun uuden tilan solunaapuriston vanhojen tilojen perusteella. Soluautomaatti- sääntö voisi laskea vaikkapa summan solunaapuriston tiloista ja muuttaa

Naapurisoluja

Solunaapuriston keskussolu

Kuva 2.1 Kaksiulotteisen soluautomaatin rakenne. Kullakin solulla on neljä naapuria.

(8)

solun arvoa saadun tuloksen perusteella. (Tällaista summaussääntöä kutsu­

taan totalistiseksi.)

2.2 Soluautomaatin formaali määritelmä

Soluautomaatit ovat diskreettejä dynaamisia systeemejä, jotka koostuvat komponenteista (G,Q,V/,t)‘

Soluavaruus G on yleensä säännöllinen hila, esim. Z tai Z2.

Tila-avaruus Q on diskreetti—esim. Z:n osajoukko (0,1}.

Naapuristo V¡ on määritelty samoin kaikille soluavaruuden soluille i e G.

Soluautomaattisääntö / laskee kunkin solun tilan hetkellä r-f-1 solu- naapuriston konfiguraatiosta hetkellä t e {0,1,...} yhtä aikaa soluava­

ruuden kaikille soluille ie G:

*/+1 =/(*/,>••••

xjl h

..

j’e Vi missä s on naapuristojen V,- koko sekä

Xj e Q ja (x7l,..., xjs) e Q5.

(2.1)

2.3 Soluautomaatti mallitusvälineenä

Osittaisdifferentiaaliyhtälöillä kuvattavissa oleva fysikaalinen systeemi on mallitettavissa soluautomaateilla ottamalla käyttöön differenssiesitysmuoto ja diskreetit muuttujat. Erityisesti hydrodynamiikan yhtälöiden (Navier- Stokes ym.) ja kuljetusyhtälöiden (Boltzmann jne.) soluautomaattisimulaa- tioita on tutkittu varsin runsaasti 1980-luvulla [1,2,3].

Soluautomaatin käyttäytyminen voi olla sen yksinkertaisesta rakenteesta huolimatta kaikkea muuta kuin epätriviaalia, erityisesti silloin kun soluauto­

maattisääntö on epälineaarinen. Soluautomaatit ovatkin käyttökelpoinen vaihtoehto tutkittaessa juuri epälineaarisia prosesseja—lisäksi näitä ilmiöitä voi olla erittäin vaikea mallittaa perinteisillä menetelmillä. Epälineaaristen ilmiöiden käyttäytymistä kuvataan muuttamalla prosessi soluautomaatti- simulointiin soveltuviksi diskreeteiksi askeleiksi.

(9)

tarjoavat mm. lehtien ja oksastojen rakenteet, eräät kiteytymisilmiöt sekä biologisten populaatioiden kasvaminen. (Fraktaalisia soluautomaatteja ana­

lysoidaan viitteessä [4]. Kiteytymisilmiöitä kuvataan viitteessä [5] s. 305- 312.)

2.4 Fysikaalisten systeemien mallitus

Fysiikan näkökulmasta soluautomaatti voidaan mieltää systeemin diskre- toinniksi ajassa, paikassa ja tila-avaruudessa. Täten soluautomaatti voi kuvata esim. partikkelien törmäyksiä ja vaikkapa energian vaihtoa. Solun tila voi vastata hiukkasen viritysastetta tai energiaa. Erityyppisiä säily­

mislakeja ja symmetrioita voidaan sisällyttää soluautomaattimallin sään­

töihin ja reunaehtoihin [2,5].

Naapurisolujen vuorovaikutuksiin perustuva malli soveltuu oivallisesti monien prosessien kuvaamiseen. Suurta haittaa ei yleensä ole myöskään solujen tilajoukon pienuudesta: soluautomaatin makroskooppinen käyttäy­

tyminen muistuttaa jatkuvia systeemejä, mikäli automaatin koko on tarpeeksi suuri. Fysikaalisille systeemeillehän on usein ominaista, että yksit­

täisen hiukkasen käyttäytymistä ei voida edes mitata tarkasti, mutta makro­

skooppisia ominaisuuksia sen sijaan voidaan havaita ja jopa ennustaa.

Koska systeemin kunkin solun seuraavaan tilaan vaikuttavat vain solu- naapuriston solujen nykyiset tilat, voidaan kaikkien solujen tilat päivittää toisistaan riippumatta samanaikaisesti. Simulaatiot saadaan siis tehokkaiksi erityisesti rinnakkaisuuteen perustuvissa tietokonearkkitehtuureissa.

2.5 Soluautomaatit laskennallisina systeemeinä

Edellä esitettyjen esimerkkien valossa soluautomaatteja voi pitää rinnak­

kaistietokoneina. Soluautomaattien laskentaominaisuuksia onkin tutkittu runsaasti ([2] s. 57-72). On osoitettu, että eräät soluautomaatit kykenevät universaalilaskentaan eli simuloimaan mitä tahansa tietokonetta (tällainen

(10)

soiuautomaatti on esim. Life-peli). Joitakin soluautomaatteja voidaan pitää yleiskäyttöisinä tietokoneina—vaikkakin jonkin tavallisen tietokoneen si­

mulointi esim. Life-pelillä onkin epäilemättä ajan haaskausta. Soluautomaa- teille sopivia algoritmeja on etsitty runsaasti, ja onpa soluautomaateista haettu yleismallia rinnakkaislaskennallekin [6].

Ensi näkemältä äärimmäisen yksinkertaisilta vaikuttavat soluautomaatit saattavat siis mallittaa hyvin monimutkaisia ilmiöitä. Soluautomaatin käyt­

täytymisen moninaisuus tarkoittaa usein myös sitä, että soluautomaatin lopputilojen laskemiseen ei ole yleistä “oikopolkua” vaan soluautomaatin evoluutio on simuloitava kokonaisuudessaan. Soluautomaattien tutkimiseen vaikuttaa myös erilaisten soluautomaattisääntöjen suuri lukumäärä (esim.

kaksiulotteisia ulkototalistisia soluautomaattisääntöjä on 0,3 miljoonaa kpl

—ks. kappale 5.1).

Soluautomaattilaskennan käytännön toteutukset

Kiinnostusta soluautomaattimallien käyttöön lisää se, että simulointi voi­

daan tehdä ilman pyöristysvirheitä, koska tila-avaruus on diskreetti. Las­

kenta on myös tehokasta, jos käytetään nopeita bittitason operaatioita.

Tietokoneen muistinkäytössä ei myöskään yleensä tule ongelmia, sillä solu- automaattisäännöt ovat paikallisia ja tarvittavat arvot ovat muistissa lähek­

käin.

Perinteiset peräkkäisarkkitehtuuriin perustuvat tietokoneet ovat soluauto­

maattien simuloinnissa luonnollisesti paljon tehottomampia kuin rinnakkais­

tietokoneet. Varsinkin massiivisesti rinnakkaiset ns. SIMD-arkkitehtuuriin (Single Instruction, Multiple Data) pohjautuvat koneet soveltuvat erinomai­

sesti soluautomaattien laskentaan. Mm. Connection Machine -rinnakkais­

kone perustuu nimenomaan soluautomaattityyppiseen tietojenkäsittelyperi- aatteeseen [6].

Osittaisdifferentiaaliyhtälöiden ratkomista numeerisesti tietokoneessa voi pitää myös soluautomaattilaskentana. Osittaisdifferentiaaliyhtälöhän tyypil­

lisesti diskretoidaan ajassa ja paikassapa lisäksi äärellinen laskentatarkkuus (esim. 32 bittiä) merkitsee myös tila-avaruuden diskretointia. Näin ollen osittaisdifferentiaaliyhtälö on korvattu soluautomaatilla. Tällä soluautomaa-

(11)

Yleensä soluautomaattilaskennassa pyritään mahdollisimman yksinkertai­

siin soluihin. Ääritapauksessa soluilla on vain kaksi tilaa (esim. 0 ja 1), jolloin solun tila voidaan kuvata yhdellä bitillä. Tällaisetkin soluautomaatit kykenevät simuloimaan suurta joukkoa ilmiöitä. Kaksiulotteisesta tapauk­

sesta esimerkkejä ovat mm. Ising spin -mallit. Ising-mallissa solun tila kuvaa spinin suuntaa, joka saattaa muuttua tietyllä solunaapuriston tilasta riippuvalla todennäköisyydellä. Sopivista alkuarvoista lähdettäessä Ising- malli hakeutuu tasapainotilaan, joka kuvaa fysikaalisen systeemin termistä tasapainoa [7].

Houkutuksena soluautomaattien käytölle laskentaan on niiden yksinker­

taisuus ja paikallisuus: ne saattavat mahdollistaa prosessointielementtien rakentamisen jopa molekyylitason komponenteista. Tällöin tietokoneet voi­

sivat olla nykyisiin systeemeihin nähden useita kertaluokkia tehokkaampia.

Toteutusongelmana ovat tällaisille järjestelmille tyypilliset kvanttimekaa­

niset epävarmuudet ja muut häiriöt. Toisaalta myös kvanttimekaanisia solu- automaatteja on jossain määrin tutkittu [8,9,10].

Suurta mielenkiintoa on herättänyt mahdollisuus rakentaa soluautomaattien simulointiin erikoistunut erittäin nopea tietokone. Tällaisia koneita on jo olemassakin—mm. Margoluksen ja Toffolin rakentama CAM-6, jonka käyttöä kuvataan viitteessä [11]. CAM-6 on PC:hen liitettävä kortti, joka kykenee simuloimaan kaksiulotteisia soluautomaatteja Cray-superkoneen nopeudella.

Viitteessä [12] on pohdittu tämänhetkisen teknologian rajoja soluautomaat- tikoneen rakentamisessa. Alustavien arvioiden mukaan periaatteessa voitai­

siin rakentaa soluautomaattikone, jonka nopeussuhde Cray-superkoneeseen nähden olisi luokkaa 1# tai enemmän—eli yksi kone vastaisi lähes miljar­

dia Craytä. Tällainen laite mahdollistaisi mm. suurten kolmiulotteisten hila- kaasumallien laskemisen.

(12)

von Neumann ja itseään monistavat koneet

Soluautomaattien idean keksivät vuonna 1948 J. von Neumann ja S. Ulam [13]. von Neumann tunnetaan ennen kaikkea perinteisen tietokonearkkiteh­

tuurin kehittäjänä—ns. von Neumann -arkkitehtuurin, jota käytetään nyky­

ään rinnakkaislaskennan mahdollisuuksia kuvattaessa lähes kirosanana, von Neumann kuitenkin tunsi peräkkäisarkkitehtuurin pullonkaulan eli sen ettei tällaisen tietokoneen nopeutta voi rajatta kasvattaa. Tämän vuoksi hän oli kiinnostunut myös rinnakkaislaskennan mahdollisuuksista.

Tietokonearkkitehtuurien lisäksi von Neumann tutki muitakin asioita. Hän pyrki Ulamin kanssa mm. mallittamaan biologista lisääntymistä eli luomaan

“itseään monistavan koneen”. Onkin varsin vaikeaa luoda systeemi, joka kykenee tuottamaan kopioita itsestään biologisten olioiden tapaan, von Neu­

mann ja Ulam käyttivät systeemeistään termiä “cellular spaces” mutta myöhemmin vakiintui käyttöön termi “cellular automata” (CA) eli soluautomaatit (yks. “cellular automaton”).

Vuosina 1952-53 von Neumann sai suunnitelluksi soluautomaatin, joka kykeni universaalilaskentaan ja itsensä kopiointiin. Kyseessä oli kaksi­

ulotteinen soluautomaatti, jonka soluilla oli 29 tilaa. Näillä tiloilla on mahdollista toteuttaa loogiset perusoperaatiot, viestinvälitys sekä rakentei­

den luominen ja tuhoaminen. Alkeellisemmista osasista voidaan edelleen koota korkeamman tason rakenteita, ja lopulta itsensä kopiointiin ja univer­

saalilaskentaan kykenevä soluautomaatti.

Edgar Codd yksinkertaisti ja paransi von Neumannin soluautomaatin raken­

netta vuonna 1965—esimerkiksi tarvittavien tilojen lukumäärä pieneni kah­

deksaan. Mitään suurta käytännön merkitystä von Neumannin ja Coddin soiuautomaateilla ei kuitenkaan ole ollut—on arvioitu, että niiden täydelli­

seen simuloimiseen tarvittaisiin kymmenistätuhansista soluista koostuva so- luautomaattihila ([2] s. 57-72).

(13)

tille [14,15]. Viime aikoina on saatu uusia tuloksia myös yksiulotteisten soluautomaattien universaalilaskentaominaisuuksista [16].

3.2 Soluautomaattipelien kausi

von Neumannin ja Ulamin soluautomaateissa keskeistä oli itsensä kopiointi sekä universaalilaskentaominaisuudet. Jatkoa tälle on John Conwayn vuon­

na 1970 keksimä Life-peli, joka on kaksiulotteinen soluautomaatti. Vaikka Lifen soluilla on vain kaksi tilaa, se kykenee universaalilaskentaan.

Life-soluautomaattia voi pitää eräänlaisena yhden pelaajan pelinä. Lifea on tutkittu varsin paljon, ja se lieneekin ainoa yleisesti tunnettu soluautomaatti.

Syynä tähän lienee 1970-luvun alussa Scientific American -lehdessä jul­

kaistu Life-peliä käsittelevä artikkeli [17]. Life jäi kuitenkin jotakuinkin eri­

koistapaukseksi—soluautomaattitutkimus sai yleisesti ottaen 1970-luvulla varsin vähän huomiota.

1980-luvulla on yleinen kiinnostus soluautomaatteihin herännyt uudestaan.

Taustana tähän voi nähdä mikrotietokoneiden vallankumouksen, jonka ansiosta kenellä tahansa on mahdollista hankkia käyttöönsä yleiskäyttöinen, kohtuullisen vaivattomasti ohjelmoitava tietokone. Luonnollisesti suurin vaikutus soluautomaattien popularisointiin on valmisohjelmilla—niitä on nykyisin saatavilla yksinkertaisista Life-pelin simulaattoreista monipuolisiin ohjelmoitaviin “soluautomaattilaboratorioihin” [11].

Ilmeisesti ennen kaikkea soluautomaattien simuloinnin yhdistäminen näyt­

tävään värigrafiikkaan on vaikuttanut kiinnostuksen uudelleen heräämiseen.

Kehittyneet visualisointivälineet taijoavat luonnollisesti myös tieteelliselle tutkimukselle uusia mahdollisuuksia soluautomaattien havainnollistami­

seen.

Soluautomaattien esiintuomisessa on viime aikoina jälleen kunnostautunut Scientific American -lehti, jossa on julkaistu useita erilaisia soiuautomaat­

teja esitteleviä artikkeleita [18,19,20]. Osaltaan tämän voi katsoa kuvasta­

van myös soluautomaattitutkimuksen murrosvaihetta—nyt osataan soveltaa

(14)

soluautomaattimalleja moniin erityyppisiin kohteisiin, ja osalla näistä sovelluksista on popularististakin arvoa. Tässä on kuitenkin vaarana soluautomaattien leimautuminen pelkiksi pelisysteemeiksi.

3.3 Hahmontunnistussovellukset

Erityisesti kaksiulotteisia soluautomaatteja on käytetty runsaasti hahmon- tunnistussovelluksissa ja kuvankäsittelyssä. Kuvankäsittelytehtävässä laske­

taan soluautomaateilla tavallisesti vain yksi tai muutama sukupolvi. Lähes­

tymistavalla on etunsa lähinnä siksi, että hyvin yksinkertaisista piireistä voi­

daan rakentaa tiettyä soluautomaattialgoritmia simuloivia systeemejä. Täl­

laiset piirit pystyvät suorittamaan tehokkaasti esim. kuvankäsittelytehtäviä, sillä soluautomaattien laskenta on äärimmäisen hyvin rinnakkaistettavissa.

Siis yksinkertaisistakin komponenteista on rakennettavissa tehokkaita (ja halpoja!) kuvankäsittelijöitä—tietenkin helpoiten johonkin tiettyyn vakioi­

tuun tehtävään.

Erityisesti 1970-luvulla tutkittiin runsaasti soluautomaattien kuvankäsittely- ominaisuuksia [21]. Ns. perseptronit ovat esimerkki soluautomaattityyppi- sestä hahmontunnistimesta [22]. Nykyisin hermoverkoilla ratkotaan monimutkaisiakin hahmontunnistustehtäviä.

3.4 Soluautomaattitutkimuksen murroskausi 1980-luvulla

Alkuaikojen soluautomaattipelit ja 1970-luvun hahmontunnistussovellukset näyttivät loppujen lopuksi johtavan umpikujaan. Jonkinlaisen lähtölau­

kauksen soluautomaattien uudelle tulemiselle voi sanoa tapahtuneen Step­

hen Wolframin ansiosta 1980-luvun alussa.

Wolfram tunnetaan nykyisin parhaiten Mathematica-ohjelmiston kehittä­

jänä, mutta tätä ennen hän tutki mm. soluautomaatteja. Wolfram käytti tutkimuksissaan informaatioteorian, tilastotieteen ja tietojenkäsittelyteorian menetelmiä ja kykeni johtamaan muutamia konkreettisia tuloksia [5].

(15)

100 kpl. Tämä soluautomaatti tuottaa fraktaalista rakenteita.

Wolfram havaitsi, että yksiulotteiset soluautomaatit kykenevät hämmäs­

tyttävän monimuotoiseen käyttäytymiseen. Hän tutki systemaattisesti yksi­

ulotteisia soluautomaatteja, joilla oli vain kaksi tilaa ja joiden naapuristo koostui keskussolusta ja sen kummallakin puolella olevasta naapurisolusta.

Tuloksena oli soluautomaattien luokittelu neljään luokkaan: homogeenisiin, jaksollisiin, kaoottisiin ja laskennallisiin soluautomaatteihin. Homogeeniset soluautomaatit päätyvät yhtenäiseen lopputilaan; jaksolliset soluautomaatit tuottavat paikallisia periodisia rakenteita; kaoottiset soluautomaatit tuottavat fraktaalisia (kuva 3.1) ja kaoottisia konfiguraatioita; laskennalliset soluauto­

maatit tuottavat monimutkaisia, mahdollisesti soluhilassa eteneviä rakentei­

ta, jotka voivat kyetä jopa universaalilaskentaan ([5] s. 91-125 ja s. 189- 231).

Mitään perustavaa laatua olevaa teoriaa edes näiden kaikkein yksinker­

taisimpien soluautomaattien käyttäytymisestä ei ole kyetty vieläkään luo­

maan. Wolframin esittämää soluautomaattien luokkajakoa sen sijaan on jonkin verran kyetty formalisoimaan ja selkeyttämään [23,24].

Soluautomaattien teorian ja sovelluksien uusi esiinmarssi johtunee siis siitä, että yksinkertaisimpienkin soluautomaattisysteemien on havaittu sekä aset­

tavan mielenkiintoisia haasteita että tarjoavan monipuolisia ja tehokkaita mahdollisuuksia systeemien mallitukseen.

(16)

4 Yksiulotteiset soluautomaatit

4.1 Määritelmiä

Yksiulotteinen soluautomaatti voidaan esittää jonona soluja. Soluja voi olla äärellinen tai ääretön määrä. Todellisesssa systeemissä soluja luonnollisesti on vain äärellisen monta. Solujono voi olla myös järjestetty renkaaksi, jolloin soluautomaatin käyttäytymiseen tulee usein tiettyä solujen lukumää­

rästä riippuvaa periodisuutta.

Seuraavassa merkitään yksiulotteisen soluautomaatin zrnnen solun tilaa ajanhetkellä t notaatiolla x¿‘.

Yksiulotteisen soluautomaatin soluautomaattisääntö/voidaan esittää solu- naapuriston solujen x¡ tilafunktiona seuraavasti:

У — f Гу Í yf X- I

(4.1)

Tässä on oletettu että solut on jäljestetty jonoksi ja kunkin solun naapureita ovat r kpl solun vasemmalla ja oikealla puolella olevaa solua. Jos solu­

automaattisääntö riippuu vain solujen tilojen summasta, sanotaan kyseessä olevan ns. totalistisen säännön (engl. “totalistic rule”). Tällöin sääntö voi­

daan esittää muodossa

□□□□

Naapurisolut

Kuva 4.1 Yksiulotteisen soluautomaatin rakenne. Periodiset reunaehdot.

(17)

Jos sääntö riippuu solun naapurisolujen tilojen summasta sekä solun omasta nykyisestä arvosta, on kyse ns. ulkototalistisesta säännöstä (engl. “outer totalistic rule”), joka voidaan esittää muodossa:

Г

(4.3) j=-r.j*0

Luonnollisesti totalistisen ja ulkototalistisen soluautomaatin määritelmät voidaan yleistää useampiulotteisiin tapauksiin. Kannattaa huomata, että to- talistiset soluautomaatit ovat ulkototalististen soluautomaattien osajoukko.

4.2 Soluautomaattisääntöjen koodinumerot

Wolfram otti käyttöön yksiulotteisten soluautomaattisääntöjen kuvaamisen koodinumerolla ([5] s. 91-125). Olkoon soluautomaatin soluilla k erilaista tilaa, jotka merkitään kokonaisluvuilla {0,1,...,£-1}. Tällöin totalistisessa tapauksessa r-säteisen naapuriston soluautomaattifunktion / argumenteiksi saadaan arvoja joukosta {0,...,(2г+1)(Ы)}. Soluautomaattisääntö määrää solun uuden arvon, eli sääntö kuvaa Z:n osajoukon {0,...,(2r+l)(£-l)}

joukolle {0,..., &-1}.

Soluautomaattisääntö voidaan koodata yhdeksi luvuksi, jonka numerot saa­

vat arvoja joukosta {0, ..., ¿-1} ja jonka pituus on (2/4-l)(fc-l)+l. Seu- raavassa tämän totalistisen koodin Ct määritelmä (n on solunaapuriston solujen tila-arvojen summa)

(2r+lX*-l)

Q= X *"/M . (4.4)

(18)

Jos soluautomaatti on binäärinen (k=2) eli solut saavat arvoja joukosta {0,1}, voidaan soluautomaattisääntö esittää binäärilukuna. Olkoon kyseessä vaikkapa binäärinen r=l soluautomaatti, jonka soluautomaattifunktio/on seuraava (n on solunaapuriston solujen tila-arvojen summa)

/N = 1, jos n = 1 tai 3, 0, muulloin.

Tällöin totalistiseksi koodiksi Ct saadaan:

(2r+lXt-l) 3

c,= £

k"m

= X 2"/M

71=0 71=0

= 23/[3] + ... + 2°/[0] = 23 + 21 = Ют = 10102

Koodin esityksestä binäärilukuna (1010) nähdään esimerkiksi, että kun solunaapuriston tilojen summa = 2, saa solu seuraavalla ajanhetkellä arvon 0 (kolmas numero oikealta).

Jos kyseessä on uiko to tali stinen sääntö, soluautomaatin uusi tila saadaan solunaapurien tilojen summasta sekä solun omasta arvosta. Yksidimensi- oisen ulkototalistisen soluautomaattisäännön koodi Сщ voidaan ilmoittaa muodossa

k-1 2т<Ы)

Cut=I X (4.5)

X=0 71=0

Edellä esimerkkinä käytetty totalistinen ja binäärinen r= 1 soluautomaatti­

sääntö voidaan esittää myös ulkototalistisena sääntönä (x on keskussolun arvo ja n naapuri solujen arvojen summa):

f[x,n\

T, jos x = 1 ja n = 0 tai 2, 1, jos x = 0 ja и = 1, 0, muulloin.

Koodiksi tulee binääriluku 100110 eli desimaalijärjestelmässä luku 38:

(19)

Kuva 4.2 Totalistisen k=2, r=l soluautomaalin aikakehitys. Sääntönumero: totalistinen 10, ulko- totalistinen 38, yleinen 150. Satunnainen alkutila, periodiset reunaehdot.

O« = £ £ 22n+xf[x,n] = 25/[l,2] + ...

x=0 л=O

= 25 + 22 + 21 =38io = 1001102

+ 2°/[0,0]

Yleisen yksiulotteisen soluautomaatin koodinumero C voidaan puolestaan laskea kaavasta (merkintä[*,•_, -xr -xi+\ tarkoittaa konfiguraation nume­

roarvoa ¿-kantaisessa lukujärjestelmässä, esim.[llOja on desimaalijäijestel- män luku 6)

C = X k^-rkr'ixitjf[Xi.r,-, v.., xi+r]

<X,X,>r) (4.6)

_ \' b- [xi-r • * Xr • • Xi+Jà /* Г y • y • y • 1 {Xj-л-ч X|'+r)

Edellä esimerkkinä käytetyn soluautomaatin sääntö voidaan esittää muo­

dossa

(/[

1

,

0

,

0

] =/[

0

,

1

,

0

] =/[

0

,

0,1

] =/[

1

,

1,1

] =

1

,

l/[xi-i,*«>*/+i] = 0 muulloin.

Yleiseksi sääntökoodiksi saadaan

(20)

C = X 2lJxi*J f[x¡.ux¡,xM]

{x¡.\,x¡,xm)

= X

2[x“1

x‘

Xi+1]2

/ [*«-i д.л.+i]

{x,-i,x;,xi+i}

= 24/[1,0,0] + 22 Д0,1,0] + 21/[0,0,1] + 27/[l,l,l ]

=150io = 100101102

Yleisiä yksiulotteisia soluautomaattisääntöjä on kaikkiaan

k1™ (4.7)

kpl, sillä mahdollisia konfiguraatioita on ld2r+1) kpl ja kukin konfiguraatio voi tuottaa yhden ¿:sta tilasta. Täten esim. r= 1, k=2 soluautomaattisääntöjä on 256 kpl. Vastaavasti r=2, k=2 sääntöjä on 4294967296 kpl. Siis r:n suuretessa kasvaa sääntöjen lukumäärä todella nopeasti.

Laillisiksi soluautomaattisäännöiksi (engl. “legal rules”) sanotaan niitä, jot­

ka säilyttävät symmetrian ja nollakonfiguraation:

f[xjv-,Xj]=f[xjs,...,Xj] ja /[0...0 ] = 0, Xj-eQ, (4.8) missä Q on soluautomaatin tilajoukko. Laillisuus eli symmetriaominaisuuk- sien ja nollakonfiguraation säilyttäminen on eräänlainen fysikaalisten säily­

mislakien vastine soluautomaateille. Yleisiä yksiulotteisia laillisia sääntöjä on kaikkiaan

£*r+1(*r+l)/2 - 1 (4.9)

kpl. Siten laillisia r=l, k=2 sääntöjä on 32 kpl.

Tässä yhteydessä kannattaa huomata, että edellä esitellyt koodinumeroiden määritelmät eivät ole yksikäsitteisiä—siis kerrottaessa koodinumero on myös sanottava, mikä on kyseisen soluautomaatin soluympäristö ja tilojen lukumäärä sekä onko kyseessä totalistinen, ulkototalistinen vai yleinen koo­

dinumero.

(21)

Kuva 43 Yksiulotteisia r=l, k=2 soluautomaatteja, yleiset koodinumerot 22, 30 ja 110. Simulaa- tioaskeleita on laskettu 50 kpl. Sääntö 22 on laillinen eli se säilyttää nollakonfiguraation ja symmetrian.

4.3 Yksiulotteisten soluautomaattien perusmalleja

Perusmalleiksi (engl. “elementary cellular automata” eli ECA) kutsutaan yksiulotteisessa tapauksessa soluautomaatteja, joiden naapuristo koostuu keskussolusta ja sen kummastakin naapurisolusta, ja joiden soluilla on vain kaksi tilaa. Edellä käyttöön otetun merkintätavan mukaan kysessä ovat siis r= 1, k=2 soluautomaatit. Tällaisten soluautomaattien esittelyä ja analyysiä löytyy ennen kaikkea [5]:sta.

Kuvassa 4.3 on esitetty kolmen yksiulotteisen r=l, k=2 soluautomaatin evoluutio lähdettäessä konfiguraatiosta, jossa on keskellä yksi nollasta poik­

keava solu. Kuvassa 4.4 on erään soluautomaatin evoluutio lähdettäessä satunnaisesta alkutilasta.

Simuloinnit on tehty käyttäen Mathematica-ohjelman mukana tulevaa Cel- lularAutomata-työtilaa. Soluautomaatin aikakehitys on esitetty matriisimuo- dossa, jossa kullakin rivillä esitetty on tietyn aika-askeleen konfiguraatio.

Ylin rivi on alkukonfiguraatio, ja alempana olevat rivit kuvaavat myöhem­

piä konfiguraatioita.

4.4 Soluautomaattien luokittelu

Viitteessä [5] (s. 91-125 ja s. 189-231) esitetään yksiulotteisten soluauto­

maattien jaottelu neljään luokkaan:

1) Homogeeniset soluautomaatit: Evoluutio tuottaa homogeenisen konfi­

guraation. Täten alkutilan kuviot katoavat ajan kuluessa.

(22)

Aika

I

Kuva 4.4 Yksiulotteinen г-l, k=2 soluautomaatti. sääntökoodi 22. Soluautomaatin koko on 200 solua, periodiset reunaehdot. Simulaatioaskeleita on laskettu 100 kpl. Satunnainen alkutila.

2) Jaksolliset soluautomaatit: Evoluutio tuottaa stabiileja tai periodisia rakenteita. Alkutilan kuviot kasvavat vain äärellisen kokoiseksi.

3) Kaoottiset soluautomaatit: Evoluutio johtaa kaoottiseen tai fraktaali- seen tilaan. Alkutilan kuviot kasvavat rajatta vakionopeudella.

4) Laskennalliset soluautomaatit: Evoluutio tuottaa monimutkaisia pai­

kallisia rakenteita, jotka kykenevät laskennallisiin operaatioihin ja jopa universaalilaskentaan. Alkutilan kuviot voivat kasvaa tai supistua

ajan kuluessa.

Kuvassa 4.5 on esimerkki kustakin soluautomaattityypistä. Laskut on tehty tätä varten ohjelmoidulla Mathematica-paketilla, joka kykenee simuloimaan mm. yksiulotteisia totalistisia yli kaksi tilaa omaavia soluautomaatteja.

Soluautomaattien käyttäytymistä voi tutkia muuttamalla hiukan solun alkutilaa ja vertaamalla soluautomaattien kehittymistä ajan funktiona. Ku­

vassa 4.6 on edellä esitettyjen soluautomaattien differenssikuvaajat (eli on tulostettu solut jotka muuttuvat kun alkukonfiguraatiossa muutetaan yhden solun arvoa).

Kuvasta 4.6 havaitaan, että homogeenisissa soluautomaateissa eivät paikal­

liset muutokset muuta lopputilaa ja että jaksollisissa soluautomaateissa al­

kutilaan tehty muutos vaikuttaa vain paikallisesti.

Kaoottisissa soluautomaateissa paikallinen muutos leviää systeemiin rajatta ja soluautomaatin lopputilat divergoivat eksponentiaalisesti toisistaan. Tä­

män voi havaita esim. laskemalla alussa tehdyn muutoksen vaikutusta solu- automaatin konfiguraatioiden informaatiosisältöön (esim. entropiaan). Ku­

van 4.6 kolmannessa esimerkissä muutos näyttää liikkuvan tietyllä vakio- nopeudella kumpaankin suuntaan. Muuttuneiden tilojen lukumäärä on ver­

rannollinen t°:aan, missä t on muutoksesta kulunut aika ja a on muutoksen

(23)

Kuva 4.5 Yksiulotteisten soluautomaattien neljä luokkaa. Totalistiset r=l, k=3 säännöt (vasemmalta oikealla ja ylhäältä alas): 1302 (homogeeninen), 1005 (jaksollinen), 444 (kaoottinen) ja 792 (laskennallinen). Soluautomaateilla sama satunnainen alkutila.

f

A \

Kuva 4.6 Yksiulotteisten soluautomaattien differenssikuvaajat. Totalistiset r=l, k=3 säännöt: 1302, 1005, 444 ja 792. Soluautomaateilla on sama satunnainen alkutila, jossa yhden solun arvoa on muutettu; kuvissa on esitetty solut, joiden aikakehitykseen muutos vaikuttaa.

etenemisnopeus. (Dynaamisten systeemien teoriassa eksponenttia a vastaa ns. Lyapunovin eksponentti. Jos Lyapunovin eksponentti on positiivinen, systeemin sanotaan olevan kaoottinen [25].)

Laskennallisessa soluautomaatissa alkukonfiguraatioon tehty muutos voi vaikuttaa soluautomaatin myöhempään tilaan hyvin monimutkaisella taval­

la. Muutoksen vaikutusta on yleisesti ottaen mahdotonta suoraan ennustaa;

soluautomaatin evoluutio on laskettava läpi kokonaisuudessaan.

Laskennalliset yksiulotteiset soluautomaatit tuottavat usein periodisia solu- hilassa eteneviä rakenteita, solitoneja ([5] s. 333-342 ja 391-394). Osa soli-

(24)

Ioneista vaatii tietyn taustakonfiguraation edetäkseen. Tähän liittyen olete­

taan, että osa tällaisista soluautomaateista kykenee universaalilaskentaan—

ongelmana on sopivien rakenteiden löytäminen laskennan toteuttamiseksi.

Tähän mennessä on löydetty universaalilaskentaan kykenevä r=l, k=l solu- automaatti [16].

(25)

5 Kaksiulotteiset soluautomaatit

5.1 Määritelmiä

Kaksiulotteisia soluavaruuksia voi olla montaa eri tyyppiä—solut voi jär­

jestää suorakulmaiseksi tai heksagonaaliseksi hilaksi ja naapurisuhteen määrittelyä voi muuttaa mielivaltaisesti. Seuraavassa keskitytään suorakul­

maiseen hilaan ja ns. von Neumannin ja Mooren naapuristoihin (kuva 5.1).

Kuten yksiulotteisessakin tapauksessa, voivat soluautomaattisäännöt olla totalistisia, ulkototalistisia tai täysin yleisiä. Esim. von Neumannin naapu­

ristossa olisi yleisiä binäärisiä soluautomaattisääntöjä 232 eli noin 4 mil­

jardia kpl. Eniten lienee tutkittu ulkototalistisia Moore-naapuriston solu- automaatteja—erilaisia binäärisiä sääntökoodeja on 218 eli noin 0,3 miljoo­

naa kpl. Mm. Life-peli kuuluu tähän ryhmään.

Kaksiulotteisille soluautomaateille voidaan määritellä numerokoodit samalla tavalla kuin yksiulotteisillekin. Seuraavassa määritellään ulkoto- talistisen soluautomaatin koodinumero Cut:

k-1

Cut = II^-/[o,«]

a=0 «

(5.1)

Tässä n on luonnollisesti naapurisolujen tila-arvojen summa ja a on keskus- solun oma entinen arvo. Life-pelin säännöt on määritelty kappaleessa 5.2;

Kuva 5.1 von Neumannin (vas.) ja Mooren naapuristot.

(26)

käyttämällä yllä olevaa kaavaa saadaan Lifen ulkototalistiseksi koodinume­

roksi 224! 0.

Vastaavasti voidaan määritellä totalistinen koodinumero Ct. Yleinen koodi- numero C voidaan määritellä, jos solunaapuriston solut asetetaan tiettyyn järjestykseen sääntökoodin laskemista varten. Jatkossa käytetään kuitenkin vain ulkototalistisia koodeja; naapuristona on tavallisesti Mooren solu- naapuristo, jossa erilaisia sääntöjä on edellä esitetyn mukaisesti 0,3 mil­

joonaa kpl. von Neumannin naapuristossa on ulkototalistisia sääntöjä vain 210 eli 1024 kpl. Kannattaa kuitenkin muistaa, että von Neumann-naapu- riston ulkototalistiset soluautomaatit eivät ole Moore-naapuriston ulkotota- lististen soluautomaattien osajoukko.

5.2 Life-peli

Perinteinen esimerkki soluautomaatista on Life [17], joka on ulkototalis- tinen kaksiulotteiseen suorakulmaiseen hilaan rakentuva soluautomaatti.

Lifen soluilla on kaksi tilaa, “elossa” ja “kuollut”. Solunaapuristoon laske­

taan keskussolua lähimpänä olevien neljän solun lisäksi diagonaalisilta suunnilta löytyvät neljä solua (Mooren naapuristo). Soluautomaatti sääntö on yksinkertainen ulkototalistinen summaus sääntö, jossa lasketaan yhteen “elä­

vät” solunaapuriston solut. Sääntö on seuraava:

Jos naapureista on kolme elossa, naapuriston keskelle syntyy uusi solu.

Jos naapureista on kaksi tai kolme elossa, vanha solu säilyy hengissä.

Muussa tapauksessa elossa oleva solu kuolee joko “yksinäisyyteen”

tai “liikakansoitukseen”.

Life kuvaa jossain määrin biologisten populaatioiden kasvuilmiöitä, joten

Naapurisoluja

Solunaapuriston keskussolu

Kuva 52 Ufe-pelin solunaapuriston rakenne. Naapuristoon kuuluu 8 naapurisoilta ja keskussolu.

(27)

Kuva 53

Kuva 5.4

Life-pelin eräs satunnainen alkutila sekä konfiguraatiot ajanhetkillä 10 ja 160.

Tyypillinen Life-pelissä esiintyvä liitokone ("glider"). Liitokone etenee 1 +1 solua neljässä askeleessa.

“elämäpeli”-nimitys onkin varsin onnistunut.

Life-peliä on tutkittu paljon, ja on osoitettu että Life kykenee universaalilas- kentaan eli simuloimaan mitä tahansa muuta tietokonetta [26]. Todistus perustuu siihen, että valitsemalla sopivat alkukonfiguraatiot voidaan Life- pelillä mallittaa kaikkia tietokoneen rakentamiseen tarvittavia piirejä.

Soluautomaattien lopputiloja kutsutaan rajajoukoiksi, ja muutamia Lifelle tyypillisiä rajajoukkoihin kuuluvia konfiguraatioita näkyy kuvassa 5.3. Ky­

seessä on esimerkki Life-pelin evoluutiosta lähdettäessä pienestä satun­

naisesta alkukonfiguraatiosta. Lopputila on jaksollinen ja stabiili, mikä on tyypillistä pienestä satunnaisesta alkukonfiguraatiosta lähtevälle Lifelle.

Suuremmissa alkukonfiguraatioissa on monimutkaisempien rakenteiden syntyminen todennäköisempää.

Life-pelistä tunnetaan monia erityyppisiä jaksollisia, soluhilassa eteneviä värähtelijöitä, ns. liitokoneita (engl. “glider”), sekä näistä koottuja moni­

mutkaisempia kokonaisuuksia. Kuvassa 5.4 on esitetty erään tällaisen lii- tokoneen aikakehityksen neljä vaihetta.

(28)

Kuva 5.5 Ufe-pelin eräs satunnainen alkutila sekä konfiguraatio ajanhetkellä 342 (kaksi liitokonetta kuvan ulkopuolella).

5.3 Rajajoukoista

Satunnaisesta alkukonfiguraatiosta käynnistetyn Life-pelin lopputilat ovat useimmiten varsin yksinkertaisia. Tyypillisesti jonkin ajan kuluttua alusta syntyy hyvinkin monimutkaisia systeemejä, mutta liitokoneet tai muut hilassa etenevät rakenteet tuhoavat ne ennemmin tai myöhemmin. Lopputila koostuu useimmiten yksinkertaisista, stabiileista, toisistaan erossa olevista rakenteista sekä “vapaiksi” päässeistä liitokoneista, jotka kulkeutuvat pois­

päin alkukonfiguraatiosta.

Rakentamalla Life-pelille sopiva alkukonfiguraatio on kuitenkin mahdol­

lista saada aikaan hyvin monimutkaista käyttäytymistä. Lisäksi Lifelle on ominaista, että alkutilaan tehdyn pienen muutoksen vaikutuksia on yleensä mahdotonta ennakoida muuten kuin simuloimalla soluautomaatin evoluutio askel askeleelta. Tällainen käyttäytyminen on ominaista ei-triviaaleille solu- automaateille. Lifen epälineaarisuutta havainnollistanee esim. lopputilan muuttuminen, kun kuvan 5.3 satunnaista alkutilaa muutetaan yhdellä kulmasolulla—tämä on esitetty kuvassa 5.5.

Viitteessä [27] on osoitettu, että soluautomaatin rajajoukon kaikki ei- triviaalit ominaisuudet (eli ominaisuus on joillakin soluautomaateilla mutta ei kaikilla) ovat algoritmisesti ratkeamattomia. Ei siis ole olemassa yleistä algoritmia, joka kertoisi onko jollakin soluautomaatilla tietty ei-triviaali ominaisuus.

Lifea kiinnostavampia systeemejä fysikaaliselta kannalta ovat tietysti ne, jotka automaattisesti hakeutuvat johonkin “mielenkiintoiseksi” katsottuun

(29)

havaittu erittäin monimuotoisia vuorovaikutuksia (viitteen [5] liite).

Mielenkiintoinen soluautomaattien luokka on kriittisiä ilmiöitä mallittavat systeemit ([2] s. 112-115). Ns. itseorganisoituvat kriittiset systeemit ovat tyypillisesti melko pitkälle riippumattomia alkukonfiguraatiosta—ne hakeu­

tuvat itsestään kriittiseen tilaan, olkoot alkutila ja sisäänmenosignaali lähes millaisia tahansa [28,29,30,31].

5.4 Kaksiulotteiset hilakaasut

Hydrodynamiikassa on perinteisesti käytetty liukulukulaskentaa. Neste kuvataan kenttänä, joka toteuttaa halutut osittaisdifferentiaaliyhtälöt. Sopi­

van diskretoinnin jälkeen systeemin tilaa kuvataan tietokoneessa liukulu­

vuilla. Näillä menetelmillä on pitkät perinteet, joten nykyiset supertieto­

koneet ovat erittäin tehokkaita osittaisdifferentiaaliyhtälöden ratkomisessa.

Toisaalta perinteisten algoritmien rinnakkaistus on vasta alkuvaiheissa, eivätkä perinteiset mallitustavat välttämättä anna yhtä hyviä tuloksia kuin täysin rinnakkaiset mallit, esim. hilakaasut [32,12].

Hilakaasumallit ovat soluautomaatteja, joissa tila-avaruuden arvot kuvaavat solussa sijaitsevia hiukkasia. Soluautomaattisäännön tulee toteuttaa joukko säilymislakeja—esim. energian ja liikemäärän säilyminen. Lisäksi voidaan asettaa joukko symmetriaehtoja.

Kuva 5.6 HPP- ja FHP-hilakaasujen soluautomaattihilat. Suorakulmainen HPP-hila on symmetrinen 90°kiertojen suhteen. FHP-mallin kolmiohila on symmetrinen 60° kiertojen suhteen.

(30)

Ns. HPP-hilakaasumalli on peräisin vuodelta 1973. Mallin kehittivät Hardy, Pomeau ja de Pazzis. Kyseessä on suorakulmainen kaksiulotteinen soluau- tomaattihila, jonka soluautomaattisääntö on kaksiosainen. Ensimmäisessä vaiheessa lasketaan törmäykset kussakin solussa sijaitsevien hiukkasten välillä. Toisessa vaiheessa hiukkaset kulkeutuvat haluttuihin suuntiin.

HPP-hilakaasumallin ongelmana on mm. se, että malli ei ole isotrooppinen (ks. [5] s. 358-361). Ongelma johtuu lähinnä suorakulmaisen hila-avaruu­

den käytöstä. Jos siirrytään käyttämään kolmiohilaa (kuva 5.6), päästään tästä ongelmasta. Tätä hilakaasumallia kutsutaan FHP-malliksi sen kehittä­

jien (Frish, Hasslacher ja Pomeau) mukaan.

(31)

6 Soluautomaatit verrattuina muihin systeemeihin

6.1 Dynaamisten systeemien hierarkia

Taulukossa 6.1 on verrattu erityyppisiä dynaamisia systeemejä keskenään.

Havaitaan, että lähimpänä soluautomaatteja ovat dynaamiset hilasysteemit (engl. “lattice dynamical systems” tai “coupled map lattices”). Soluauto- maateissa tilat ovat diskreettejä, dynaamisissa hilasysteemeissä jatkuvia.

Yleisessä N-ulotteisessa dynaamisessa systeemissä N:n muuttujan väliset riippuvuudet voivat olla millaisia tahansa, ongelmasta riippuen. Jatkossa rajoitutaan käsittelemään translaatio-invariantteja järjestelmiä, ns. avaruu­

dellisia dynaamisia systeemejä (engl. “spatial dynamical systems”). Tämä tarkoittaa lähinnä sitä, että tyydytään paikallisiin symmetrisiin riippuvuus­

suhteisiin.

6.2 Dynaamiset hilasysteemit

Dynaamiset hilasysteemit koostuvat säännöllisen hilan paikallisessa naapu­

ristossa V¡ yhteen kytketyistä iteroiduista kuvauksista

Malli Avaruus Aika Tila-avaruus

Osittaisdifferentiaaliyhtälöt J J J

Iteroidut funktionaaliyhtälöt J D J

Oskillaattoriketjut D J J

Dynaamiset hilasysteemit D D J

Soluautomaatit D D D

J = jatkuva, D = diskreetti

Taul. 6.1 Dynaamisten systeemien luokittelu.

(32)

x/+1 = F (6.1)

Vektori x* = (x0tjcIt,...jcN_1t') on systeemin tila ajanhetkellä t e {0,1,...} ja hilaelementin indeksi / e {0,1,...,N-1}. Painokertoimet wj kuvaavat hilanaa- purien kytkennän voimakkuutta.

Esimerkki dynaamisesta hilasysteemin paikallisesta funktiosta on logistinen kuvaus F

(6.2)

f(x) = rx(l -x),

missä r jax ovat skalaareja (r on yleensä väliltä [0,4]). Jos yksiulotteisen systeemin naapuristoon kuuluu keskussolu ja sen kumpikin naapuri, voisi kuvaus painokertoimineen olla muotoa

(6.3)

missä e on naapurisolujen “kytkentäkerroin” ja F esim. logistinen kuvaus.

6.3 Kaaos dynaamisessa hilasysteemissä

Kun yhtälön (6.2) r kasvaa, siirtyy logistinen hilasysteemi kaaokseen [33].

Aluksi syntyy selvien rajojen erottamia osasysteemejä, joissa r:n kasvaessa tapahtuu periodin kahdentumista. Lopuksi katoavat kaikki rajatkin ja systeemi suistuu kaaokseen.

Kuvassa 6.1 on esitetty logistisen hilasysteemin bifurkaatiokäyttäytyminen.

Parametria r kasvatettaessa havaitaan aluksi periodin kahdentumisilmiö.

Lopulta suistutaan kaaokseen, jolloin alussa syntyvien jaksollisten saarekkeiden rajat häviävät.

(33)

Kuva 6.1 Logistinen dynaaminen hilasysteemi, joka koostuu 50:stä värähtelijästä. Simulaatioaske- leita on laskettu 50; kuviin on tulostettu 8 viimeistä konfiguraatiota. Vaaka-akselilla on esitetty hilasysteemin värähtelijät, pystyakselilla niiden tilat. Parametri e = 0.1 ; r vaihte- lee.

6.4 Dynaamisen systeemin diskretointi

Dynaaminen hilasysteemi voidaan diskretoida soluautomaatiksi. Edellä esitetyn logistisen hilasysteemin diskretointiin sopii yksidimensioinen solu- automaatti. Riippuen e:n ja r:n arvoista saadaan erilaisia soluautomaatti- sääntöjä. Viitteessä [34] on kuvattu erään toisen dynaamisen hilasysteemin diskretointia soluautomaatiksi.

(34)

Kuva 6.2 Logistisen hilasysteemin aikakehitys. Systeemin koko N=50, aika-askeleila 50 kpl.

Hilapisteet, joiden arvo ylittää tietyn kynnyksen, on kuvattu mustina, muut valkoisina.

F (x) = x <1 - x) 0.25-

0.IS-

О.05-

Kuva 63 Logistisen kuvauksen eräs diskretointimahdollisuus.

Logistisen hilasysteemin diskretointi sujuu seuraavasti. Aluksi otetaan käyt­

töön diskreetti tilavektori x‘ e Qs (Q on halutuntyyppisen soluautomaatin tila-avaruus ja s tilavektorin pituus). Tämän jälkeen haetaan hilasyseemiä

(35)

0.5 36, 126 00100100,01111110

0.75 126 01111110

1.0 90 01011010

T aul 62 Logistista hilasysteemiå vastaavat soluautomaatit.

Kuva 6.4 Soluautomaattisäännöt 36,126ja 90 (r=l, k-2). Satunnaiset alkutilat.

kuvaava soluautomaattisääntö f¿. Tämä voidaan tehdä esim. laskemalla xf+i-.n arvot kaavojen (6.2) ja (6.3) avulla kaikille mahdollisille solunaa- puriston konfiguraatioille (х,„/л/д,+/0 eri e:n arvoilla. Saadut luvut voi­

daan sovittaa soluautomaatin tila-avaruuteen r:n arvoa muuttamalla. Täten saadaan laskettua joukko soluautomaattisääntöjä, jotka voidaan kirjoittaa normaaleiksi paikallisiksi soluautomaattisäännöiksi f¿.

Soluautomaattisääntöjen hakemisen voi automatisoida esim. Mathematican avulla. Taulukossa 6.2 on e:n arvoilla 0, 0.3, 0.5 ja 1.0 saadut k=2, r= 1 soluautomaattisäännöt (r:n arvot väliltä [0.0,6.0]).

Kuvassa 6.4 on esitetty logistista hilasysteemiä vastaavien ei-triviaalien soluautomaattien aikakehitys satunnaisesta alkutilasta. Havaitaan, että jopa näinkin karkea diskretointi tuottaa jossain mielessä “oikeanlaisia” approk­

simaatioita: soluautomaattisääntö 36 tuottaa periodisia paikallisia rakenteita,

“vyöhykkeitä”; soluautomaattisäännöt 126 ja 90 puolestaan tuottavat erita­

soisia fraktaalisia ja kaoottisia rakenteita.

(36)

7 Soluautomaatit tietojenkäsittely- systeemeinä

7.1 Automaattien teoriaa

Soluautomaattien evoluution voi tulkita tietojenkäsittelyksi, jossa prosessoi­

daan soluautomaatin alkutilaan sisältyvää informaatiota. Jos kyseessä on kääntyvä soluautomaatti (eli on olemassa soluautomaattisääntö f, joka tuottaa soluautomaattisäännön f konfiguraatiot käänteisessä järjestyksessä lähdettäessä /:n lopputilasta), ei informaation määrä luonnollisesti voi muuttua ([5] s. 232-246; [35]). Toisaalta useat soluautomaatit ovat ei- kääntyviä, ns. itseorganisoituvia (engl. “self-organizing”) systeemejä. Täl­

löin voi myös satunnaisesta alkutilasta lähdettäessä syntyä monimutkaisia järjestyneitä rakenteita.

Soluautomaattien laskennallisia ominaisuuksia on tutkittu mm. viitteissä [16,36,37]. Hyvä johdatus aiheeseen on viitteessä [5] s. 189-231.

Formaalit kielet koostuvat joukosta sanoja, jotka on muodostettu jonosta äärelliseen merkistöön kuuluvia symboleja tiettyjen kielioppisääntöjen avul­

la. Soluautomaatin tila-avaruus Q voidaan siis käsittää tietojenkäsittelysys­

teemin merkistöksi. Merkistöön kuuluvien symbolien jonot muodostavat so­

luautomaatin mahdollisten konfiguraatioiden joukon. Täten soluautomaatin konfiguraatioiden voidaan katsoa vastaavan formaalin kielen sanoja. Solu- automaattien evoluutiota voi verrata esim. L-systeemeihin [38,39].

7.2 Soluautomaattien tilastolliset ominaisuudet

Soluautomaatit ovat tilastollisessa mielessä lähellä mikroskooppisia fysi­

kaalisia systeemejä—ne koostuvat usein suuresta joukosta yksinkertaisia soluja (“hiukkasia” tai “hilapisteitä”), jotka paikallisten vuorovaikutuksien

(37)

Soluautomaatit poikkeavat fysikaalisista systeemeistä siinä, että ne eivät tyypillisesti ole kääntyviä: jos tiedetään soluautomaatin nykyinen tila, ei voida aina yksikäsitteisesti päätellä soluautomaatin aikaisempia konfiguraa­

tioita. Toki kääntyviäkin soluautomaatteja voidaan rakentaa ([11], luku 14).

(Soluautomaattien kääntyvyyden on osoitettu olevan algoritmisesti ratkea­

maton ominaisuus viitteessä [27]. Toisaalta yksiulotteisten soluautomaattien kääntyvyysongelma on ratkaistu artikkelissa [35].)

Jos deterministisen soluautomaatin jollakin konfiguraatiolla on useampia mahdollisia aikaisempia konfiguraatioita, tarkoittaa tämä sitä että on ole­

massa jokin muu konfiguraatio, joka voi olla vain alkutila eli se ei synny koskaan soluautomaatin evoluutiossa. Tällaista konfiguraatiota kutsutaan

“Eedenin puutarhaksi”, ja sellaisen olemassaolo on suoraan seurausta solu- automaatin kääntymättömyydestä ja äärellisestä tilajoukosta ([5] s. 57).

Hyvä johdatus soluautomaattien tilastolliseen analyysiin löytyy viitteestä [5] s. 7-50 ja s. 91-125.

Usein käytetty soluautomaatin aikakehityksen mitta on entropia, joka voidaan määritellä soluautomaatin X:n mittaiselle konfiguraatiolohkolle esim. seuraavasti (ns. avaruudellinen joukkoentropia):

= logt (.X 6(Py)| <7Л)

missä k on soluautomaatin tilojen lukumäärä ja todennäköisyydet pj ovat eri konfiguraatioiden esiintymistodennäköisyydet X:n mittaisessa lohkossa.

Funktio в on askelfunktio, jolle pätee (Kp) = 1 jos p > 0 ja 0(0) = 0.

Summalausekkeessa lasketaan itse asiassa soluautomaatin generoimien eri­

laisten X:n mittaisten lohkojen lukumäärä. Jos kaikki k* kpl X:n mittaista lohkoa generoituvat soluautomaatin evoluutiossa, on s(X) = 1.

Toinen yleisesti käytetty tilastollinen suure on ns. avaruudellinen mitta- entropia:

(38)

7.3

kx

sß(X) = -±r X Pj lo8*(Pjl Л 7 = 1

(7.2)

Mittaentropia ilmaisee solun keskimääräisen informaatiosisällön, kun ote­

taan huomioon solujen väliset korrelaatiot X:n mittaisiin lohkoihin asti. Jos kaikkien konfiguraatioiden todennäköisyys on yhtä suuri, on s^(X) = 1.

Yhtälöitä (7.1) ja (7.2) vastaavat kaavat voidaan johtaa myös soluautomaa- tin aikakehitykselle. Tällöin tarkastellaan tietyn ajanhetken konfiguraatiosta havaittujen X:n mittaisten lohkojen sijaan X:n mittaisia historioita yhden solun aikakehityksessä.

Yleisesti ottaen ovat soluautomaatin avaruudelliset ja ajalliset entropiat aivan eri asioita. Tutkittaessa soluautomaatin käyttäytymistä täytyykin usein ottaa huomioon sekä ajalliset että paikalliset vuorovaikutukset solujen vä­

lillä.

Soluautomaattien kompleksisuuden analyysiin käytettyjä erityyppisiä mitto­

ja kuvataan artikkeleissa [41] ja [42]. Dynaamisten systeemien entropian laskemista käsitellään viitteessä [43]; esimerkkinä on yksidimensioinen k=2, r=l soluautomaattisäänto 22. Soluautomaatin korrelaatiokäyttäytymistä on analysoitu viitteessä [44].

Soluautomaattien tilastolliseen käyttäytymiseen liittyy mm. ergodisuuden käsite: stokastinen prosessi on ergodinen, mikäli sen stationäärinen jakauma on alkutilasta riippumaton. Tyypillisesti soluautomaatit eivät ole ergodisia.

Tämä tarkoittaa sitä, että alkutilasta riippuen voidaan saavuttaa hyvinkin erilaisia lopputiloja. Universaalilaskentaan pystyvä systeemi ei luonnollises­

ti voikaan olla ergodinen ([5] s. 455-458). Tällainen soluautomaatti ilmen­

tää itseorganisoituvien systeemien kompleksisuuden huippua.

Soluautomaattien algebralliset ominaisuudet

Yksiulotteisia soluautomaatteja voidaan analysoida mm. ottamalla käyttöön ns. karakteristiset polynomit ([5] s. 51-90). Olkoon soluautomaatin koko N ja soluautomaatin solun i arvo ajanhetkellä t olkoon xft). Tällöin karak­

teristinen polynomi on

(39)

Additiivisen lähinaapurit huomioon ottavan soluautomaatin aikaevoluutio voidaan laskea kertomalla karakteristinen polynomi dipolynomilla (kahden polynomin osamäärällä)

П(a) = a.\a + ocq + а\ал, (7.4) eli

Х(,+1)(<з) = ОД X«\a) mod (aN - 1 ), (7.5) missä periodiset reunaehdot saadaan aikaan laskemalla dipolynomien ker­

tolasku modulo cF—1.

Esimerkiksi k=2, r=l yleinen soluautomaattisääntö 150 voidaan kuvata lau­

sekkeella

n(ti) = a+ 1 + ал,

missä yhteenlasku lasketaan modulo 2. Seuraavassa lasketaan esimerkkinä tilanne, jossa alkukonfiguraatio on (0,1,0,0,1,1} ja käytössä on periodiset reunaehdot. Tällöin karakteristinen polynomi x(°)(a)on

X(0)(a) = £ xfJ)a‘ = a + я4 + a5,

i = 0

Konfiguraatioksi hetkellä t = 1 saadaan:

X0)(a) = Ща) X(°>(fl)

= (a+ 1 +aA)(a + ai + a5)

= a6 + 2a5 + 2д4 + a3 + a2 + a + 1

= (a6 - l) + (2a5 + 2a4 + a3 + a2 + a + 2)

= a3 + a2 + a

mod (a6 - l)

(40)

Koska k=2, voidaan viimeisessä vaiheessa eliminoida termit, joissa on kertojana 2. Lopputulos lasketaan lisäksi modulo a6 - 1. Täten konfiguraa- tioksi hetkellä t = 1 saadaan {0,1,1,1,0,0}. Soluautomaatin evoluutiota voi­

daan siis käsitellä symbolisena laskentana.

Yleisesti ottaen soluautomaattien algebrallinen analyysi onnistuu vain eri­

koistapauksissa: usein soluautomaatin evoluution kompleksisuus on sitä luokkaa, ettei ole olemassa “nopeutussääntöä”, jolla voitaisiin laskea loppu­

tila suoraan alkutilasta. Viitteessä [4] on analysoitu fraktaalisten yksi­

ulotteisten soluautomaattien ominaisuuksia—mm. mahdollisia nopeutus- sääntöjä.

(41)

8 Soluautomaattien käyttökohteita

8.1 Rinnakkaiskoneet

Tietokoneiden luokitteluun käytetään yleisesti ns. Flynnin taksonomiaa, vaikka sen käsitteistö onkin jossain määrin vanhentunut [45]. Seuraavassa datavuolla (käskyvuolla) tarkoitetaan jonoa data-alkioita (käskyjä). Tieto­

koneet jaetaan Flynnin taksonomiassa taulukon 8.1 mukaisiin luokkiin.

Rinnakkaislaskennassa mahdollisuuksia ovat siis SIMD ja MIMD -koneet.

MISD on oikeastaan MIMD-koneiden luokka; MISD-koneita on tuskin muualla kuin laboratorioissa (eräät eksoottiset tietokantakoneiden prototyy­

pit ovat sisältäneet tämäntyyppisiä operaatioita).

8.2 Massiivisesti rinnakkaiset koneet

Supertietokoneissa on tyypillisesti pyritty mahdollisimman tehokkaisiin prosessoreihin, joilla on muutaman nanosekunnin kellojakso. Prosessorit tukevat vektorioperaatioita ja rinnakkaisuutta—esim. Crayssä voi useita liukuhihnoja olla käsiteltävänä kerrallaan, jolloin kyetään yhdessä kello- jaksossa tuottamaan useita tuloksia. Superkoneissa tarvitaan myös erittäin

Yksi käskyvuo Monta käskyvuota Yksi datavuo SISD

Perinteinen arkkitehtuuri (von Neumann).

MISD

Useita käskyjä operoi sa­

maa dataa yhtä aikaa.

Monta datavuota SIMD

Vektoriprosessorit, prosessorihilat.

MIMD

Useita prosessoreja, kulla­

kin oma ohjelma ja data.

Гаи/. 8.1 Tietokoneiden luokittelu Flynnin taksonomiassa.

(42)

nopeaa muistia—tämä on implementoitu usein joukkona vektorirekisterejä, joihin voidaan kirjoittaa ja joista voidaan lukea tietoa prosessorin kello­

taajuudella.

Massiivisesti rinnakkaiset koneet tavoittelevat suurta laskentanopeutta toisella tavalla. Yhden superprosessorin sijasta käytetään tuhansia halpoja prosessoreita, jollaisen ei tarvitse kyetä kovin ihmeellisiin laskutoimituk­

siin__esim. Connection Machinessa käytetään yhden bitin prosessoreita (ns.

“bit serial” prosessorit). Kun prosessoreita on käytössä tuhansia, saavute­

taan—ainakin teoriassa—perinteisen superkoneen teho.

Vaikka laitteistotasollakin riittää tekemistä tehokkaiden prosessorikonfi- guraatioiden löytämiseksi (esim. sopivan viestintämekanismin kehittäminen prosessorien välille ei ole triviaali tehtävä)—lienee massiivisesti rinnak­

kaisten koneiden suurin ongelma ohjelmistotasolla. Muutamia varsin kor­

kean tason työkaluja on kuitenkin jo saatavilla esim. Connection Machi- neen löytyy rinnakkaistettu FORTRAN.

Mitään joka käyttäjän koneita eivät massiivisesti rinnakkaiset koneet vielä kuitenkaan ole—käyttöjärjestelmiä massiivisesti rinnakkaisille koneille ei juuri ole olemassa, joten yleisesti ottaen koneita käytetään yhteen laskenta-

sovellukseen kerrallaan, useimmiten jonkin edustakoneen avustuksella.

8.3 Connection Machine

Connection Machine (CM) suunniteltiin alunperin tietokantakoneeksi, joka käsittelee semanttisiin verkkoihin talletettua tietoa rinnakkaisesti suurille tietojoukoille voidaan siis tehdä sama operaatio erittäin tehokkaasti. Suori­

tettavia käskyjonoja on kuitenkin vain yksi. Edellä esitetyn Flynnin takso­

nomian mukaan CM on siis SIMD-kone. Tätä voi verrata tavanomaisiin, korkeintaan muutaman kymmenen prosessorin MIMD-rinnakkaiskoneisiin, joissa käsitellään useita käskyjonoja rinnakkaisesti.

CM käsittelee dataa bitti kerrallaan, mikä merkitsee sitä että muistin käyttö on erittäin tehokasta (ei tarvitse jättää käyttämättömiä bittejä esimerkiksi sanarajojen takia kuten ns. sanakoneissa). Täten muuttuvamittaisilla tieto- alkioilla laskeminen sujuu tehokkaasti CM:ssä. Toisaalta esim. 64-bittisen kertolaskun suorittaminen bittiprosessoreissa ei ole tehokasta, koska ne

(43)

Ensimmäinen CM-arkkitehtuurin toteutus oli Thinking Machines Corp. - yhtiön CM-1. Tästä edelleen kehitetyssä CM-2 -koneessa on kutakin 32:ta bittiprosessoria kohti yksi Weitekin liukulukuyksikkö. Täten CM-2 kykenee tehokkaaseen laskentaan myös esim. liukulukujen kertolaskussa [46,47].

CM-2:n 65 536 prosessoria kykenevät useaan miljardiin laskutoimitukseen sekunnissa. Kokonaan toinen juttu sitten on, millainen teho käytännön las­

kutehtävissä saavutetaan. Kuitenkin esim. Mobil Oilin tutkijat ovat saavut­

taneet 5.6 miljardin liukulukuoperaation jatkuvan tehon seismisen datan analysointitehtävässä [48].

Yleisesti ottaen Connection Machinen tyyppiset SIMD-koneet soveltuvat hyvin suuria datamääriä sisältävien systeemien simulointiin (eli ns. data- intensiivisiin laskutoimituksiin). Sovelluskohteita löytyy erityisesti lokaa­

listen vuorovaikutusten aiheuttamista ilmiöistä. Tällöin kunkin prosessori- elementin tarvitsee tietää vain lähinaapunstoa simuloivien prosessorien tila.

Nämä tilakyselyt voidaan hoitaa tehokkaasti CM:ssä, jos prosessorihilan konfiguraatio on sopiva. Toisaalta jos näin ei ole, voi laskentanopeus pudota todella alhaiseksi.

Soluautomaattien simulointi Connection Machinessa

CM:n prosessorit on kytketty toisiinsa ns. hyperkuutio-topologian mukai­

sesti. Soluautomaattien simuloinnissa tärkeää on se, voidaanko tarvittava solunaapuristo toteuttaa CM:ssä. Jokaisella soluautomaatin simulointiaske- leella täytyy solunaapuriston solujen tilat välittää soluautomaattisäännön laskemista varten. Jos tämä voidaan hoitaa tehokkaasti—toisin sanoen jos täytyy viestiä vain naapureina olevien prosessointielementtien kesken kyetään soluautomaattia simuloimaan erittäin tehokkaasti. Soluautomaa- teissahan soluautomaattisääntö on sama kaikissa soluissa, joten simulointi onnistuu hyvin SIMD-laskentana [49].

Jos soluautomaatin soluja on enemmän kuin CM:ssa on prosessoreja (CM- 2:ssa korkeintaan 65 536 kpl), voidaan kullekin prosessointielementille antaa laskettavaksi useampi solu.

(44)

8.5 Soluautomaatit tietokonetekniikassa

Eräitä yksinkertaisia yksiulotteisia soluautomaatteja voi käyttää satunnais­

lukujen tuottamiseen ([5] s. 247-293). Tämä onnistuu esim. havainnoimalla jonkin solun aikakehitystä. Tilajono voidaan tulkita satunnaisluvuiksi. Yksi­

ulotteisesta n:n mittaisesta soluautomaatista saadaan n kpl tilojen aikaku- vaajia. Jos lähellä toisiaan olevien solujen tilakehityksen korrelaatio ei hait­

taa, voidaan tuottaa rinnakkain n satunnaislukujonoa.

Äärellisen kokoinen soluautomaatti toistaa itsensä lopulta eli on syklinen esim. kaksitilaisen n:n mittaisen yksiulotteisen soluautomaatin syklin mak­

simipituus on 2n — 1. Alkukonfiguraatio ja reunaehdot vaikuttavat myös usein lopputulokseen. Syklin maksimoimiseen tarvitaan toisinaan periodiset reunaehdot, toisinaan riittää nollatilojen käyttö reunaehtoina [50].

Viitteessä [49] kerrotaan soluautomaattien käytöstä superlaskentaan. Artik­

kelissa kuvataan yleistä yksiulotteista (r=l, k=2) soluautomaatti sääntöä (sääntökoodi 30), jonka tilastolliset ominaisuudet läpäisevät useita satun- naisuustestejä. Artikkelin mukaan Connection Machinen tärkein satunnais­

lukugeneraattori on toteutettu tämän soluautomaattisäännön avulla.

Viitteessä [50] on käsitelty soluautomaattityyppisen satunnaislukugene­

raattorin käyttöä tietokonepiirien diagnostiikassa tavanomaisten lineaaristen takaisinkytkentärekisterien (engl. “linear feedback shift register ) sijasta.

Tuloksena on, että sopiva kahdesta yksinkertaisesta soluautomaattisään- nöstä yhdistetty hybridisääntö tuottaa perinteistä menetelmää parempia satunnaislukujonoja. Myöskin piirin toteutus voidaan tehdä perinteistä me­

netelmää yksinkertaisemmin.

(45)

9 Kriittiset ilmiöt

9.1 1/f-skaalautuvuus

Luonnosta löytyy suuri joukko ilmiöitä, jotka ovat itsesimilaarisia aika- tai paikkaskaalauksen suhteen. Tyyppiesimerkkejä paikallisesti skaalautuvista systeemeistä ovat vuoristojonot, jokiverkostot ja rantaviivat [51]. Ajallisesti skaalautuvia ovat esim. maanjäristyksistä, pörssikursseista ja auringon­

pilkuista havaitut signaalit. Skaalautuvuus on usein 1/f-tyyppiä, eli signaalin amplitudin tai frekvenssin jakauma noudattaa yhtälöä

(9.1)

missä a~ 1. Tämä tarkoittaa esimerkiksi sitä, että pieniä maanjäristyksiä on erittäin paljon ja suuria vähän. Maanjäristyksien on havaittu olevan skaa­

lautuvia kymmenen dekadin alueella, ja on esitetty arvioita, että skaalau­

tuvuus pätisi vieläkin suuremmalla alueella. Kaikkein isoimpia maanjäris­

tyksiä on kuitenkin joka tapauksessa niin harvassa, että asiaa on vaikea todistaa [52].

Teoreettiselta kannalta 1/f-skaalautuvuus on pulmallista, sillä on vaikea selittää, miksi jokin systeemi käyttäytyy similaarisesti suuresti toisistaan poikkeavilla aika- ja paikkaskaaloilla. Ns. kriittisten ilmiöiden tutkimus on antanut jonkin verran viitteitä ilmiön syntymekanismeista. Viime aikoina on esitetty uusi selitysmalli näille ilmiöille ns. itseorganisoituvan kriittisyyden pohjalta [28,29,30,31,53].

Skaalautuvuuteen liittyy luonnollisesti myös fraktaalisuus [51]. Fraktaali- geometriahan pyrkii tarjoamaan välineet nimenomaan itsesimilaaristen ilmiöiden analysointiin. Toisaalta soluautomaattien aika- ja palkkakehitys on usein fraktaalista (ks. liitekuvat), joten voisi kuvitella, että soluauto-

Viittaukset

LIITTYVÄT TIEDOSTOT

lausuneet niin tarkasti tuin lausua »voi ajatuksensa sekä siitä että Karjalan. rata on rakennettama Samon radan jälteen että myöskin milloin Po- rm rata

Näin ollen, jos nyky-Venäjä on entisen Neuvostoliiton suora perillinen – asia jonka Venäjän kaikki hallintoelimet mieluusti hyväksyvät – on sen myös otettava täysi

Yhtälöt (6) ja (7) ovat tärkeitä verrattaessa mekaanisen energian taseen periaatteen antaman niin sanotun dissipaatiotermin (engl. dissipation term) eli häviötermin

Jos tehdään näin, niin suoritetaan testaus 5 %:n merkitsevyys- eli riskitasolla, ja hyväksytään H 0... Tätä

Diabetes Käypä hoito -suositus 2018 ADA Standards of Medical Care in Diabetes

 Master data koostuu organisaatiolle yhteisestä tiedosta, jota kutsutaan yleensä globaaliksi master dataksi ja paikallisesti jaetusta master datasta (lokaali MD). • Kultainen

K EYWORDS : Verfication, Model checking, LTL, automata, safety properties, Petri nets, modular analysis, LTS, testers, bounded model checking,

Yhtälöt (6) ja (7) ovat tärkeitä verrattaessa mekaanisen energian taseen periaatteen antaman niin sanotun dissipaatiotermin (engl. dissipation term) eli häviötermin (engl.