torstai 11. lokakuuta 2012

Satunnaisia paloja.

Kesälomalla luin lähemmäs 15 kirjaa ja sain vertaisarvioinnista läpi kaksi artikkelia.  Yksi jopa ihan filosofian alan lehdessä.

Eräs mielenkiintoisempia lukukokemuksia oli Gregory Chaitinin kirjoittama pieni kirjanen, Metamaths -- The Quest for Omega.

Aivan lyhyesti kirja käsittelee sitä, miten voidaan formaalisti todistaa, että matematiikka perustuu puhtaalle satunnaisuudelle. Minä en tässä aio käydä Chaitinin todistusta läpi, mutta esitän argumentin hieman toisesta näkökulmasta ja yksinkertaisemmin.

Eli, ajatellaanpa seuraavaa lukusarjaa

n      1.       2.       3.      4.         5.
e = e/2 + e/4 + e/8 + e/16 + e/32 ....... e/2n

Voimme valita ts. e:ksi minkä tahansa reaaliluvun ja tuo reaaliluku e, koostuu loputtomasta määrästä termejä jotka ovat muotoa e/2n. Nyt jos valitsemme minkä tahansa luvun n, niin todennäköisyys sille että e/2n on ns. komputoitava numero on 0. Eli, ts. reaalilukujen joukko perusuu täydelliselle satunnaisuudelle, ja koska reaalilukujen jouko pitää sisällään kaikki kokonaisluvut (ja luonnolliset luvut), myös nämä lukujärjestelmät perustuvat puhtaalle satunnaisuudelle. Saman asian voi ilmaista myös näin: todennäköisyys sille, että satunnaisesti valittava reaaliluku on mahdotonta laskea tarkasti tietokoneella (tai millään muodollisella järjestelmällä) on 1. Arjessa ihmiset puhuvat varmuudesta ja epävarmuudesta prosenteilla on siis 100% varmaa että satunnaisesti valittu reaaliluku on tietokoneella mahdoton laskea tarkasti.

Se että matematiikka kuvaa toimii tarkasti ja ennakoitavasti on lähinnä hetkellinen vahinko, kun tietyt reunaehdot täyttyvät. Chaitin kuvaa matematiikan toimivia järjestelmiä (esim. algebra) kaipeiksi teiksi tai pieniksi saarekkeiksi keskellä täydellisen satunnaisuuden merta. Ts. matematiikka toimii silloin tällöin samalla periaatteella kuin sokea kana joka ajoittain löytää jyvän satunnaisella nokkasullaan. Se, että matematiikka kuvaa maailmaa ja se, että sillä voidaan rakentaa lentokoneita ja tietokoneita, on puhdas vahinko. Tämä tietysti tekee maailmankaikkeudesta entistä ihmeellisemmän paikan. Olisi hyvin voinut olla että olisimme sattumalta syntyneet maailmaan, jossa matematiikkamme ei olisi auttanut lentokoneiden tai kännyköiden suunnittelussa ja rakentamisessa.Tämäkään sattuma tosin ei ole mitenkään ihmeellinen siinä mielessä, että jos maailmankaikkeuksia on loputon määrä ja niitä generoituu loputtomassa ajassa aina n. 30 miljardin vuoden välein uusia, niin ennemmin tai myöhemmin syntyy vahingossa sellainen maailma, jossa matematiikka toimii niin kuin se toimii nyt tässä maailmassa missä minä siitä jotain voin kirjoittaa.

Chaitinin pikkuisessa kirjassa oli myös muutama muu mielenkiintoinen yksityiskohta. Erinomaisen hauska huomio oli se, että emme voi koskaan onnistua määrittelemään aitoa satunnaisuutta, sillä jos voisimme tämän tehdä, kykenisimme ennustamaan sen generoitumista. Mikäli taas voisimme ennustaa miten aito satunnaisuus käyttäytyy, kyseessä ei olisi enää olisikaan aito satunnaisuus. Chaitin on kuitenkin kyennyt työssään osoittamaan että vaikka aitoa satunnaisuutta ei voida määritellä yleisesti, voidaan jokaiselle tietokoneohjelmalle määritellä, sellainen luku (Omega), jota tuo tietokoneohjelma ei pysty generoimaan mitenkään. Mitään yleistä Omegaa ei voida siis määritellä, mutta lukuisia Omegoita voidaan määritellä, vaikkakaan niitä ei voida nähdä. Matematiikan kehitys on johtanut hänen mukaansa varsin loogiseen, mutta paradoksaaliseen lopputulemaan. Matemaattisesti voidaan todeta, että aitoa satunnaisuutta on olemassa, mutta sitä ei voida määritellä.

Seuraava esimerkki on jälleen minun epätarkka yksinkertaistukseni hänen ideastaan. Jos leikimme että luku D on aidosti satunnainen esim. (57184756048457132.....) se tarkoittaisi siis sitä, että D i) ei jakaudu tekijöihin ii) ei muodostu kahden luvun summasta tai iii) sitä ei voida tuottaa millään algoritmilla. Mikäli D on aidosti satunnainen silloin mikä tahansa tietokoneohjelma joka haluaa tuottaa D:n on pakosta suurempi ja monimutkaisempi kuin D itse.

