Challenge Team Interim Report
Team Number: 042
School Name: Goddard High School
Area of Science: Medicine/Epidemiology
Project Title: Outbreak
Disease strikes fear and challenge into the community of scientists throughout the entire world. The challenge of the Goddard High School Upper Class team is to gater data and facts about modern contagious diseases. Such diseases can include, but are not limited to, the common cold, influenza, AIDS, Hanta-Virus, and Ebola. We intend to identify the parameters that lead to the creation and spread of those diseases.
Our team will create a computer program that will simulate the spread of contagious diseases according to some of their identified parameters. Users will be able to change the value of certain parameters, so that they may test their hypotheses concerning the spread of disease. Some of the questions the users will be able to answer could include: What happens if a new virus goes undetected for six months rather than one month? What happens if that virus is a lethal and air-born virus rather than sexually transmitted? Our team's program will compare and contrast these scenarios through probabilty-based random simulations.
Our team has come quite a long way with the idea behind our program. We have been able to get a thorough understanding of how the program will really function. Our team has sixth period free, so we have been able to work with our project during this time. We have had a few meetings after school, when we have talked about how the program will work. From these meetings we have started to create a program that will accurately simulate disease spread. In order to write the code for our program there are a few different areas of C++ that we have needed to learn outside of class-time. Two main areas involve arrays, and creating pseudo-random number generation. Our team has done research on both of these topics through use of the Internet, our own class materials, and by seeking help from the people at the Supercomputing Challenge.
One of our team members discovered a mathematical model for the simulation of disease spread. He found this while searching the Internet at the following URL. This model defines how a virus flows through three groups of population susceptible, ill, and recovered. The susceptible group are people who are not yet sick but have the potential to become sick. The ill group are people who are currently infected with the virus. The recovered group are people who have had the disease and have recovered from it. The dynamics of the model are as follows. Everybody in the population starts in the susceptible group (i.e. not sick). Some people in the susceptible group move to the ill group. The people in the ill group move to the recovered group. Finally, the people in the recovered group move back to the susceptible group. In our model, random selection moves people to the ill group; thus illness is determined by chance. The length of time an individual stays in the illness group is predetermined. After that amount of time has elapsed, the individuals move into the recovery group. People in the recovery group cannot get sick again for a predetermined amount of time. Once that amount of time has passed, the individual moves back into the susceptible group, where he may become ill again. This configuration of the model is similar to how the common cold behaves in a finite population.
We began translating this model into a computer simulation by creating two arrays of equal size. Each element of the array represents a single individual in the population. Currently our array-population size cannt exceed 1000. The first array (called status) contains the status of each individual (0=Susceptible, 1=Ill, 2=Recovered). The second array (called days) keeps track of the number of days an individual remains in any group. At the beginning of the program, the user inputs the percent chance an individual has of getting sick. Individuals may move from status susceptible to status ill depending upon which random number is generated. A random number is generated between 1 and 100. If the random number generated is less then the user inputted percent chance, then the individual will get sick, and the status of the individual changes to ill (or 1). This loop iterates once for each member of the population. At the end of this process, the day counter increases by one. Individuals may move from status ill to status recovered and move from status recovered to status susceptible, only when the value in the day array reaches a predetermined amount. These values, ill duration and recovery duration, are determined at the beginning of the program, by the user. Individuals pass from susceptible to ill, and to recovered repeatedly, depending on the user defined number of days of simulation.
Currently we tabulate the number of individuals in each status group for each day of the simulation. We output this data to a spreadsheet and use broken line graphs to depict the dynamic relation between the three status groups, as a function of time. We have run the simulation with various parameters, however we have not had time to analyze trends in the data.
We hope to develop this program to include more parameters. For instance we may include a death rate due to illness parameter, a influence parameter that could cure or spread the disease, and a population type variance. Finally, we will test the simulation using to see if it seems to model the spread of diseases in real populations. We plan to get data from local health officials and the Center for Disease Control.