Vetenskap förlitar sig på dator modellering - Så vad händer när det går fel?

Från den transformerande upptäckten av penicillin till relativitets- och kvantmekanikens teorier, gick vetenskapen framåt med skrämmande hastighet även innan det fanns datorer. Mycket av detta ligger på den vetenskapliga metodens robusthet: Vetenskapliga resultat valideras genom att replikeras och utvidgas av andra forskare.

Men hur vi gör vetenskap förändras - vi bygger nu mer och mer på komplexa datormodeller för att förstå naturen. Och det visar sig att dessa modeller kan vara nästan omöjliga att reproducera - vilket innebär att en viktig grundsten för vetenskap utmanas. Så vad är den verkliga konsekvensen av denna förändring och vad kan vi göra åt det?

Förmodern vetenskap - känd som "naturlig filosofi" - var empirisk. Empirisk vetenskap använder tidigare observationer för att göra förutsägelser om framtiden, som då kan testas. Tycho Brahe, en dansk-astronom av 16-talet, lyckades göra exakta och omfattande observationer av himlen på detta sätt.

Modern vetenskap, dock är teoretisk. Teoretisk vetenskap gör också prognoser, men det härrör dem från matematiska modeller snarare än från tidigare observationer. Tänk på Isaac Newtons rörelselagar, såsom den inverse kvadratiska gravitationen.

Till exempel finns en ekvation som beskriver jordens omlopp runt solen. Denna ekvation kan användas för att bygga en datormodell där du bara kan ansluta vissa variabler och se hur lösningen ändras. Du kan bara koppla in ett framtida datum och läsa av jordens position på det datumet. Du kan också använda samma program för att modellera andra planetsystem - det är allt baserat på samma matematik. Allt du behöver göra är att plugga in olika massor och olika andra egenskaper hos de berörda kropparna.


innerself prenumerera grafik


Sådana matematiska ekvationer är stora när de är tillgängliga - men ofta är de inte. Vi vet till exempel att det inte finns någon enkel ekvation som löser den så kallade "tre-kroppsproblem", Som beskriver tre kroppar som kretsar runt och påverkar varandra genom gravitationskrafter - som månen, jorden och solen.

Mycket av dagens vetenskap handlar om ännu mer komplicerade system, och saknar exakt exakta lösningar. Sådana modeller måste vara "beräkningsmässiga" - beskriver hur ett system ändras från ett ögonblick till ett annat. Men det finns inget sätt att bestämma exakt tillståndet någon gång i framtiden annat än genom att "simulera" dess utveckling på detta sätt. Väderprognoser är ett välbekant exempel; Fram till tillkomsten av datorer i 1950, var det omöjligt att förutsäga framtida väder snabbare än det faktiskt hände.

Nuvarande vetenskap består vanligtvis av att utarbeta en matematisk modell som beskriver ett komplicerat system och sedan omvandla detta till en beräkningsimulering och kör simuleringen för att göra förutsägelser för att validera modellen.

När modellering misslyckas

Modellering används över vetenskapliga fält - allt från astrofysik och klimat förutsägelse till bioinformatik och ekonomi. Men det är ökande debatt om det faktum att denna vetenskap är svår att validera genom reproduktion.

Det visar sig att det bara inte är tillräckligt att beskriva experimentella metoder i ord. Det beror delvis på att naturliga språk som engelska är helt enkelt för vaga för att beskriva beräkningar exakt. Det finns trots allt en anledning till att programmerare använder programmeringsspråk. En av de största utmaningarna inom mjukvaruutveckling är att konvertera vaga krav till exakta specifikationer för beteende.

Människor - även forskare - är trots allt fallbara. Omvandlar all information till ett program introducerar nästan alltid buggar längs vägen. Till exempel är många forskare beroende av datautforskningsverktyg som kalkylblad, vilka är utformade för enkel användning och inte för robusthet. Det är väldigt lätt att enkelt sammanfatta det felaktiga urvalet av celler i ett kalkylblad utan att få några varningar. Detta var en av de metodologiska brister i ett papper som det amerikanska republikanska partiet brukade basera sin pro-austerity-politik på.

På liknande sätt a färsk studie på 15,770-kalkylbladen som publicerades under undersökningen till det amerikanska företaget Enron visade att 24% av kalkylbladen som innehöll minst en formel hade uppenbara fel, till exempel att lägga upp tomma celler.

I naturvetenskapen, den Mars Climate Observer, en rymdsond lanserad i 1998 för att studera klimatet på Mars, förlorades ett år senare eftersom en del av kontrollprogramvaran felaktigt använde kejserliga istället för metriska enheter. En annan studie av nio oberoende implementeringar av samma geovetenskaplig experiment - med samma datamängd, algoritmer och programmeringsspråk - visade mycket liten överenskommelse i de uppnådda resultaten.

Vad mer är, även om läsaren av en forskningsartikel framgångsrikt kan tolka författarens exakta mening och sedan felfritt översätta den till ett program, finns det fortfarande fallgropar i att utföra det. En särskilt knepig klass av problem uppstår från hur datorer hanterar tal: även om de kan manipulera heltal som 42 och -17 med perfekt noggrannhet, tillåter standardtekniker för att manipulera reella tal som ??3.14 och ?2?1.414 endast ungefärlig noggrannhet. Dessa approximationer innebär att uppenbarligen likvärdiga sätt att beräkna samma värde kan ger olika resultat.

Så vad kan man göra? Om even expertprogramutvecklare inte kan tillförlitligt producera korrekt programvara, vilket hopp finns det för amatörprogrammerare som forskare?

En arbetssätt är att skapa verktyg för att utforma "domänspecifika" programmeringsspråk, var och en skräddarsydd för en viss klass av problem, såsom agenternas beteende på ekonomiska marknader eller diffusion av droger över celler. Dessa syftar till att göra det mycket enklare för specialister att beskriva beräkningar direkt i bekanta ord, snarare än att behöva koda dem indirekt i ett allmänt programmerat språkspråk.

Ett andra tillvägagångssätt syftar till att designa mer uttrycksfulla men ändå användarvänliga "typsystem" för program. Dessa skulle göra det lättare att fånga "dumma" fel, som tomma celler i kalkylblad eller blanda upp värden i olika enheter. Det kan dock inte utesluta alla logiska fel trots. En tredje rad är att utveckla användbara bibliotek av kod för exakt aritmetik, vilket undviker problem med approximation.

Det finns all chans att dessa tillvägagångssätt kan hjälpa till att lösa problemet framöver, eller åtminstone eliminera en del av risken. Världen behöver trots allt vetenskap och forskare behöver datorer - det kommer inte troligen att förändras när som helst snart.

Om författaren

Jeremy Gibbons, professor i databehandling, University of Oxford. Chef för programprojektet för programmeringsspråk.

Denna artikel publicerades ursprungligen på Avlyssningen

Relaterade Bok:

at InnerSelf Market och Amazon