Wetenschap is gebaseerd op Computer Modelling - So What Happens When It Goes Wrong?

Van de transformerende ontdekking van penicilline tot de theorieën van relativiteit en kwantummechanica, de wetenschap vorderde met verbijsterende snelheid nog voordat er computers waren. Veel van dit komt door de robuustheid van de wetenschappelijke methode: wetenschappelijke resultaten worden gevalideerd door te worden gerepliceerd en uitgebreid door andere wetenschappers.

Maar de manier waarop we wetenschap doen, is aan het veranderen - we vertrouwen nu steeds meer op complexe computermodellen om de natuur te begrijpen. En het blijkt dat deze modellen bijna onmogelijk te reproduceren zijn - wat betekent dat een belangrijke toetssteen van de wetenschap wordt uitgedaagd. Dus wat zijn de werkelijke gevolgen van deze verandering en wat kunnen we eraan doen?

Pre-moderne wetenschap - bekend als "natuurlijke filosofie" - was empirisch. Empirische wetenschap gebruikt eerdere waarnemingen om voorspellingen te doen over de toekomst, die vervolgens kunnen worden getest. Tycho Brahe, een 16DE -eeuwse Deense astronoom, is erin geslaagd op deze manier nauwkeurige en uitgebreide observaties van de hemel te maken.

De moderne wetenschap is echter theoretisch. Theoretische wetenschap maakt ook voorspellingen, maar het ontleent ze van wiskundige modellen in plaats van eerdere waarnemingen. Denk aan de wetten van de beweging Isaac Newton's, zoals de omgekeerde kwadratische wet van de zwaartekracht.

Er is bijvoorbeeld een vergelijking die de baan van de aarde rond de zon beschrijft. Deze vergelijking kan worden gebruikt om een ​​computermodel te bouwen waarin je eenvoudig bepaalde variabelen kunt aansluiten en kunt zien hoe de oplossing verandert. Je zou gewoon een datum in de toekomst kunnen inpluggen en de positie van de aarde op die datum kunnen aflezen. Je zou hetzelfde programma ook kunnen gebruiken om andere planetaire systemen te modelleren - het is allemaal gebaseerd op dezelfde wiskunde. Het enige wat u hoeft te doen is het aansluiten van verschillende massa's en verschillende andere eigenschappen van de betrokken lichamen.


innerlijk abonneren grafisch


Dergelijke wiskundige vergelijkingen zijn geweldig als ze beschikbaar zijn - maar vaak zijn ze dat niet. We weten bijvoorbeeld dat er geen eenvoudige vergelijking is die de zogenaamde "oplossing" oplost.drieledig probleem", Waarin wordt beschreven drie lichamen in een baan rond en beïnvloeden elkaar door zwaartekracht - zoals de maan, de aarde en de zon.

Veel van de huidige wetenschap gaat over nog gecompliceerdere systemen en mist evenmin exacte oplossingen. Dergelijke modellen moeten "computationeel" zijn - ze beschrijven hoe een systeem van het ene moment op het andere verandert. Maar er is geen manier om de exacte toestand ooit in de toekomst te bepalen anders dan door de evolutie op deze manier te "simuleren". Weersvoorspelling is een bekend voorbeeld; tot de komst van computers in de 1950s was het onmogelijk om toekomstig weer sneller te voorspellen dan het feitelijk gebeurde.

De huidige wetenschap bestaat meestal uit het ontwerpen van een wiskundig model dat een gecompliceerd systeem beschrijft, dit vervolgens in een computationele simulatie verandert en de simulatie uitvoert om voorspellingen te doen om het model te valideren.

Wanneer het modelleren faalt

Modellering wordt op alle wetenschapsgebieden toegepast, variërend van astrofysica en Climate Prediction naar bio-informatica en economie. Maar er is toenemende discussie over het feit dat deze wetenschap moeilijk te valideren is via reproductie.

Het blijkt alleen niet voldoende om experimentele methoden simpelweg in woorden te beschrijven. Dat komt deels omdat natuurlijke talen zoals het Engels simpelweg te vaag zijn om de berekeningen precies te beschrijven. Er is immers een reden waarom programmeurs programmeertalen gebruiken. Een van de grootste uitdagingen bij softwareontwikkeling is het omzetten van vage vereisten in nauwkeurige gedragsspecificaties.

