BSc KICursus Natuur & Berekening 2025-26

Opdracht 1: het SIRS model

Inleiding

Het SIRS model simuleert hoe epidemieën kunnen ontstaan en verdwijnen. Het idee is dat de interactie tussen individuen danwel groepen geografisch wordt gemodelleerd middels een cellulaire automaat. Het SIRS model is afgeleid van het SIR model. SIR staat voor: susceptible, infected, recovered. Een vatbare cel kan geïnfecteerd raken, en na verloop van tijd herstellen (en dan niet meer vatbaar zijn). Het SIRS model maakt het SIR model cyclisch: na verloop van tijd kan een herstelde cel weer vatbaar worden. Het idee hierachter is dat cellen voor een lange maar beperkte tijd resistent zijn. Daarna wordt een cel weer vatbaar voor infectie.

In 2004 publiceerden de onderzoekers Chung-Yuan Huang, Chuen-Tsai Sun, Ji-Lung Hsieh en Holin Lin een model waarin de dynamiek van SARS wordt gemodelleerd. Dit model kent zes epidemiologische toestanden: vatbaar, geïncubeerd, geïnfecteerd, overleden, hersteld, en immuun. Deze toestanden worden afgebeeld in de figuur hiernaast. De figuur is uit Huang et al.'s publicatie overgenomen. Strict genomen zou deze opdracht dus “Het SIIDRIS model” moeten heten, maar dat leek mij een beetje te veel van het goede.

Globale omschrijving

We gaan Huang et al.'s model niet nabouwen, daar is het te idiosyncratisch en te ingewikkeld voor. Leerzamer is het de algemene dynamiek van een SIRS model te implementeren met behulp van meer dan drie (te weten: zes) toestanden.

Uitleg

Toestand-overgangen

Voorbeeld-interface

Randvoorwaarden

Hier staat wat moet.* Bij afwijking van randvoorwaarden worden punten in mindering gebracht. Veel randvoorwaarden zijn opgesteld om later de beoordeling van je programma te vergemakkelijken.

  1. Setup, step en go. De app wordt geïnitialiseerd middels een knop en routine “setup” (shortcut S), en uitgevoerd middels een knop en routine “go” (shortcut G).
  2. Widgets. Widgets (buttons, sliders, switches e.d.) links van het canvas, plots rechts.
  3. Canvas [-40,40]2, patch size 4.
  4. Kleuren. De kleuren van vatbaar, geïncubeerd, geïnfecteerd, overleden, hersteld, en immuun zijn resp. blue, lime, red, black, brown, yellow. Je ziet dat in dit lijstje soms andere kleuren worden gebruikt dan in het artikel van Huang et al.. Dit is om de dynamiek beter zichtbaar te maken.
  5. Standaard scenario's. Maak drie aparte knoppen voor de volgende drie scenario's. Na een druk op elk van deze knoppen worden de juiste waarden ingesteld en de app geïnitialiseerd. Alle getallen zijn kansen per tik. Infectie is dus per tik per buur.
    ScenarioMutatieInfectie (per buur)Overlijden
    1.5.10-50.070.07
    2.1.10-50.100.10
    3.1.10-50.500.30
  6. Plots. Twee plots: één waarin grote groepen worden geplot (vatbaar, overleden, immuun); en één waar kleine groepen worden geplot. Een switch om plotten vooraf of tijdens de animatie uit te schakelen. De plot bevriest dan.

Met de standaard-implementatie kunnen maximaal acht punten worden verdient.

Extra

Extra punten kunnen worden gescoord door het aanbrengen van één van de volgende features, tot een maximum van tien punten. Als er meerdere features zijn geïmplementeerd telt het best uitgevoerde feature. Het ontbreken van een onderdeel uit de basis-implementatie kan niet worden gecompenseerd met een extra feature.

  1. Paint. Het met de muis kunnen painten van een toestand. De toestand is in te stellen met een drop-down menu (Netlogo: “Chooser”). De paint-straal moet zijn in te stellen. (Max. twee punten.)
  2. Impermeabel. Het met een muis kunnen aanbrengen en verwijderen van cellen (kleur gray) die niet mee doen in het proces. Wat gebeurt er als je een scheiding aanbrengt met een kleine opening? (Max. twee punten.)
  3. Scenario 4. Het presenteren van een interessant scenario. Beschrijf dit scenario op een overzichtelijke manier in de documentatie tab. Hoe heb je het gevonden? Wat is er speciaal aan? Hoe kan de dynamiek worden geïnterpreteerd? Hoe kan het gedrag van het scenario worden verklaard? (Max. twee punten.)

Nakijkmodel

Het volgende nakijkmodel zal worden gebruikt.

   ------------------------------------------------------

    1. gratis punt
    2. complete, nette, en intuitieve GUI
    3. correcte kleuren en veldgrootte
    4. kwaliteit code
    5. correcte berekeningen op celnivo i.h.b. bt. scenario 1, 2, 3
    6. executiesnelheid
    7. plots zinvol en correct
    8. documentatie (in code, in tab, *.png)

   ----- cijfer acht ------------------------------------

    9. best of extra feature
   10. "

   ----- cijfer tien ------------------------------------


*Naast de algemene randvoorwaarden voor de programmeeropdrachten en de algemene randvoorwaarden voor de programmeeropdrachten die specifiek in Netlogo worden uitgevoerd. Zie de pagina met clausules.


Laatst gewijzigd op woensdag 13 november 2024, om 15:02 uur Auteur(s): Gerard Vreeswijk Translate to en, ru, or tr