Sonntag, 8. Mai 2022

Perkolation als anschauliches Modell für die Ausbreitung von Viren

Um zu verstehen wie sich aus einzelnen Neuinfektionen ein unkontrollierbarer Ausbruch entwickelt, bietet sich an das Geschehen als Perkolationsübergang zu betrachten.

Der Begriff Perkolation leitet sich vom lateinischen Wort 'perkolare' also 'durchsickern' ab. Wir betrachten folgende Situation. In einem 2 dimensionalen, leeren Gitter gilt ein Feld als infiziert wenn es schwarz markiert ist. Ein benachbartes Feld kann sich an diesem Feld mit einer festen Wahrscheinlichkeit p 'infizieren' und wird dann ebenfalls schwarz markiert. Die Frage ist nun ab welcher Infektionswahrscheinlichkeit fast immer ein 'Durchsickern' der Infektionskette von einem äußeren Rand des Gitters zum gegenüberliegenden Rand gelingt.

Das Bild unten zeigt eine Matrix aus 10 x 10 Feldern. Die schwarzen Felder wurden mit einer Wahrscheinlichkeit von 55% gesetzt. Offensichtlich existiert vom oberen Rand zum unteren Rand ein zusammenhängendes Cluster. Es hat also ein 'Durchsickern' stattgefunden.

Bei einer Dimension von 100 x 40 und einer Infektionswahrscheinlichkeit von 0.6 ist es für das menschliche Auge bereits sehr schwer ein zusammenhängendes schwarzes Cluster von links nach rechts, oder von oben nach unten zu erkennen.

Es empfiehlt sich daher, die Durchführung und Auswertung des Perkolationsexperiments einem Programm zu überlassen. Auf GitHub finden sich entsprechende Python Skripten. Das von mir gewählte repository 'percoltion-python' erfordert zusätzlich das Ausführen von

pip install networkx

und

pip install matplotlib

Ich habe die einzelnen Dateien des repository als *.zip Archiv heruntergeladen und in Sublime Text geladen.

Als Command Line Interface verwende ich die Windows 'Power Shell' .

In 'percolation_define.py' lassen sich x- und y-Dimension der Matrix, sowie die Wahrscheinlichkeit der weißen, nicht infizierten Felder bestimmen. Die Ausführung durch den Befehl 'python percolation_define.py' erzeugt die oben gezeigten Gitter.

In 'percolation_threshold.py' lassen sich 3 Matrizen mit unterschiedlicher Dimension festlegen. Jede Matrix wird mit einer bestimmten Schrittweite von der Besetzungswahrscheinlichkeit 0 für weiße Zellen bis 1 mehrmals durchgerechnet. Wieviel 'Experimente' pro Wahrscheinlichkeit durchgeführt werden lässt sich ebenfalls festlegen. Die graphische Ausgabe für Matrizen von 10x10, 15x15 und 22x20 bei je 100 Experimenten pro Wahrscheinlichkeit ist unten gezeigt.

Auf der y-Achse ist die 'Perlocation ratio' angegeben. Sie gibt die relative Zahl der Experimente an, die mit einem Durchbruch von links nach rechts oder von oben nach unten geendet haben. Es zeigt sich, dass ziemlich  unabhängig von der Dimension des Gitters bei einer Wahrscheinlichkeit von weniger als 0.59 für die weißen Felder bzw. mehr als 0.59 für die schwarzen Felder Perkolation fasst immer stattfindet. Ab einer Infektionswahrscheinlichkeit von 59% gelingt also ein Durchsickern der Infektionskette. 

Das Modell ist zweifelsfrei zu stark vereinfacht um die Realität widerzuspiegeln, verdeutlicht aber dass ab einer bestimmten Infektionswahrscheinlichkeit oder Inzidenz die Infektionen über Gebietsgrenzen hinweg sprunghaft ansteigen.


Viel Spaß beim selber rechnen...    


Keine Kommentare:

Kommentar veröffentlichen