Videnskab er afhængig af computermodellering - så hvad sker der, når det går galt?

Fra den transformerende opdagelse af penicillin til relativitetsteorier og kvantemekanik, videnskaben skred frem med en forbløffende hastighed, allerede før der var computere. Meget af dette er ned til robustheden af ​​den videnskabelige metode: videnskabelige resultater valideres ved at blive replikeret og udvidet af andre forskere.

Men den måde, vi udfører videnskab på, ændrer sig - vi er nu mere og mere afhængige af komplekse computermodeller for at forstå naturen. Og det viser sig, at disse modeller kan være næsten umulige at gengive - hvilket betyder, at en vigtig berøringssten for videnskaben bliver udfordret. Så hvad er de virkelige virkninger af denne ændring, og hvad kan vi gøre ved den?

Den førmoderne videnskab - kendt som ”naturfilosofi” - var empirisk. Empirisk videnskab bruger tidligere observationer til at fremsætte forudsigelser om fremtiden, som derefter kan testes. Tycho Brahe, en dansk astronom fra det 16-århundrede, formåede at foretage nøjagtige og omfattende observationer af himlen på denne måde.

Moderne videnskab er imidlertid teoretisk. Teoretisk videnskab fremsætter også forudsigelser, men den stammer fra matematiske modeller snarere end fra forudgående observationer. Tænk på Isaac Newtons bevægelseslove, f.eks den omvendte firkantede gravitationslov.

For eksempel er der en ligning, der beskriver jordens bane omkring solen. Denne ligning kan bruges til at opbygge en computermodel, hvor du bare kan tilslutte visse variabler og se, hvordan løsningen ændrer sig. Du kan bare tilslutte en fremtidig dato og aflæse Jordens placering på den dato. Du kan også bruge det samme program til at modellere andre planetariske systemer - det hele er baseret på den samme matematik. Alt hvad du skal gøre er at tilslutte forskellige masser og forskellige andre egenskaber hos de involverede organer.


indre selv abonnere grafik


Sådanne matematiske ligninger er store, når de er tilgængelige - men ofte er de ikke det. For eksempel ved vi, at der ikke er nogen enkel ligning, der løser den såkaldte “tre-kropsproblem”, Der beskriver tre kroppe, der kredser rundt og påvirker hinanden ved hjælp af tyngdekræfter - som månen, Jorden og solen.

Meget af den aktuelle videnskab omhandler endnu mere komplicerede systemer, og mangler på lignende måde nøjagtige løsninger. Sådanne modeller skal være ”computational” - og beskrive, hvordan et system skifter fra det ene øjeblik til det næste. Men der er ingen måde at bestemme den nøjagtige tilstand på et eller andet tidspunkt i fremtiden, bortset fra at "simulere" dens udvikling på denne måde. Vejrudsigter er et velkendt eksempel; indtil fremkomsten af ​​computere i 1950'erne var det umuligt at forudsige fremtidens vejr hurtigere end det faktisk skete.

Nuværende videnskab består typisk af at udtænke en matematisk model, der beskriver et kompliceret system, derefter omdanne dette til en beregningssimulering og køre simuleringen for at foretage forudsigelser for at validere modellen.

Når modelleringen mislykkes

Modellering bruges på tværs af videnskabelige områder - lige fra astrofysik og klima forudsigelse til bioinformatik og økonomi. Men der er stigende debat om det faktum, at denne videnskab er vanskelig at validere gennem reproduktion.

Det viser sig, at det ganske enkelt ikke er nok at beskrive eksperimentelle metoder i ord. Det skyldes delvis, at naturlige sprog som engelsk simpelthen er for vage til at beskrive beregninger nøjagtigt. Der er trods alt en grund til, at programmerere bruger programmeringssprog. En af de største udfordringer inden for softwareudvikling er at konvertere vage krav til nøjagtige specifikationer for adfærd.

Mennesker - også forskere - er trods alt falelige. Omdannelse af enhver information til et program introducerer næsten uundgåeligt bugs undervejs. For eksempel er mange forskere afhængige af dataudforskningsværktøjer såsom regneark, der er designet til brugervenlighed og ikke for robusthed. Det er meget let blot at opsummere det forkerte celleområde i et regneark uden at få nogen advarsler. Dette var en af metodologiske mangler i et papir, som det amerikanske republikanske parti brugte til at basere deres nøjesomhedspolitik på.

Tilsvarende a nylig undersøgelse på 15,770-regneark, der blev offentliggjort under undersøgelsen af ​​det amerikanske selskab Enron viste, at 24% af regnearkene, der indeholdt mindst en formel, havde åbenlyse fejl, såsom at tilføje tomme celler.

Inden for naturvidenskaben Mars Klimobserver, en rumsonde, der blev lanceret i 1998 for at studere klimaet på Mars, gik tabt et år senere, fordi en del af kontrolsoftwaren fejlagtigt brugte imperialistisk i stedet for metriske enheder. En anden undersøgelse af ni uafhængige implementeringer af det samme geovidenskabseksperiment - ved hjælp af det samme datasæt, algoritmer og programmeringssprog - viste meget lidt enighed i de opnåede resultater.

Hvad mere er, selvom læseren af ​​en forskningsartikel med succes kan fortolke forfatterens præcise mening og derefter fejlfrit oversætte den til et program, er der stadig faldgruber i at udføre det. En særlig vanskelig klasse af problemer opstår fra, hvordan computere håndterer tal: Selvom de kan manipulere heltal såsom 42 og -17 med perfekt nøjagtighed, tillader standardteknikker til at manipulere reelle tal såsom ??3.14 og ?2?1.414 kun omtrentlig nøjagtighed. Disse tilnærmelser betyder, at tilsyneladende ækvivalente måder at beregne den samme værdi kan giver forskellige resultater.

Så hvad kan der gøres? Hvis selv ekspert softwareudviklere ikke pålideligt kan producere korrekt software, hvad er der da håb for amatørprogrammører som forskere?

En arbejdslinje er at fremstille værktøjer til at designe “domænespecifikke” programmeringssprog, der hver er skræddersyet til en bestemt klasse af problemer, såsom agenteres adfærd på økonomiske markeder eller diffusion af medikamenter på tværs af celler. Disse sigter mod at gøre det meget lettere for specialister at beskrive beregninger direkte i velkendte termer snarere end at skulle kode dem indirekte på et programmeringssprog til generelle formål.

En anden tilgang søger at designe mere udtryksfulde, men stadig brugervenlige "typesystemer" til programmer. Disse ville gøre det lettere at fange "fjollede" fejl, såsom blanke celler i regneark eller blanding af værdier i forskellige enheder. Det kan dog ikke udelukke alle logiske fejl. En tredje linje er at udvikle brugbare biblioteker med kode til nøjagtig aritmetik og undgå tilnærmelsesproblemerne.

Der er enhver chance for, at disse tilgange kan hjælpe med at løse problemet fremad eller i det mindste eliminere noget af risikoen. Når alt kommer til alt har verden brug for videnskab, og forskere har brug for computere - det vil sandsynligvis ikke ændre sig snart.

Om forfatteren

Jeremy Gibbons, professor i computere, University of Oxford. Leder af forskningsprogrammet for programmeringssprog.

Denne artikel blev oprindeligt vist på The Conversation

Relateret bog:

at InnerSelf Market og Amazon