Wissenschaft setzt auf Computermodellierung - Was passiert, wenn es schief geht?

Von der transformierenden Entdeckung des Penicillins zu den Relativitätstheorien und der Quantenmechanik ging die Wissenschaft mit unglaublicher Geschwindigkeit voran, noch bevor es Computer gab. Vieles ist auf die Robustheit der wissenschaftlichen Methode zurückzuführen: Wissenschaftliche Ergebnisse werden validiert, indem sie von anderen Wissenschaftlern repliziert und erweitert werden.

Aber die Art und Weise, wie wir Wissenschaft betreiben, verändert sich - wir verlassen uns heute zunehmend auf komplexe Computermodelle, um die Natur zu verstehen. Und es stellt sich heraus, dass diese Modelle fast unmöglich reproduziert werden können - was bedeutet, dass ein wichtiger Prüfstein der Wissenschaft in Frage gestellt wird. Was sind also die Auswirkungen dieser Veränderung in der realen Welt und was können wir dagegen tun?

Die vormoderne Wissenschaft - bekannt als "Naturphilosophie" - war empirisch. Die empirische Wissenschaft verwendet frühere Beobachtungen, um Vorhersagen über die Zukunft zu treffen, die dann getestet werden können. Tycho Brahes, ein dänischer Astronom des XN. Jahrhunderts, gelang es auf diese Weise, genaue und umfassende Beobachtungen des Himmels zu machen.

Die moderne Wissenschaft ist jedoch theoretisch. Theoretische Wissenschaft macht auch Vorhersagen, aber sie leitet sie von mathematischen Modellen eher als von vorherigen Beobachtungen ab. Denken Sie an Isaac Newtons Bewegungsgesetze, wie z das umgekehrte quadratische Gesetz der Gravitation.

Zum Beispiel gibt es eine Gleichung, die die Umlaufbahn der Erde um die Sonne beschreibt. Diese Gleichung kann verwendet werden, um ein Computermodell zu erstellen, in das Sie bestimmte Variablen einfach einklinken und sehen können, wie sich die Lösung ändert. Sie könnten einfach ein zukünftiges Datum einstecken und die Position der Erde an diesem Datum ablesen. Sie könnten auch das gleiche Programm verwenden, um andere Planetensysteme zu modellieren - es basiert alles auf derselben Mathematik. Sie müssen nur verschiedene Massen und verschiedene andere Eigenschaften der beteiligten Körper einstecken.


Innerself-Abonnieren-Grafik


Solche mathematischen Gleichungen sind großartig, wenn sie verfügbar sind - aber oft nicht. Zum Beispiel wissen wir, dass es keine einfache Gleichung gibt, die das so genannte "Drei-Körper-Problem", Die drei Körper beschreiben, die sich umkreisten und sich gegenseitig durch Gravitationskräfte beeinflussen - wie Mond, Erde und Sonne.

Ein großer Teil der aktuellen Wissenschaft beschäftigt sich mit noch komplizierteren Systemen und in ähnlicher Weise fehlen exakte Lösungen. Solche Modelle müssen "rechnerisch" sein und beschreiben, wie sich ein System von einem Augenblick zum nächsten ändert. Aber es gibt keine Möglichkeit, den genauen Zustand irgendwann in der Zukunft zu bestimmen, außer indem man seine Entwicklung auf diese Weise "simuliert". Wettervorhersagen sind ein bekanntes Beispiel; Bis zum Aufkommen von Computern in den 1950 war es unmöglich, zukünftiges Wetter schneller vorherzusagen als es tatsächlich passierte.

Die aktuelle Wissenschaft besteht in der Regel darin, ein mathematisches Modell zu entwickeln, das ein kompliziertes System beschreibt, dieses dann in eine Computersimulation umzuwandeln und die Simulation auszuführen, um Vorhersagen zu treffen, um das Modell zu validieren.

Wenn die Modellierung fehlschlägt

Die Modellierung findet in allen wissenschaftlichen Bereichen statt - von der Astrophysik bis hin zur Klimaprognose zu Bioinformatik und Wirtschaft. Aber da ist zunehmende Debatte über die Tatsache, dass diese Wissenschaft durch Reproduktion schwer zu bestätigen ist.

