Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss2022:mathesis_meets_histlab

Grenzen des Wachstums

Einleitung

Dieses Semester war das Projekt für Mathesis vorgegeben: Wir beschäftigten uns mit den Grenzen des Wachstums und dem zugrundeliegenden Weltmodell. Das Weltmodell ist ein Computermodell, das die Zusammenhänge verschiedener Größen wie Bevölkerung, Umweltverschmutzung und natürliche Ressourcen simuliert, und auf der Grundlage dieser Zusammenhänge Voraussagen über die Zukunft ermöglichen soll. Die Ergebnisse wurden in den Grenzen des Wachstums veröffentlicht und erhielten damals wie heute viel Aufmerksamkeit. Das Weltmodell ist eins der ersten komplexen Computermodelle. 50 Jahre später ist die Veröffentlichung in Anbetracht neuer Nachhaltigkeitsdebatten und steigender sozialer Ungerechtigkeit aktuell wie nie. Auch wenn die Autoren einen entscheidenden Aspekt, nämlich den Klimawandel, ignorierten, so waren sie die ersten, die darauf hinwiesen, dass ein unendliches Wachstum in Anbetracht begrenzter Ressourcen nicht möglich ist und gaben den Anstoß für viele wachstumskritische Debatten und Bewegungen.

Projektziele

Das Endziel unseres Projektes war es das World 2 Modell aus DYNAMO in Python zu überführen. Hierzu wurde bevor der Projektphase grundlegende Python Programmierung übermittelt so wie die Idee hinter dem World 2 Modell besprochen. In der Projektphase war das erste Ziel sich in den DYNAMO Code einzuarbeiten und diesen nach zu vollziehen. Anschließend sollten die einzelnen Abläufe ungeordnet von in Python Methoden überführt werden sowie die Konstanten und die Startwerte der Variablen festgelegt werden. Diese Python Bausteine sollten anschließend in eine für ein Python Programm logische Anordnung gebracht werden um das selbe Resultat zu erzielen wie das zugrunde liegende DYNAMO Programm. Als weiterreichende Ziele sollten noch die Parameter veränderlich gestaltet werden um ihren Einfluss auf das komplette System nachvollziehen zu können so wie eine Möglichkeit diese Parameter Änderungen durch zu iterieren um den Einfluss von verschiedenen Veränderungen effizient überprüfen zu können.

Vorgehen

Nach Abschluss des Einführungskurses in die Programmiersprache Python haben wir einen passenden Rahmen für unsere Projektarbeit gesucht. Diesen haben wir in der „Übersetzung“ des World 2 Programmcodes aus der Programmiersprache DYNAMO in Python gefunden. Ein weiterer Teil war, das fertig übersetzte Modell auf seine Sensitivität zu testen. Das bedeutet die Eingabevariablen des Modells zu verändern und den Effekt auch die Ausgabewerte festzustellen. Daraufhin haben wir damit begonnen ein Verständnis für die Ausgangssprache DYNAMO zu entwickeln, indem wir den Programmcode analysiert haben. Nachdem wir verstanden, hatten was einzelne Zeilen des Programmcodes tatsächlich im Modell bewirken, konnten wir mit der Übersetzung des Modells beginnen. Hierfür haben wir zuerst jede Zeile für sich in Python übersetzt. Da jedoch der Programmablauf in Python anders funktioniert als in DYNAMO mussten wir eine Lösung finden, die dem Ablauf des Programms treu bleibt, aber auch die gewünschten Ausgabewerte erzielt. Durch eine Implementation von Methoden im Python Programmcode konnte diese Hürde umgangen werden. Noch haben wir dieses Projekt jedoch nicht vollendet da der Rahmen eines Semesters für ein weit gefächertes Projekt wie dieses nicht ausreichte.

DYNAMO-Funktionsweise

Dynamo unterscheidet zwischen drei Berechnungsebenen: Levels, Rates und Auxiliaries. Levels werden zuerst berechnet. Es sind die Variablen, die am Ende von Interesse sind: Bevölkerung, natürliche Ressourcen, Kapital, Investitionen in der Landwirtschaft und Verschmutzung. Sie werden für jeden Zeitabschnitt berechnet und die Werte am Ende als Graph ausgegeben. Rates, zum Beispiel die Geburtenrate, sind die Änderungsraten eines Levels zu einem bestimmten Zeitpunkt. Auxiliaries sind Hilfswerte, die für die Berechnung der Rates benötigt werden. Pro Zeitschritt werden immer zuerst die Levels, dann die Rates und dann die Auxiliaries berechnet. Die jeweiligen Werte ergeben sich aus den Werten des vorherigen Zeitschritts.

