Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1819:epidemiesimulation

Kommentar von Lysanne:

Ein bisschen mehr Dokumentationscharakter wäre gut. Ihr solltet ein bisschen auf die Theorie eingehen, also auf die Mathematik hinter den Epidemiemodellen (und was diese bedeuten). Jemand, der sich nicht mit eurem Projekt beschäftigt hat, kann mit euren wöchentlichen Protokollen wenig anfangen, da einige . Wenn ihr das in diesem Format beibehalten wollt (was ihr auch könnt), dann solltet ihr die Arbeitsschritte besser erklären und entweder den Code kommentieren oder irgendwie besser durch die Struktur des Programmes führen (viele unkommentierte Files). Auch eine Interpretation der Ergebnisse wäre schön, zeigt doch ein paar Plots und erklärt, was man darauf sieht. (Was verändert sich bei welcher Veränderung welcher Parameter?) Falls ihr euch unsicher seid, fragt einfach gerne nach!

Thema: Epidemiesimulation

Mitglieder: Philipp, Max, Jan und Lena

Erste Schritte:

(-Turtle-Feld aufbauen -mehrere Turtles laufen lassen -bei Kontakt Infektion (100% Ansteckung)

  1. durch unterschiedliche Farben anzeigen lassen
    1. bestimmte Zeit (bsp. zu Beginn eine Stunde))

-mit Tkinter 10×10 Raster in weiß, in anderen Farben die Erkrankung von Menschen darstellen (rot=kranke Menschen), die Ausbreitung der roten Farbe simuliert die Krankheitsausbreitung

- zuerst ohne Inkubationszeit und die Menschen können wieder gesund werden

- Rechnungen von der Seite: http://www.mathe.tu-freiberg.de/~wegert/Lehre/Seminar3/moehler.pdf schreiben wir in Python

Weitere Änderungen:

-andere Grafik

-unterschiedliche Resistenz

-unterschiedliche Geschwindigkeit

-Infektionswahrscheinlichkeit ändern

-unterschiedliche Krankheiten

-mehrere Generationen,Resistenssimulation

-grafische Darstellung der Anzahl der Kranken

-unterschiedlich Zeitintervalle

-Krankheitsverlauf, Ansteckungsgefahr, Inkubationszeit, etc.

