Mathematical and Minischeme Appendix
Main Menu Previous Topic Next Topic
Definitions of time-dependent quantities
In "Emergency Response to a Smallpox Attack: The Case For Mass Vaccination", Kaplan, Craft and Wein outline a system dynamics model that reflects the CDC guidelines and possible alternatives for dealing with a smallpox attack in a 10 million-person city. They divide the city's population into 17 parts that correspond to numbers of people in 17 different states (such as susceptible-untraced, in the first stage of infection and traced, in the second stage of infection and on the vaccination queue, dead, immune, and so on) The sum of these 17 quantities is always equal to 10 million. They are functions of only one variable - time, which may be measured in days, or any other convenient time unit.
Here's how these quantities are defined in the article and in the simulator:
| Agent ID | Quantity Name | Definition of Quantity |
| 0 | S0 | susceptible, not traced |
| 1 | S1 | susceptible, traced |
| 2 | I01 | infected, not traced, first stage of the disease |
| 3 | I02 | infected, not traced, second stage of the disease |
| 4 | I03 | infected, not traced, third stage of the disease |
| 5 | I04 | infected, not traced, fourth stage of the disease |
| 6 | Q0 | in queue, susceptible |
| 7 | Q1 | in queue, infected, first stage |
| 8 | Q2 | in queue, infected, second stage |
| 9 | Q3 | in queue, infected, third stage |
| 10 | I11 | infected, traced, first stage |
| 11 | I12 | infected, traced, second stage |
| 12 | I13 | infected, traced, third stage |
| 13 | I14 | infected, traced, fourth stage |
| 14 | H | quarantined, infected |
| 15 | Z | immune |
| 16 | D | dead |
The article also defines additional quantities that can be expressed in terms of the 17 basic ones above. These don't add to the complexity of the model, but make it easier to write down some of the equations:
| I3 = I03 + Q3 + I13 | all infected individuals |
| Q = Q0 + Q1 + Q2 + Q3 | all the individuals on the queue |
| R0 | the number of persons infected on average by a newly symptomatic case over the duration of her infectiousness |
| kappa | the rate with which anyone in the population is randomly traced |
| lambda(j) | expected number of untraced contacts previously infected by a traced individual who are in disease stage j |
| q(j) | conditional probability that a contact of an index detected at a particular time is in stage j of disease given that the contact has not been traced |
These helper functions, as well as a couple of additional ones, were defined as global minischeme functions in the Simulator as follows:
| Quantity | Minischeme Code | Algebraic Representation |
| Q | (define q-sum ()
(max (+ (get-pop 6) (get-pop 7) (get-pop 8) (get-pop 9)) 0.000001)) |
Q = Q0 + Q1 + Q2 + Q3 |
| A convenient quantity from the equations |
(define CPRN ()
(/ (- c (* p (R-0))) N)) |
(c - p*R0) / N |
| R0 | (define R-0 ()
(/ (* beta (+ (get-pop 0) (get-pop 6) (get-pop 1))) r3)) |
![]() |
| lambda(j) | (define lambda (j)
(/ (* (q j) beta (get-pop 0)) (+ r3 (kappa)))) |
![]() |
| kappa | (define kappa ()
(if (< (gettime) (/ tau time-step)) 0 (* (CPRN) r3 (I-3)))) |
![]() |
| q(j) | (define q (j)
(let ((product 1)) (begin (if (>= j 2) (set product (* product (/ r1 (+ r1 r3 (kappa))))) 0) (if (>= j 3) (set product (* product (/ r2 (+ r2 r3 (kappa))))) 0) (set product (* product (cond (= j 1) (/ (+ r3 (kappa)) (+ r1 r3 (kappa))) (= j 2) (/ (+ r3 (kappa)) (+ r2 r3 (kappa))) (= j 3) (/ (+ r3 (kappa)) (+ r3 r3 (kappa)))))) product))) |
![]() |
| I3 | (define I-3 ()
(+ (get-pop 4) (get-pop 9) (get-pop 12))) |
I3 = I03 + Q3 + I13 |
| State Population |
(define get-pop (agent-id)
(array-get (getagentstatearray agent-id) 0)) |
Population of a state is equivalent to the size of component 0 of the corresponding Agent's state array |
Previous Slide Next Slide