Tiede perustuu tietokonemallinnukseen - niin mitä tapahtuu, kun se menee väärin?

Penisilliinin muuttuvasta löytymisestä suhteellisuusteorian ja kvanttimekaniikan teorioihin tiede edistyi mielenkiintoisella nopeudella jo ennen tietokoneita. Suuri osa tästä on tieteellisen menetelmän luotettavuus: tieteelliset tulokset validoidaan toistamalla ja laajentamalla muita tutkijoita.

Mutta tapa, jolla teemme tieteen, muuttuu - luotamme yhä enemmän monimutkaisiin tietokonemalleihin luontoa ymmärtääkseen. Ja käy ilmi, että nämä mallit voivat olla lähes mahdotonta toistaa - mikä merkitsee, että tiede on tärkeä haaste. Mitkä ovat tämän muutoksen todelliset seuraukset ja mitä voimme tehdä sen suhteen?

Pre-modern-tiede, joka tunnetaan nimellä "luonnollinen filosofia", oli empiirinen. Empiirinen tiede käyttää aikaisempia havaintoja ennusteita tulevaisuudesta, joita voidaan sitten testata. Tycho Brahe, 16th-luvulla tanskalainen tähtitieteilijä, pystyi tekemään täsmällisiä ja kattavia havaintoja taivaasta tällä tavalla.

Nykyaikainen tiede on kuitenkin teoreettinen. Teoreettinen tiede tekee myös ennusteita, mutta se johdetaan matemaattisista malleista eikä aiemmista havainnoista. Ajattele Isaac Newtonin liikkeitä koskevia lakeja, kuten käänteinen neliö laki gravitaation.

Esimerkiksi on olemassa yhtälö, joka kuvaa maapallon kiertorataa auringon ympärillä. Tätä yhtälöä voidaan käyttää sellaisen tietokonemallin rakentamiseen, johon voit liittää tiettyjä muuttujia ja nähdä, miten ratkaisu muuttuu. Voisit vain liittää tulevan päivämäärän ja lukea maan aseman tuona päivänä. Voit myös käyttää samaa ohjelmaa muiden planeettajärjestelmien mallinnukseen - se kaikki perustuu samaan matematiikkaan. Sinun tarvitsee vain kytkeä eri massat ja erilaiset muut elinten ominaisuudet.


sisäinen tilausgrafiikka


Tällaiset matemaattiset yhtälöt ovat suuria, kun ne ovat käytettävissä - mutta usein ne eivät ole. Tiedämme esimerkiksi, että ei ole olemassa yksinkertaista yhtälöä, joka ratkaisee ns.kolmen ruumiin ongelma”, Jossa kuvataan kolme kehoa, jotka kiertävät ja vaikuttavat toisiinsa gravitaatiovoimilla - kuten kuu, maa ja aurinko.

Suuri osa nykyisistä tiedoista käsittelee entistä monimutkaisempia järjestelmiä, ja siinä ei myöskään ole tarkkoja ratkaisuja. Tällaisten mallien on oltava "laskennallisia", jotka kuvaavat, miten järjestelmä vaihtuu hetkestä toiseen. Mutta ei ole mitään keinoa määrittää tarkkaa tilaa milloin tahansa tulevaisuudessa kuin "simuloimalla" sen kehitystä tällä tavalla. Sääennuste on tuttu esimerkki; kunnes tietokoneiden tulo 1950-järjestelmissä oli mahdotonta ennustaa tulevaa säätä nopeammin kuin todellisuudessa tapahtui.

Nykyinen tiede koostuu tyypillisesti matemaattisen mallin laatimisesta, joka kuvaa monimutkaista järjestelmää ja kääntää sen sitten laskennalliseksi simulaatioksi ja suorittaa simulaation ennusteiden tekemiseen mallin validoimiseksi.

Kun mallinnus epäonnistuu

Mallinnusta käytetään tieteellisillä aloilla - astrofysiikasta ja ilmaston ennustaminen bioinformatiikkaan ja talouteen. Mutta siellä on lisääntyvä keskustelu siitä, että tätä tiedettä on vaikea todentaa lisääntymisellä.

On käynyt ilmi, että pelkkä kokeellisten menetelmien kuvaaminen sanoin ei riitä. Tämä johtuu osittain siitä, että esimerkiksi englannin kaltaiset luonnolliset kielet ovat yksinkertaisesti liian epämääräisiä kuvausten tarkalle kuvaamiseksi. Onhan syy, miksi ohjelmoijat käyttävät ohjelmointikieliä. Yksi suurimmista haasteista ohjelmistokehityksessä on epämääräisten vaatimusten muuttaminen täsmällisiksi käyttäytymisvaatimuksiksi.