Internetseiten: [https://www.stern.de/digital/computer/epidemien-mit-dem-simulator-seuchen-bekaempfen-3297438.html]

[https://books.google.de/books?id=u8pwDwAAQBAJ&pg=PA122&lpg=PA122&dq=python+simulation+epidemie&source=bl&ots=SHBp_fkazQ&sig=1-1VhatRx2rnke5k44fzgBrwte0&hl=de&sa=X&ved=2ahUKEwj_8qCL1-_eAhUJ0RoKHXbzABoQ6AEwAnoECAcQAQ#v=onepage&q=python%20simulation%20epidemie&f=false]

- die Bibliothek epydemic benutzen, von der Seite: https://pythonhosted.org/epydemic/

ps.bwii.at/topic/calc/epidemy/epidemy.html#epidemy_formula

https://de.wikipedia.org/wiki/Epidemiologie

06.12.2018

Das SI-Modell wurde geschrieben in einem Nebenprogramm. Wir können das Programm jetzt plotten, aber uns fehlen noch die Eingaben. Die Krankheit ist nicht heilbar, aber sie führt auch nicht zum Tod. Außerdem werden keine neuen Menschen geboren.

Dazu wurde noch ein Nebenprogramm für die Achsen geschrieben, nur haben wir die Schrittweite an den Achsen noch nicht geändert.

Außerdem haben wir versucht uns mit der „Epydemic“-Bibliothek auseinanderzusetzen, allerdings gibt es im Internet ziemlich wenige Informationen dazu, wie man mit der Bibliothek umgeht.

Am Ende der Stunde haben wir mit dem Hauptprogramm begonnen.

In der nächsten Stunde wollen wir aus dem SI-Modell ein SIS-Modell machen und dieses auch ausgeben.

Des Weiteren wollen wir die Parameter zu einer Eingabe umschreiben.

13.12.2018

Neben der Achsenkonstruktion haben wir eine neue Funktion erstellt, bei der alle y-Werte der Funktionen im Diagramm geplottet werden, egal wie viele Graphen und Berechnungen wir haben. Die x-Werte bleiben bei allen Gleichungen erhalten. Nur die y-Werte ändern sich, je nachdem welche Gleichung verwendet wird. Am Ende werden alle Graphen der Gleichungen geplottet.

Außerdem versuchen wir die Werte für die gesunden Menschen zu berechnen, aber es gibt ein paar Probleme bei der Berechnung, da die eine Liste nicht richtig erkannt wird. Ohne diese Liste können wir aber nicht weiterarbeiten. EDIT: Das Problem wurde behoben. Es lag ein Schleifenfehler vor.

Mit der Bibliothek von „Epydemic“ haben wir uns nicht weiter beschäftigt, da wir uns mit „heatmaps“ beschäftigt haben. Bei einer „Heatmap“ können wir einzelne Kästchen in verschiedenen Farben erscheinen lassen, damit neben dem Graphen eine weitere Visualisierung stattfindet. Die gleichfarbigen Kästchen sollen eine bestimmte Personengruppe angeben. In unserem ersten Fall sollen die Infizierten und Gesunden gezeigt werden. Noch sind wir aber in der Erarbeitung dieser Art von Veranschaulichung. EDIT: Mit „Randomzahlen“ können bisher noch sinnfreie „heatmaps“ erstellt werden.

Das SI-Modell wurde fertiggestellt. Es fehlen nur noch die Eingaben, die wir in der nächsten Woche hinzufügen werden.

Beim SIS-Modell gab es einige Probleme. Das erste Problem war, dass es keinen Unterschied gab zwischen dem Gesundheits- und Erkrankungswachstum. Das zweite Problem entstand durch falsche Testbeispiele, da diese keinen Aufschluss über die Berechnungen gab.

Ziele für die nächste Woche:

- herausfinden wie man ganz bestimmte Zahlen in „Heatmap“ eintragen kann und diese ausgegeben werden

- eine Legende für die Graphen erstellen (Internetseiten:-https://pythonspot.com/matplotlib-legend/ -https://matplotlib.org/tutorials/intermediate/legend_guide.html)

- Eingaben erstellen für die bereits vorhandenen Modelle

- Verknüpfungen zwischen den Nebenprogrammen und dem Hauptprogramm herstellen

- evtl. SIR-Modell anfangen

20.12.2018

Wir haben das SIS-Modell fertig gestellt mit ein paar Änderungen. Neben der neuen Achsenkonstruktion haben wir die Skalierung der y-Achse in Abhängigkeit der Werte erstellt.

Außerdem haben wir eine Legende und eine Plotfunktion hinzugefügt, damit wir die für alle Modelle verwenden können.

Im Hauptprogramm stehen lediglich vorgegebene Parameter und die Aufrufe der Funktionen. Somit ist das Hauptprogramm sehr übersichtlich und kurz gefasst.

In der Stunde wurde auch das SIR-Modell fertig erstellt mit der allgemeinen Plotfunktion aus dem SIS-Modell und den speziellen Berechnungsfunktionen für die einzelnen Personengruppen und deren „Gesundheit“. Unsere Diagramme besitzen seit heute auch Beschriftungen, welcher Graph welche Entwicklung darstellt.

Des Weiteren haben wir mit dem SIRS-Modell angefangen, allerdings stimmen die Testwerte nicht bzw. ergeben keinen Sinn, da Menschen ihre Resistenz schneller verlieren als gesund zu werden. EDIT: Das SIRS-Modell wurde beendet, es wurde nur das falsche Berechnungsprogramm importiert. Das dynamische SIRS-Modell, also mit Geburten und Toden, wurde übertragen, funktioniert aber noch nicht. EDIT: Es funktioniert nun doch. Grund war das Missverstehen der Parameter des Modells.

Wir haben Schieberegler programmiert, die leichte und vor allem live Veränderungen aller Parameter der Krankheit und Beobachtungsgrößen ermöglichen. Beim nächsten Mal werden wir diese dann in die einzelnen Hauptprogramme überführen.

In den nächsten Stunden werden wir versuchen, weitere Modelle zu erstellen und uns neue Grafikmöglichkeiten zu überlegen. Bis jetzt haben wir nur die Graphendarstellung mit „matplotlib“. Allerdings wollen wir noch weitere Möglichkeiten finden und ausprobieren. Unser Ziel ist es, die einfacheren Modelle auf Heatmaps zu übertragen.

Wir werden auch überlegen, ob wir unsere bestehenden Programme sinnvollerweise nur als scatter-Funktionen (gepunktete Graphen) plotten. An der endgültigen Umsetzung des dynamischen SIRS-Modells wird beim nächsten Mal weitergearbeitet. Voraussichtlich werden wir es dann auch beenden.

10.01.2019

Mit unseren Modellen sind wir fertig. Jetzt geht es nur noch um Verbesserungen und Verfeinerungen. Es wurden unabhängige Geburten- und Sterberaten erstellt. Außerdem haben wir uns weiter über Live-Schieberegler informiert, allerdings gibt es dort noch einige Probleme.

Mit Heatmaps haben wir eine geeignete Art der Grafikdarstellung gefunden, allerdings sind wir auch hier noch nicht fertig. Das Programm ist noch unabhängig von den ausgerechteten Daten der Modelle und es ist bis jetzt nur ein Standbild, das heißt es verändern sich noch nicht die Quadrate.

Für die Grafik haben wir versucht eine Achsenbeschriftung hinzuzufügen, aber die Beschriftung steht nicht links neben der Achse. Des Weiteren stimmt die Eingabe nicht.

Ziele für die nächsten Stunden:

  • Heatmap mit dem Hauptprogramm verbinden
  • Achsenbeschriftung hinzufügen
  • weitere Grafikmöglichkeiten ausprobieren
  • Schieberegler

17.1.2019

Philipp hat sich mit der scatter-Version des dynamischen SIRS-Modells beschäftigt Jan hat die Farbsortierungsmöglichkeiten der Heatmap bearbeitet. Slider wurden von Max weiterbearbeitet.

24.01.19

Wir sind mit der scatter-Version des dynamischen SIRS- Modells fertig. Wir kennen uns besser mit den Slidern aus, haben aber noch Probleme, es mit dem Hauptprogramm zu verbinden. Dazu kommt, dass das Hauptprogramm noch bearbeitet wird, welches das Verbinden mit den Slidern erschwert. Bei der Heatmapfarbsortierung gibt es noch einige Probleme zu bewältigen, bevor wir diese dann mit dem Hauptprogramm verbinden können.

_Ziele für nächste Woche:_

* Slider mit dem Hauptprogramm verbinden * weiterhin Heatmapfarbsortierung

31.01.2019

Wir haben uns weiter mit den Slidern beschäftigt, allerdings gibt es immer noch Probleme. Die Heatmap für das SI-Modell ist fertiggestellt. Außerdem haben wir es geschafft, dass die Achsen eine passende Beschriftung haben.

Ziele für die nächste Woche:

  • Heatmap für das SIRS-Modell
  • Slider in das Hauptprogramm integrieren

07.02.2019

Die Heatmap muss neu geschrieben werden, da der Quellcode unübersichtlich wurde. Die Heatmap ist für das SI-Modell. Wenn das Programm fertig ist, müssen wir das für die anderen Programme erweitern. Das Grundgerüst bleibt aber das Gleiche.

Bei den Slidern ist die Verbindung mit dem Hauptprogramm sehr schwierig. An sich funktionieren die Slider, aber es gibt noch ein paar Probleme mit dem Hauptprogramm. „Der Slider geht, ist aber nicht benutzerfreundlich“.

Als Alternative wollen wir eine Eingabe einrichten, aber da müssen wir noch die Grenzen ausrechnen. Da wir in unseren Modellen mit bestimmten Zahlen rechnen, kann die Eingabe auch nur bestimmte Zahlen bekommen, damit unser Programm immer noch rechnen kann.

14.02.2019

Heute wurde die Heatmap für das SI-Modell in seiner verbesserten und ausbaueröffnenden Form fertiggestellt. Allerdings gibt es nur „Gesunde“, „frisch Infizierte“ & „Infizierte“.

Für die anderen Modelle müssen wir herausfinden, ob es eine einfache Möglichkeit gibt um mit Wahrscheinlichkeiten zu rechnen und dafür die Heatmap einzurichten. Wir versuchen die Heatmaps für die Modelle gleichzeitig zu erstellen, aber ohne die Wahrscheinlichkeitsrechnung können die anderen Programme nicht zu Ende geschrieben werden. Das SIS-Modell hat seit heute auch eine Heatmap, allerdings ist bei einer Infektionsrate von 100% die Grafik nicht korrekt. Sonst funktioniert das Programm. Den Fehler mit der falschen Berechnung wurde noch nicht gefunden. Für das SIRS-Modell haben wir noch keine Heatmap erstellt.

Bei der Slider ist immer noch ein Fehler drin, aber das soll auch heute behoben werden. Der Slider ist fertig, aber die Startzahl der Infizierten muss in Prozenten angegeben bzw. umgerechnet werden. Ansonsten funktioniert das Programm.

Ziele für die Blockstunden:

  • Heatmap für SIR-Modell
  • Heatmap für das SIRS-Modell
  • Programm von der SIS-Heatmap verbessern

Letztendlich ist es uns gelungen, die Heatmap für das SIS-Modell mit fretigzustellen. Es gibt auch eine Unterscheidung zwischen neuen und bereits zuvor Gesunden und Infizierten. Inkubationszeit und Krankheitsdauer miteinzubeziehen hätte den Rahmen unseres Projektes gesprengt.

Projektende

Unser Programm kann alle Modelle berechnen und zeigt dazu die passenden Graphen mithilfe von „Matplotlib“.

Bei dem SIRS-Modell haben wir 3 verschiedene Programme, da wir mit unterschiedlichen Möglichkeiten bzw. Variablen gerechnet haben und diese unterschiedliche Ergebnisse liefern. Tödlich verlaufende Krankheiten, mit und ohne Berücksichtigung von Bevölkerungsentwicklung, mit Resistenzbildung, usw.

Unsere Heatmaps veranschaulichen das SI-Modell und das SIS-Modell, auch wenn letzteres noch fehlerhaft zu sein scheint. Allerdings ist die SI-Heatmap unabhängig von dem Berechnungsprogramm und noch nicht Teil des SI-Hauptprogramms, denn die Heatmap zeigt nur die Auswirkungen mit 100% Infektionswahrscheinlichkeit.

Für die anderen Modelle sind wir noch zu keiner zufriedenstellenden Lösung gekommen.

Die Slider konnten erfolgreich ins Hauptprogramm übernommen werden

Die Cloud haben wir so aufgebaut, dass wir für jedes Modell einen eigenen Ordner haben, damit die Übersichtlichkeit vorhanden bleibt. Dadurch haben wir aber auch für jedes Modell ein anderes Hauptprogramm, da immer auf andere Berechnungen zugegriffen wird.

Grundsätzliche Aufteilung unserer Gruppe:

Heatmaps: Jan

Grafik und Diagramm: Lena

Berechnungen: Philipp

Benutzeroberfläche: Max

Alle Programme finden sich hier: epidemix.zip

ws1819/epidemiesimulation.txt · Zuletzt geändert: 2019/04/01 13:28 von sunnyrogers