Jos leikimme että yksinkertaisin komento, jolla tietokonetta voidaan käskeä tuottamaan yhtään mitään on "Print" -toiminto, silloin yksinkertaisin tapa tuottaa luku D tietokoneella olisi seuraava "Print D". Mikäli taas Print D pitäisi kääntää binääriluvuksi olisi silloin Print-toiminto ennen lukua D (leikisti esim. 010101010-D). Koko tämän tarinan pointti on siis siinä, että aito satunnaisuus on ns. mahdotonta redusoida. Aitoa satunnaisuutta ei voi pakata tai yksinkertaistaa. Tällöin voimme siis mitata satunnaisuuden monimutkaisuutta tai ns. kompleksisuutta sillä bittimäärällä joka on pienin mahdollinen tuon kyseisen ilmiön tuottamiseksi. Mikäli haluamme leikkiä että D olisi redusoitumaton satunnaisluku jolla voimme tuottaa koko Michael Laakasuon DNA-ketjun, olisi silloin ohjelma, joka tuottaa tuon monimutkaisen ketjun kahteen kertaan (Print DD) suhteessa tuotetettuun merkkimäärään vähemmän kompleksinen kuin ohjelma joka tuottaa tuon DNA-ketjun vain kerran (Print D).

Hauska ongelma tosin aidossa satunnaisuudessa on se, että emme koskaan voi etukäteen tietää mikä luku on aidosti satunnainen. Vasta kun olemme rakentaneet tietokoneohjelman, joka yrittää redusoida sille annetun luvun, tiedämme että luku EI ole satunnainen jos ohjelma pysähtyy ja löytää tavan algoritmisesti tuottaa kyseisen luvun. Mikäli ohjelma ei  pysähdy, emme voi koskaan tietää että saattaisiko se pysähtyä jos odotamme hetken pidempää.

Mikäli elämme aidosti satunnaisessa universumissa (mikä on minun mielestäni kaikista mukavin ja hauskin vaihtoehto), se tarkoittaisi sitä, että universumimme ei voi olla tietokoneohjelma. Sitä taas emme voi tietää, että onko universumimme aidosti satunnainen, ennen kuin olemme katsoneet että voiko sitä redusoida tai pakata (ja jos voi, niin onko pakkautuminen niin vähäistä ettei siitä saatava pieneneminen ylitä sen tuottavan algoritmin kompleksisuutta). Tätä taas emme voi tehdä ennen kuin olemme nähneet että miten tämä luku päättyy...

[Edit: Seuraavassa kappaleessa käsittelen ideaa joka ei enää liity edelliseen sen suuremmin.]

Suosittelen kaikille yhteiskunta- ja käyttäytymistieteilijöille matemaattisten ideoiden opiskelua, sillä niistä voi ammentaa paljon ideoita koeasetelmien ja tutkimuskysymysten suunnitteluun. Vaikka en tässä kyseisessä blogipostauksessa nyt käsitellyt rekursion ideaa, olen kehittänyt tutkimusmenetelmän jolla voin tarkastella sitä, että onko ihmisen moraalinen ajattelu rekursiivista. Rekursio taas on puhtaasti matematiikan ja tietojenkäsittelytieteen tuottama idea. Voin kuitenkin esitellä yksinkertaisesti rekursion idean tässä.

Leikimme että meillä on yksinkertainen tietokone ohjelma Paavo, joka printtaa lukujonon 101, joka kerta kun se lukee termin 0.

Kuvitellaan että Paavo tulee maailmaan jossa se näkee seuraavan lukujonon:

1: 101

Jos paavo näkee sen mitä rivillä 1 nyt lukee (101), kirjoittaisi silloin Paavo rivin 1 tilalle seuraavan rivin 2

2: 11011

Jos leikimme että Paavo on todella tyhmä, kirjoittaa hän silloin oman työnsä nähtyään seuraavan rivin

3: 1110111

Jne, loputtomiin.

Eli rekursiivinen funktio on funktio joka toistaa itseään. Hieman löysemmin rekursio on asia joka löytyy myös kielestä. Mikäli laitamme sivualauseita päälauseen sisään, käytämme rekursiota. "Olipa kerran Paavo, joka omisti kissan, joka söi hiiren, jolla oli hattu, jossa oli kukka" jne. Hauskaksi tämä menee siinä vaiheessa kun ruvetaan miettimään että onko ihmisen moraalisssa tajussa tällaisia "fraktaalimaisia" rekursiivisia rakenteita. Vai onko kenties niin, että ihmisen moraalitaju on jotain sellaista joka ei redusoidu kaavoihin (esim. rekursioon)? En kerro tästä ideasta spesifisti moraalin kohdalla nyt sen enempää, koska en halua kenenkään kähveltävän ideaani.

Älykkäät lukijat tosin oivaltavat nopeasti mistä on kyse.

Pahoittelut blogini lukijoille siitä etten ole toviin taas kirjoittanut. Tällä kertaa syy ei ollut minun, talostani katosi netti kahdeksi viikoksi ja Hollantilaiset ovat kehnoja huoltamaan infrastruktuuria.

Loppuun vielä kuva minusta hölkkälenkin jälkeen.








Ei kommentteja:

Lähetä kommentti