Game of Life

Game of Life on brittiläisen matemaatikon John Horton Conwayn vuonna 1970 kehittämä soluautomaatti, eräänlainen ajatusleikki, jossa ruudukossa olevia kuvioita muokataan yksinkertaisten, determinististen sääntöjen mukaan. Peli tuottaa mutkikkaita, emergenttejä kuvioita, vaikka pelin säännöt ovat hyvin yksinkertaiset. Pelin nimi juontuu siitä, että pelissä ilmestyvät kuviot voivat sisältää elävien olentojen ominaisuuksiksi assosioituja piirteitä, kuten replikoituminen ja liikkuminen.

Pelin ruutuolioille on annettu nimiä kuten Avaruuslaiva ja Kulkuri. Kenties tunnetuin pelin olioista on viidestä solusta muodostuva r-Pentomino, joka yksinkertaisuudestaan huolimatta generoi tyhjälle pelilaudalle asetettuna joukon mitä erilaisimpia olioita.

Vaikka peli on periaatteessa hyvin yksinkertainen peli, siihen liittyy erittäin monimutkaista dynamiikkaa ja pelin tiimoilta on kirjoitettu runsaasti tieteellisiä artikkeleja.

Pelin säännöt 
Pelissä kunkin ruudun eli solun väri riippuu naapuriruutujen väristä. Musta ruutu on elävä, valkoinen kuollut. Jos 2–3 naapuriruutua on eläviä eli mustia, solu säilyy mustana eli elossa. Jos ruudulla on enemmän kuin kolme elävää naapuria, ruutu kuolee ja muuttuu valkoiseksi. Ruutu kuolee myös, jos sillä ei ole yhtään mustaa eli elävää naapuria. Jos valkoisella, kuolleella ruudulla on kolme elävää naapuria, siihen syntyy musta ruutu.

Hieman tiivistetymmin pelin säännöt ovat

 Solu muuttuu eläväksi, jos sen naapureista tasan kolme on eläviä.
 Solu pysyy elävänä, jos sen naapureista tasan 2 tai 3 on eläviä. Muuten solu kuolee.

Niinpä sanotaan, että "klassisella" Conwayn pelillä on B3/S23 sääntö. S23 tarkoittaa, että 2 tai 3 naapurisolua pitää solun hengissä (Survive), ja B3 merkitsee, että kolme naapurisolua synnyttää (Birth) uuden solun. Pelistä voidaan tietenkin johtaa erilaisia muunnelmia muuttamalla pelin sääntöjä, mutta tämä on syytä tehdä harkiten, sillä lähes kaikki muunnelmat johtavat joko kaikkien solujen nopeaan kuolemaan tai täysin holtittomaan lisääntymiseen.

Peliin liittyviä ilmiöitä 
Eräs pelin piirre on se, että sukupolvien kuluessa soluryhmillä eli olioilla ilmenee ominaisuuksia, joita ei voi päätellä pelkästään säännöistä ja alkutilanteesta. Paitsi että peli havainnollistaa alkuarvoherkän järjestelmän luonnetta, niin sillä voidaan toteuttaa myös esimerkiksi loogisia portteja.

Jaksollisuus 
Yksin pelilaudalle asetettu solu kuolee pois jo ensimmäisessä sukupolvessa. Sama kohtalo odottaa kahta vierekkäin asetettua solua. Kolme rinnakkain asetettua solua käyttäytyy kuitenkin aivan toisin. Sukupolven vaihtuessa reunimmaiset solut kuolevat mutta keskimmäisen solun vierelle syntyy kaksi uutta, jolloin muodostuu edelliseen nähden poikittaisessa suunnassa oleva kolmen solun rivi. Seuraavassa sukupolvessa tilanne palautuu taas alkuperäiseksi. Tämä kolmen rinnakkaisen solun rivi ei siis ole ainoastaan selviydy sukupolvesta toiseen vaan peräti ikuisesti. Sillä on myös ominaisuus, jota ei ole kirjoitettu alkuperäisiin sääntöihin: kaksijaksollisuus.

Pelissä on tavattoman monia muitakin kaksijaksoisia ratkaisuja eli olioita, jotka palautuvat alkuperäiseen tilanteeseen joka toisessa sukupolvessa. Lisäksi on mahdollista löytää 3-, 4-, 6- tai vaikkapa 15-jaksoisia ratkaisuja. Jotkin oliot muuntuvat sukupolvesta toiseen, kunnes saavuttavat tällaisen jaksollisen tilan. Matemaattisesti ajatellen tällainen tila on jaksollinen attraktori.

Liikuntakyky 
Jo hyvin pienellä kokeilulla on mahdollista löytää jaksollisesti muuttuva olio, joka palautuu muutaman sukupolven jälkeen alkuperäiseen muotoonsa, mutta eri kohdassa pelilautaa. Tällöin on luontevaa katsoa saavuttaneen liikuntakyvyn. Liikkuvat oliot jatkavat matkaansa ikuisesti, elleivät törmää toisiin olioihin.

Syöminen 
Vaikka kahden olion törmääminen johtaa usein molempien katoamiseen, näin ei käy aina. Eräs merkillinen piirre on, että jotkin paikoillaan pysyvät oliot selviytyvät törmäyksestä liikkuvaan olioon niin, että paikoillaan pysyvä olio saa muutaman sukupolven jälkeen alkuperäisen muotonsa takaisin liikkuvan olion kuitenkin tuhoutuessa. Tätä ilmiötä voi hyvin pitää analogiana syömiselle.

On syytä huomata, että syövät oliot voivat syödä vain tietyntyyppisiä liikkujia ja niiden täytyy tulla tietystä suunnasta. Tätä seikkaa voidaan ajatella eräänlaisena vastineena ekologiselle lokerolle.

Lisääntyminen 

Eräänä pelin tavoitteena on löytää Replikaattori eli sellainen olio, joka muuttumisensa yhteydessä tuottaa itseään vastaavia kopioita. Replikaattori siis kykenee lisääntymään. Teoriassa tällainen olio pitäisi pystyä muodostamaan, mutta toistaiseksi kukaan ei ole löytänyt sopivaa tapaa solujen asettamiseksi.

Eräästä oliosta käytetään nimitystä Kulkuritykki. Se on muutamasta soluryhmästä muodostuva 30-jaksoinen kokonaisuus, josta irtoaa poispäin liikkuva Kulkuri-olio aina kolmenkymmenen sukupolven välein. Mielenkiintoista on, että jos kahdeksan tällaista Kulkuri-oliota kohtaa toisensa sopivalla tavalla, niistä muodostuu uusi Kulkuritykki.

Vaikka alkuperäisessä pelissä lisääntyvää oliota ei olekaan vielä saatu aikaan, lisääntyviä olioita on onnistuttu tuottamaan pelin sääntöjä muuttamalla. Peli, jonka sääntö on S23/B36 tunnetaan nimellä HighLife. Siinä tunnetaan replikaattori, jonka syntymiseen johtava alkutilanne muodostuu ainoastaan kuudesta solusta. Replikaattorin tuottaminen on tietenkin triviaalia pelissä, jonka sääntö on B1. Tällöin jo yksinäinen solu muodostaa replikaattorin.

Katso myös 
Soluautomaatti

Lähteet

Aiheesta muualla

 Game of Life on JavaScript

Tietojenkäsittelyteoria
Vuoden 1970 videopelit