Mensen - zelfs wetenschappers - zijn immers feilbaar. Het omzetten van informatie in een programma introduceert vrijwel altijd bugs onderweg. Veel wetenschappers zijn bijvoorbeeld afhankelijk van hulpmiddelen voor gegevensverkenning, zoals spreadsheets, die zijn ontworpen met het oog op gebruiksgemak en niet voor robuustheid. Het is heel eenvoudig om eenvoudig het verkeerde cellenbereik in een spreadsheet op te sommen, zonder waarschuwingen te krijgen. Dit was een van de methodologische tekortkomingen in een document waarop de Amerikaanse Republikeinse Partij hun pro-bezuinigingsbeleid baseerde.

Evenzo een recente studie op de 15,770-spreadsheets die tijdens het onderzoek naar het Amerikaanse bedrijf Enron openbaar werden gemaakt, bleek dat 24% van de spreadsheets met ten minste één formule duidelijke fouten bevatte, zoals het toevoegen van lege cellen.

In de natuurwetenschappen, de Mars Climate Observer, een ruimtesonde die in 1998 werd gelanceerd om het klimaat op Mars te bestuderen, ging een jaar later verloren omdat een deel van de besturingssoftware ten onrechte imperiale in plaats van metrische eenheden gebruikte. Een andere studie negen onafhankelijke implementaties van dezelfde geowetenschappelijke experiment - met dezelfde dataset, algoritmen en programmeertaal - toonde zeer weinig overeenstemming in de verkregen resultaten.

Sterker nog, zelfs als de lezer van een onderzoeksartikel de precieze betekenis van de schrijver met succes kan interpreteren en deze vervolgens feilloos in een programma kan vertalen, zijn er nog steeds valkuilen bij de uitvoering ervan. Een bijzonder lastige categorie problemen komt voort uit de manier waarop computers met getallen omgaan: hoewel ze gehele getallen zoals 42 en -17 met perfecte nauwkeurigheid kunnen manipuleren, laten standaardtechnieken voor het manipuleren van reële getallen zoals 3.14 en 2 1.414 slechts een geschatte nauwkeurigheid toe. Deze benaderingen betekenen dat schijnbaar gelijkwaardige manieren om dezelfde waarde te berekenen dat ook kunnen verschillende resultaten opleveren.

Wat kan er gedaan worden? Als zelfs deskundige softwareontwikkelaars betrouwbare software niet op betrouwbare wijze kunnen produceren, welke hoop is er dan voor amateurprogrammeurs zoals wetenschappers?

Een van de manieren om instrumenten te ontwikkelen voor het ontwerpen van 'domeinspecifieke' programmeertalen, elk afgestemd op een bepaalde probleemklasse, zoals het gedrag van agents in economische markten of de diffusie van geneesmiddelen in cellen. Deze willen het voor specialisten eenvoudiger maken om berekeningen direct in vertrouwde termen te beschrijven, in plaats van ze indirect te moeten coderen in een algemene programmeertaal.

Een tweede benadering is gericht op het ontwerpen van meer expressieve maar nog steeds gebruikersvriendelijke "type systemen" voor programma's. Deze zouden het gemakkelijker maken om "dwaze" fouten te vangen, zoals lege cellen in spreadsheets, of waarden in verschillende eenheden met elkaar te vermengen. Het kan echter niet alle logische fouten uitsluiten. Een derde lijn is het ontwikkelen van bruikbare codebibliotheken voor exacte rekenkunde, waarbij de problemen van de approximatie worden vermeden.

Er is alle kans dat deze benaderingen het probleem in de toekomst kunnen helpen oplossen of op zijn minst een deel van het risico kunnen wegnemen. De wereld heeft immers wetenschap nodig en wetenschappers hebben computers nodig - dat zal waarschijnlijk niet snel veranderen.

Over de auteur

Jeremy Gibbons, hoogleraar computertechnologie, universiteit van Oxford. Hoofd van het onderzoeksthema programmeertalen.

Dit artikel verscheen oorspronkelijk op The Conversation

Verwante Boek:

at InnerSelf Market en Amazon