Ihmiset - jopa tutkijat - ovat loppujen lopuksi vääriä. Tietojen muuntaminen ohjelmaksi tuo melkein aina vikoja matkan varrella. Esimerkiksi monet tiedemiehet ovat riippuvaisia ​​tiedonhankintatyökaluista, kuten laskentataulukoista, jotka on suunniteltu helppokäyttöisiksi eikä vakaiksi. On erittäin helppoa yksinkertaisesti laskea taulukon väärä solualue saamatta varoituksia. Tämä oli yksi menetelmät julkaisussa, jonka US republikaanipuolue käytti tukipolitiikkansa periaatteiden pohjalta.

Samoin a Tuoreen tutkimuksen 15,770-laskentataulukoissa, jotka julkistettiin USA: n yhtiötä koskevan tutkimuksen aikana, Enron osoitti, että 24%: lla laskentataulukoista, joissa oli vähintään yksi kaava, oli ilmeisiä virheitä, kuten tyhjien solujen lisääminen.

Luonnontieteissä Mars Climate Observer1998: ssa Marsin ilmaston tutkimiseen käynnistetty avaruusanturi menetettiin vuosi myöhemmin, koska yksi osa ohjausohjelmistoa käytti virheellisesti keisarillista metristen yksiköiden sijasta. Toisessa tutkimuksessa yhdeksän saman geotietokokeen riippumattomasta toteutuksesta - käyttäen samaa tietokantaa, algoritmeja ja ohjelmointikieliä - saatiin hyvin vähän sopimusta saaduista tuloksista.

Lisäksi vaikka tutkimuspaperin lukija pystyisikin onnistuneesti tulkitsemaan kirjoittajan tarkan merkityksen ja kääntämään sen sitten virheettömästi ohjelmaksi, sen toteuttamisessa on silti sudenkuoppia. Yksi erityisen hankala ongelmaluokka johtuu siitä, kuinka tietokoneet käsittelevät lukuja: vaikka ne voivat käsitellä kokonaislukuja, kuten 42 ja -17, täydellisellä tarkkuudella, standarditekniikat reaalilukujen, kuten 3.14 ja 2, käsittelemiseksi sallivat vain likimääräisen tarkkuuden. Nämä likiarvot tarkoittavat, että näennäisesti vastaavat tavat laskea sama arvo voivat tuottaa erilaisia ​​tuloksia.

Mitä siis voidaan tehdä? Jos jopa asiantuntijaohjelmistokehittäjät eivät pysty luotettavasti tuottamaan oikeaa ohjelmistoa, mitä toivoa on amatööriohjelmoijille kuten tiedemiehille?

Yksi työryhmä on tuottaa työkaluja "verkkotunnuskohtaisia" ohjelmointikieliä varten, joista jokainen on räätälöity tietyn luokan ongelmiin, kuten tekijöiden käyttäytyminen talousmarkkinoilla tai lääkkeiden leviäminen soluihin. Näillä pyritään helpottamaan asiantuntijoiden kuvaamista laskelmista suoraan tutuilla termeillä sen sijaan, että ne olisi koodattava välillisesti yleiskäyttöisessä ohjelmointikielessä.

Toinen lähestymistapa pyrkii suunnittelemaan enemmän ilmeikkäitä mutta silti käyttäjäystävällisiä ”tyyppijärjestelmiä” ohjelmille. Näin helpotettaisiin "typerien" virheiden, kuten tyhjien solujen, ottamista taulukkolaskuihin tai arvojen sekoittamista eri yksiköissä. Se ei kuitenkaan sulje pois kaikkia loogisia virheitä. Kolmas rivi on kehittää käyttökelpoisia koodikirjastoja tarkalle aritmeettiselle välttämiseksi lähentymisongelmista.

On olemassa kaikki mahdollisuudet, että nämä lähestymistavat voivat auttaa korjaamaan ongelman eteenpäin tai ainakin poistamaan osan riskistä. Loppujen lopuksi maailma tarvitsee tieteen ja tiedemiehet tarvitsevat tietokoneita - se ei todennäköisesti muutu milloin tahansa pian.

Author

Jeremy Gibbons, tietotekniikan professori, Oxfordin yliopisto. Ohjelmointikielien tutkimusryhmän päällikkö.

Tämä artikkeli ilmestyi alun perin keskustelussa

Aiheeseen liittyvä kirja:

at InnerSelf Market ja Amazon