Inhoudsopgave:

(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen

Video: (Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen

Video: (Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen
Video: Aflevering 76: Bram Bakker 2024, November
Anonim
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch)
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch)

Vandaag simuleren we een uitbraak van een ziekte, waarbij het een ziekte is, niet noodzakelijkerwijs COVID-19. Deze simulatie is geïnspireerd op een video van 3blue1brown, waarnaar ik zal linken. Aangezien dit slepen en neerzetten is, kunnen we niet zoveel doen met JS of Python, maar er zijn ook voordelen aan het gebruik van scratch, dus als je wilt zien hoe je een uitbraak met JS kunt modelleren, kun je mijn artikel dat ik hier schreef over het modelleren van ziekte-uitbraken. Laten we nu beginnen!

Opmerking: de bovenstaande afbeelding is van een simulatie door quantum9innovation (geen Instructables-gebruiker) die u hier kunt bekijken.

Benodigdheden:

Je hebt nodig:

  • Een Scratch-account (u kunt zich hier aanmelden
  • Basiskennis van slepen en neerzetten (maar ik ga nog steeds door de code)
  • Een computer of apparaat waarmee je kunt programmeren (wat je waarschijnlijk hebt, aangezien je dit leest)
  • Optioneel - Bekijk de 3b1b-video, deze geeft je een idee van wat we aan het programmeren zijn.

Stap 1: Basisinstallatie

Basisinstellingen
Basisinstellingen

Laten we eerst een project maken, het een naam geven wat u maar wilt en vervolgens de bestaande sprite op het canvas verwijderen. U kunt dit doen door op de prullenbak op de sprite te klikken. Nu hebben we een leeg canvas en kunt u de achtergrondkleur wijzigen in wat u maar wilt.

Maak vervolgens een nieuwe sprite en schilder in plaats van een bestaande sprite je eigen sprite. Maak er een blauwe stip van. Deze sprite vertegenwoordigt de vatbare populatie van de gemeenschap, en we zullen ook een herstelde/verwijderde en geïnfecteerde populatie hebben, waar de naam van het model, SIR (vatbaar, geïnfecteerd, hersteld/verwijderd), vandaan komt. Zorg ervoor dat u de sprite "niet-geïnfecteerd" noemt.

Maak nu (opnieuw) een nieuwe sprite en noem deze sprite1, die we ook zelf gaan schilderen. Geef het de titel "Sprite1" en maak 2 kostuums, de ene moet een rode stip zijn en de andere een grijze stip. Maak ze respectievelijk kostuum1 en kostuum2. Deze twee vertegenwoordigen de geïnfecteerde (de rode stip) en herstelde/verwijderde (de grijze stip) populaties.

Stap 2: De code instellen voor de vatbare populatie

De code instellen voor de vatbare populatie
De code instellen voor de vatbare populatie

We stellen nu de vatbare populatiecode op. We maken eerst 2 variabelen aan: mensen en geïnfecteerd. De variabele "Mensen" vertegenwoordigt de populatie en kan worden gewijzigd op basis van het aantal mensen dat we in onze simulatie willen, en de simulatie zal dienovereenkomstig veranderen. We creëren ook een geïnfecteerde variabele, en deze vertegenwoordigt de populatie die de ziekte heeft/had. Beide variabelen moeten globale variabelen zijn, wat betekent dat ze in alle sprites kunnen worden gebruikt.

Kopieer vervolgens de bovenstaande code naar de niet-geïnfecteerde sprite. Laten we eens kijken wat het doet. Wanneer het programma start, is de sprite verborgen, en dit is zodat we niet dezelfde code voor klonen in de sprite zelf hoeven te plaatsen, wat helpt. Vervolgens stellen we de twee variabelen (geïnfecteerd en mensen) in op wat we willen dat ze zijn, in dit geval stellen we de geïnfecteerde in op 1 en mensen op 100. Dit betekent dat we beginnen met één persoon die besmet is en 100 in totaal mensen, exclusief de besmette persoon. We voeren dan een lus uit, waarbij de variabele people wordt uitgevoerd, in dit geval 100. We gaan naar een willekeurige positie en maken dan een kloon van de sprite. We gaan naar een willekeurige positie omdat we op deze manier geen lijn met stippen in één richting hebben, maar in plaats daarvan in willekeurige posities spawnen.

Stap 3: De code instellen voor de geïnfecteerde en verwijderde sprite

De code instellen voor de geïnfecteerde en verwijderde sprite
De code instellen voor de geïnfecteerde en verwijderde sprite

Schakel nu over naar de sprite "Sprite1" en kopieer de bovenstaande code. Laten we er doorheen gaan. Wanneer het programma start, wordt de sprite verborgen en voert vervolgens een lus uit voor het aantal geïnfecteerde personen. Het gaat naar een willekeurige positie en creëert een kloon van zichzelf.

Stap 4: De code voor gevoelige populaties invullen

De code voor gevoelige populaties invullen
De code voor gevoelige populaties invullen

Laten we de dingen doornemen die we moeten doen:

  • Infecteren
  • Beweging

Schakel over naar de niet-geïnfecteerde sprite, kopieer de bovenstaande code en laten we doornemen hoe het het infecteren en verplaatsen voltooit. Ten eerste gaat het naar kostuum één, en dit is echt niet nodig, maar we hebben het daar, dus als we besluiten om meer toe te voegen, hoeven we ons geen zorgen te maken dat het kostuums verandert in de nieuwe die we hebben toegevoegd. Vervolgens laat het zich zien. Als je het je herinnert, hebben we de originele sprite verborgen, dus de klonen zullen ook verborgen zijn, wat we niet willen. We voeren dan een eeuwige lus uit, die het hele programma zal uitvoeren totdat iemand opnieuw op het stopteken klikt. We glijden 1 seconde naar een willekeurige positie en controleren dan of we op de rand staan, in welk geval we er vanaf stuiteren. Als we vervolgens de kleur rood aanraken, klonen we Sprite1 (de geïnfecteerde/verwijderde populatie) en verhogen we de geïnfecteerde variabele met 1, gevolgd door het verwijderen van onze sprite.

Stap 5: De geïnfecteerde/verwijderde code invullen

De geïnfecteerde/verwijderde code invullen
De geïnfecteerde/verwijderde code invullen

Als we overschakelen naar Sprite1, maken we een nieuwe lijst, timer. Deze lijst houdt bij hoe lang een stip is geïnfecteerd en na een bepaalde tijd sterft hij of herstelt hij, wordt hij onderdeel van de verwijderde/herstelde populatie en wordt weergegeven door een grijze stip, die niet opnieuw kan worden geïnfecteerd.

Kopieer de bovenstaande code en laten we er doorheen gaan. Wanneer we als een kloon beginnen, voegen we het totale aantal seconden dat het programma heeft gelopen in de timerlijst in, en we zullen dit controleren om te zien hoe lang het geïnfecteerd is en veranderen het om dienovereenkomstig te worden hersteld. We verbergen de timerlijst en schakelen dan het kloonkostuum naar het geïnfecteerde kostuum voor het geval dat, en laten dan onze sprite zien. We draaien nu een eeuwige lus, waarin meerdere dingen gebeuren: we vertellen de kloon om elke seconde naar een willekeurige positie te glijden, controleren of de geïnfecteerde variabele groter is dan de populatie zelf, in welk geval we het instellen op de populatie, en ten slotte gaan we het eerste item van de timerlijst controleren om te zien of het meer dan 5 seconden is geweest, en als dat waar is, schakelen we het kostuum over naar het herstelde kostuum zodat we het niet kunnen infecteren, en verwijderen dan het item uit de timer.

Aanbevolen: