Simulering av virusspredning i en populasjon
Lov på eksamen
- Datamaskin med programmeringsverktøy
- Lærebok, dokumentasjon og egne notater og programmer
Ikke åpent internett (bare noen utvalgte nettressurser), kommunikasjon med andre eller kunstig intelligens.
Kan den løses uten PC?
Ingen av deloppgavene kan løses helt uten PC.
Fra 2027 er det bare kalkulator og skriftlige hjelpemidler på del 2. Vurderingen er gjort med KI og kan inneholde feil.
I denne oppgaven skal du utvikle et program som simulerer smitte, smittespredning, sykdom og død eller friskhet med immunitet. I simuleringen skal en person kunne gjennomløpe følgende faser: frisk uten immunitet (lys grå), smittet uten symptomer (rosa), syk (rød), død (svart) eller frisk med immunitet (mørk grå).
Programmet skal utvikles som et objektorientert program med nødvendige klasser og metoder gjennom tre deler. Merk: Du kan svare på én del av oppgaven om gangen eller levere kun siste del som et enkelt program, akkurat som du selv ønsker.
Del 1: klassen Person
I denne delen skal du implementere en klasse som modellerer en person. Personen skal kunne være i følgende tilstander:
- frisk uten immunitet (lys grå)
- smittet (rosa med svart skråstrek)
- syk (rød med hvit skråstrek)
- frisk med immunitet (mørk grå med sort prikk)
- død (svart med hvit prikk)
Personklassen skal inneholde funksjonalitet for at nye personer starter som friske uten immunitet og kan bli smittet av andre. Etter tre dager som smittet blir personer syke, og etter fire dagers sykdom blir de friske med immunitet. Sannsynligheten for død mens en person er syk skal være 1 % (0,01) hver dag mens de er syke. Definer klassen med passende datafelter og metoder.
Nedenfor ser du eksempler på en grafisk representasjon av et sykdomsforløp for en enkeltperson. Merk: Du trenger ikke å lage en simulering i denne delen, kun implementere funksjonaliteten i Personklassen.

eller

Del 2: smittespredning i en populasjon
I denne delen skal du gjøre to ting:
Implementer en klasse Populasjon som skal holde orden på et bestemt antall personer og smitte fra en person til naboer. I denne oppgaven er naboer definert som plassert inntil hverandre vannrett og loddrett, men ikke på skrå. Hver person har altså fire naboer.
Implementer funksjonalitet for å overføre smitte fra en smittet eller syk person til alle naboer som er friske uten immunitet, slik som i figur 2. Sannsynligheten for å bli smittet av en nabo skal være 30 % (0,3).
Rutenettet representerer populasjonen. De lysegrå boksene representerer friske personer uten immunitet, og den røde boksen med hvit skråstrek i figur 1 representerer en syk person. De to rosa boksene med svart skråstrek i figur 2 representerer de smittede naboene til personen i midten.
Del 3: simuleringen
I denne delen skal du implementere en simulering av smittespredning i en populasjon av personer som starter med en syk og fire smittede personer, som vist i figuren nedenfor.

Den røde boksen med hvit skråstrek representerer en syk person. De fire rosa boksene med sorte skråstreker representerer fire smittede personer som ikke har symptomer, de er altså i virusets inkubasjonstid.

Ovenfor ser vi en simulering av de 10 første dagene med smittespredning. De røde boksene med hvit skråstrek representerer personer som er syke, de har smitten med symptomer, mens de rosa boksene med hvit skråstrek representerer smittede personer uten symptomer. De mørkegrå boksene med svart prikk representerer friske personer med immunitet, og de svarte boksene med hvit prikk representerer døde personer.