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
kappathe 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 ()
        (+ (get-pop 6) (get-pop 7) (get-pop 8) (get-pop 9))
Q = Q0 + Q1 + Q2 + Q3
A convenient
from the
(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))
            (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))))))
I3 (define I-3 ()
    (+ (get-pop 4)
        (get-pop 9)
        (get-pop 12)))
I3 = I03 + Q3 + I13
(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