Es zeigt sich, dass es nicht ausreicht, experimentelle Methoden in Worten zu beschreiben. Das liegt teilweise daran, dass natürliche Sprachen wie Englisch einfach zu vage sind, um Berechnungen genau zu beschreiben. Es gibt schließlich einen Grund, warum Programmierer Programmiersprachen verwenden. Eine der größten Herausforderungen in der Softwareentwicklung besteht darin, vage Anforderungen in präzise Verhaltensspezifikationen umzusetzen.

Menschen - auch Wissenschaftler - sind schließlich fehlbar. Die Umwandlung von Informationen in ein Programm führt fast immer zu Fehlern auf dem Weg. Beispielsweise sind viele Wissenschaftler auf Tools zur Datenexploration wie Tabellenkalkulationen angewiesen, die auf Benutzerfreundlichkeit und nicht auf Robustheit ausgelegt sind. Es ist sehr einfach, einfach den falschen Bereich von Zellen in einer Tabelle zusammenzufassen, ohne irgendwelche Warnungen zu erhalten. Dies war einer der methodische Mängel in einem Papier, auf dem die Republikanische Partei der USA ihre Pro-Austeritätspolitik gründete.

Ähnlich a aktuellen Studie Auf den 15,770-Tabellen, die während der Untersuchung des US-Unternehmens Enron veröffentlicht wurden, zeigte sich, dass 24% der Tabellenkalkulationen mit mindestens einer Formel offensichtliche Fehler aufwiesen, wie zum Beispiel leere Zellen.

In den Naturwissenschaften, der Mars Klima Beobachter, eine Raumsonde, die in 1998 gestartet wurde, um das Klima auf dem Mars zu untersuchen, ging ein Jahr später verloren, weil ein Teil der Steuerungssoftware irrtümlicherweise imperiale statt metrische Einheiten verwendete. Eine weitere Studie von neun unabhängigen Implementierungen des gleichen geowissenschaftlichen Experiments - unter Verwendung des gleichen Datensatzes, der gleichen Algorithmen und der gleichen Programmiersprache - zeigten sehr wenig Übereinstimmung in den erhaltenen Ergebnissen.

What’s more, even if the reader of a research paper can successfully interpret the writer’s precise meaning, and then faultlessly translate it into a program, there are still pitfalls in executing it. One particularly tricky class of problems arises from how computers handle numbers: although they can manipulate integers such as 42 and -17 with perfect accuracy, standard techniques for manipulating real numbers such ??3.14 and ?2?1.414 permit only approximate accuracy. These approximations mean that apparently equivalent ways of computing the same value can ergeben unterschiedliche Ergebnisse.

Also, was kann getan werden? Wenn selbst erfahrene Softwareentwickler nicht in der Lage sind, korrekte Software zuverlässig zu produzieren, welche Hoffnung gibt es dann für Hobby-Programmierer wie Wissenschaftler?

Eine Arbeitslinie besteht darin, Werkzeuge für die Entwicklung "domänenspezifischer" Programmiersprachen zu entwickeln, die jeweils auf eine bestimmte Klasse von Problemen zugeschnitten sind, z. B. das Verhalten von Agenten in Wirtschaftsmärkten oder die Verbreitung von Arzneimitteln über Zellen hinweg. Damit soll es für Spezialisten einfacher werden, Berechnungen direkt in vertrauten Begriffen zu beschreiben, anstatt sie indirekt in einer universellen Programmiersprache zu kodieren.

Ein zweiter Ansatz zielt darauf ab, aussagekräftigere, aber dennoch benutzerfreundliche "Typsysteme" für Programme zu entwickeln. Dies würde es einfacher machen, "alberne" Fehler zu erkennen, wie leere Zellen in Tabellenkalkulationen oder Werte in verschiedenen Einheiten zu mischen. Es kann jedoch nicht alle logischen Fehler ausschließen. Eine dritte Zeile besteht darin, brauchbare Code-Bibliotheken für genaue Arithmetik zu entwickeln, wobei die Probleme der Approximation vermieden werden.

Es besteht die Möglichkeit, dass diese Ansätze dazu beitragen, das Problem in Zukunft zu beheben oder zumindest einige der Risiken zu beseitigen. Schließlich braucht die Welt Wissenschaft und Wissenschaftler brauchen Computer - das wird sich in absehbarer Zeit nicht ändern.

Über den Autor

Jeremy Gibbons, Professor für Computing, Universität Oxford. Leiter des Forschungsthemas Programmiersprachen.

Dieser Artikel erschien ursprünglich auf das Gespräch

Verwandte Buch:

at InnerSelf Market und Amazon