Wie man einen Zombie-Angriff überlebt: Agentenbasierte Modellierung mit Python
Ihr ahnt es sicher bereits: Heute ist wieder Freitag und ein urchristliches Wochenende steht vor der Tür. Daher habe ich es mir zur Aufgabe gemacht, auch wenn die Wetterfrösche sonnige Tage prophezeien, Euch mit einer hinreichend umfangreichen Menge an Video-Tutorials zu versorgen, damit Ihr – sollte Euch doch mal die Langeweile überwältigen – nicht in die Kirchen rennt. Ihr habt dann nämlich wichtigeres zu tun, zum Beispiel eine Zombie-Attacke zu überleben. Doch dazu später mehr.
Denn es hatte sich ja schon abgezeichnet: Die heutige Sammlung von Video-Tutorials behandelt »Agentenbasierte Modellierungen« (ABM), und zwar in der Hauptsache in Python mit den Paketen SimPy und Mesa. Ich fange mal mit Mesa an:
Von Jackie Kazil gibt es den auf der PyData DC 2016 gehaltenen, vierzigminütigen Vortrag »Agent based modeling in Python«, der sowohl einen guten Überblick über das Thema »Agentenbasierte Modellierung« wie auch über Mesa (und die Zukunft von Mesa) gibt.
Wenn es um agentenbasierte Modellierung geht, ist die Health Service Modelling Associates (HSMA) der NIHR Applied Research Collaboration South West Peninsula (PenARC) nicht weit. Acu wenn es schwierig ist, aus der Masse ihrer Videos eine Auswahl zu treffen, die HSMA 4 Sessions 6B and 6C zum Thema »Agent Based Simulation using MESA Parts 1 and 2« ist definitiv einen Blick wert.
Zu dem Python Mesa Tutorial: »Build Your ABM Simulation« Part 1 (15 Minuten), Part 2 (15 Minuten) und Part 3 (30 Minuten), gibt es auch noch einen ausführlichen Blogpost: »How does COVID-19 continue to spread? – A simulation 2.0 (How it was built)«.
Sehr geholfen hat mir dieser zweistündige Livestream »Build an Agent-Based Simulation with Mesa«, weil er ausführlich (für Ungeduldige vielleicht zu ausführlich) darauf eingeht, wie Mesa eigentlich funktioniert.
Und last but not least: Getting started with MESA - 2020 Edition ist Teil der Playlist »MESA«, von Frank Timmes, acht Videos zwischen je etwa zwanzig Minuten und anderthalb Stunden Spieldauer.
Weiter mit SimPy: Auch hier komme ich nicht an dem YouTube-Kanal der Health Service Modelling Associates (HSMA) der NIHR Applied Research Collaboration South West Peninsula (PenARC) vorbei. Leider gibt es dort keine vernünftig verlinkbaren und zitierfähigen Playlists. Daher mußte ich deren Videos einzeln zusammenklauben und verlinken:
- Session 5A Lecture 1: An Introduction to Discrete Event Simulation (eineinviertel Stunde)
- Session 5A Lecture 2: Python Generator Functions and a Glimpse at SimPy (halbe Stunde)
- Session 5B: Building a Discrete Event Simulation model using SimPy (eindreiviertel Stunde)
- Session 5C: Object Oriented SimPy (anderthalb Stunden)
Ich hoffe, ich habe alle Videos dieser Reihe gefunden.
SimPy aber auch Mesa nutzen intensiv Generatoren in Python. Das Video »Generators in Python | Das YIELD Keyword verstehen« erklärt, was Generators in Python sind und wozu man sie nutzen kann. Dazu ist auch noch der Beitrag von Kyle Stratis »How to Use Generators and yield in Python« von der Webseite Real Python extrem nützlich.
War sonst noch was? Ach ja, die Großmutter aller Entwicklungsumgebungen für agentenbasierte Modellierungen ist NetLogo, ein trotz seines Alters immer noch populäres Tool, das auch noch weiter entwickelt wird (die jüngste Version 6.3.0 ist vom September 2022). Und in dem Video »Agent Based Models in Urban Systems« von Kenneth Steif kommt die im Titel erwähnte Simualtion einer Zombie-Attacke zum Einsatz. Außerdem werden dort viele theoretische Hintergründe der agentenbasierten Modellierung erläutert.
Und das halbstündige »Jupyter Notebook Complete Tutorial« der Python Show wollte ich Euch ebenfalls nicht vorenthalten.
Das dürfte Euch erst einmal beschäftigen. Möge wahlweise die heilige Schlange oder die große Schildkröte (wegen NetLogo) über Euch kommen. Pfrohe Pfingsten!