komplexe Systeme

Die wesentliche Eigenschaft komplexer Systeme ist die Interdependenz aller Bestandteile: Alles hängt mit allem zusammen. Wenn man an der einen Stelle etwas verändert, ändert sich etwas an einer ganz anderen Stelle. Diese Zusammenhänge sind oft so kompliziert, dass man sie nicht vorhersehen kann. Das interessanteste daran ist aber, dass im scheinbaren Chaos meist doch Ordnung herrscht: Die nachgebildeten Systeme regulieren sich selbst. Beispiele sind Zellwachstum oder Ökosysteme oder eben Pandemien. Die Regulation erfolgt nicht linear oder hierarchisch: Die DNA steuert eben nicht das Verhalten der Zelle, stattdessen kann man die Regulation einer Zelle als kompliziertes Netzwerk verschiedener Stoffwechselwege verstehen. In einer Pandemie oder Epidemie sind irgendwann genügend Menschen immun, dann wird die Krankheit endemisch und bricht immer wieder aus, ohne sich weiter auszubreiten. Es entsteht ein Muster. Meist gilt: Der Mensch erkennt das Muster, aber weiß nicht, wie es entsteht und was passiert, wenn man kleine Änderungen am System vornimmt. Zum Beispiel die Ausbreitung von Covid 19: Millionen von Menschen bewegen sich täglich und zeigen dabei -statistisch gesehen- je nach Alter und Situation unterschiedliche Verhaltensweisen und Mobilitätsmuster. Je nach dem kommt es zu Begegnungen auch zwischen infizierten und gesunden Personen. Dann besteht eine bestimmte Wahrscheinlichkeit für eine Ansteckung. Ist die Person angesteckt wird sie vielleicht krank, eventuell auch nicht, oder es dauert eine ganze Weile, bis sie es bemerkt. Es ergeben sich dann vielleicht noch mehr Begegnungen und potentielle Übertragungsgelegenheiten. Hier spielt wieder das Alter und die gesundheitliche Verfassung eine Rolle. Hinzukommen Faktoren wie die Länge der Begegnung, Temperatur und Luftzirkulation des Begegnungsorts, Masken, Immunität nach durchgemachter Infektion und so weiter. Man merkt: es gibt unendlich viele Einflussfaktoren. Niemand kann das vorhersagen. Das führt uns zu den Computermodellen. Sie können dabei helfen, indem sie nur einen Ausschnitt des Problems simulieren, zum Beispiel die Bewegungsmuster unterschiedlicher Bevölkerungsgruppen und die Begegnungen die sich ergeben. Zur Vereinfachung kann man dann davon ausgehen, dass jede Begegnung auch zu einer Infektion führt. Das tolle daran ist, dass man anhand solcher Modelle dann den Einfluss anderer Faktoren ausprobieren kann, zum Beispiel die Auswirkung einer Impfung: Was passiert, wenn n Menschen geimpft sind und die Impfung in m% der Fälle eine weitere Übertragung verhindert und die Infektionskette unterbricht? Was ist, wenn nicht genügend Impfstoff zur Verfügung steht und nur ein Teil der Menschen geimpft werden kann? Welche Bevölkerungsgruppe sollte zuerst geimpft werden, um eine Ausbreitung trotzdem zu verhindern? Das alles kann mit einem Computermodell einfach mal durchgespielt werden, quasi als virtuelles Experiment (eine Gruppe der Humboldtuniversität hat das übrigens tatsächlich gemacht: Hier zum nachlesen). Weitere Systeme, die sich mit Computermodellen nachbilden lassen sind: Stoffwechselwege in einer Krebszelle, die Aufteilung von Molekülen in einer Zelle, die Bildung von Seifenblasen oder einfach das Wetter.

Fazit

Die Einarbeitung in DYNAMO und die Verschaffung eines Verständnis für das World 2 Modell hat gut funktioniert. Die Übersetzung des DYNAMO Codes war allerdings aufwendiger als anfangs geplant, da unsere Gruppe kleiner als üblich war, weshalb die letzten Projektziele leider nicht erreicht werden konnten. Deshalb war es uns nicht möglich, die Sensitivitätstests durchzuführen. Dieses Projekt und unsere bisherigen Fortschritte könnten jedoch zukünftigen weiterführenden Projekten zu Gute kommen.

ss2022/mathesis_meets_histlab.txt · Zuletzt geändert: 2022/09/29 18:28 von malte.wieseke