An Agent-Based Epidemic Model

Download Report

Transcript An Agent-Based Epidemic Model

An Agent-Based Epidemic
Model
Brendan Greenley
Period 3
Why An Epidemic Model?
• Epidemics have been
responsible for great losses of
like and have acted as a
population control (Black
Plague, Spanish Influenza)
• Epidemics are still a cause of
concern today and in the future
(SARS, Avian Flu)
• Analyzing certain characteristics
of an epidemic outbreak or
response can help shape plans
in case of a real outbreak.
Why Agent-Based?
• Originally tried System
Dynamics
• Agent-Based Modeling
makes more sense
– Individual behavior differs and
can greatly affect the course
of an epidemic outbreak
– A user can observe an agent
over time
– Children can inherit values
from two parents
– Continuous visual
representation of population
NetLogo
• Still using NetLogo
• Programming language (Northwestern)
• Allows for System Dynamics & Agent Based
Modeling
• Crossplatform support
– Windows, *Nix, Mac
• Depends on Java
• Free!
Scope of project
• Population/environment bounds dictated
by computer resources
• ~10,000 agents maximum
• All about maintaining a population balance
• Quarantine option allows for analysis on
how a population’s response to a epidemic
helps/hinders its overall carrying capacity
• Aging, mating, and survival behaviors all
seen in model
Setup
Procedure
• General Pop. To-Do List:
– Move in a random direction
– Check for potential mate
– Check for possible
exposure to disease
– Age++
• Quarantine Agent To-Do List:
– Move in a random direction
– Check for infected persons in
vicinity, make them follow
– Take infected persons to
quarantine zone/continue
patrolling
Quarantine!
Quarantine Officers
•
Number dictated by
“quarantine_magnitude”
variable slider
•
(#q = 2.5% *
quarantine_magnitude *
initial_population )
•
•
•
Never die
Never mate
Move two steps in a
random direction
Take shortest path back to
•
Aging
•
An agent’s probability of dying from natural
causes is modeled by an extenuated
distribution curve.
•
prob = e^(-1 *( ((1 / 20)*(age - max-ticks-alive))) ^
2)
•
Helps maintain population from going out of
control during lulls in epidemics, and prevents
agents from living for unrealistic amounts of
time
BehaviorSpace
Sample Run of Epidemic Model
2500
2000
1500
count turtles
People
• Allows me to
export data to
Excel
• Can incrementally
increase specified
values as the
model runs
• Useful for post-run
data analysis
infected
Moving Average (# Alive)
Moving Average (# Infected)
1000
500
0
0
1000
2000
3000
4000
5000
Ticks
6000
7000
8000
9000
10000
Timeline
• First Quarter
– Used System Dynamics Modeling
• Second Quarter
– Late Dec: Switched to Agent-Based Modeling
– Jan:
• Implemented susceptibility distribution
• Implemented more realistic mating/children
characteristics
• Learned how to use BehaviorSpace
Timeline (Continued)
• February
– Implemented aging procedures
– Have infected agents movement limited
• March
–
–
–
–
Implemented quarantine zone
Added quarantine agents
Implemented quarantine officer patrolling
Implemented smarter susceptible agents (they avoid quarantine zones
and officers on their way to the zone with infected persons in tow)
• April/May/June (the future)
– Look into adding a vaccine/drug development to combat virus
– Try differing qurantine procedures and see what is most effective
– Analyze runs with and without quarantine and conclude what effect it
has.
Project Evolution
Sample Run of Epidemic Model
2500
2000
1500
People
• System Dynamics ->
Agent Based
• Short-term -> Long-term
• Predetermined equations
-> more complex
individual agent decisions
• Graphs highlight changes
1000
500
0
0
1000
2000
3000
4000
5000
Ticks
6000
7000
8000
9000
100