Agent-based simulation for zoonotic diseases in rural region
The goal of this project is the design of agent-based simulation software for a set of selected and representative infection diseases in a rural community, running on super-computers and scaling up to millions of nodes. We create agents simulating people and agents simulating animals. We represent population mobility, and farms distributions, taking into account census data. Our simulator reproduces people daily routines, considering working places, schools and social activities. It also represents how a simulated infection will spread in the community, and how mitigation strategies, such as immunization of people and animals can reduce the size of the epidemic.
Presentations & Publications
- C. Scoglio, H. Liu, P. Schumm, and A. Lyubinin. Epirur_Cattle: A spatially explicit agent-based simulator of beef cattle movements. In Proceedings of the the Twelfth Annual International Conference on Computational Science 2012 - Empowering Science through Computing
The goal of this project is the design of agent-based simulation software for a set of selected and representative infection diseases in a rural community. We create a detailed simulation environment and run various epidemic models. We choose Neosho County as a test case and conducted a survey to program the agents behavior. We are going to test different mitigation strategies. We are also going to estimate statistical parameters of the output and their sensitivity.
The simulation can be divided into the following stages:
1) specifying the model for the environment and agents behavior (model);
2) generation of the simulation environment (generator of the simulation environment);
3) generation of the human and animal population (population generator);
4) generation of the typical schedules for the agents (typical schedule generator);
5) performing the simulation (simulation engine).
Currently the simulator is written in Java using MASON agent-based simulation framework.
1. Specifying the model for the environment and agents behavior.
The model for the environment consists of
the types of locations;
typical activities, available in these types of locations;
demographic parameters of the population;
groups of agents of similar age and activities (roles), which define their typical daily schedules;
typical schedules for role.
The demographic parameters are determined from the census for the people and from agricultural census for the animals. Based on these parameters and our survey results we determine typical schedule for a person of a given age, gender, family status, etc. Currently we don't distinguish animals in that detail.
2. Generation of the simulation environment.
The simulation generator module generates the actual environment for the simulation. The generator reads the list of locations and determines which location belong to which type, what is the capacity at each location and (in case of farms) what is the area for the locations. We have the list of addresses for Neosho County, so we are able to generate a highly realistic environment. We also GeoCoded all the locations and processed Neosho County Business directory for graphical output and identification of businesses and public places.
Currently we ignore the road network and traffic structure. We think this is a reasonable assumption for most rural regions.
3. Generation of the human and animal population.
The human and animal populations are generated according to the census statistics.
The traditional approach to the generation of synthetic populations for agent-based simulator is so called Proportional Fitting technique, where for each demographic parameter the population is divided into proportional subgroups, and each subgroup is further divided according to the value of the next demographic parameter, etc. Following this procedure word to word may result in producing populations that formally match the census statistic but are unrealistic. Our approach does not have this drawback. It is also possible to take as many demographic parameters into account as one think is necessary.
There are many possible patterns for the household partition of the population. One of the goals is to see how much the results of the simulation depend on the partition.
4. Generation of the typical schedules for the agents.
Now the typical schedules for the agents must be generated. The schedule consists of two types of events - events, that happen on a regular basis and events, which happen occasionally and don’t have a fixed time during the day. The generator decides what events take place for an agent, at what times and places they happen, and add them to the agents general schedule.
The selection of the occasional events for different groups of people is based on the results of our survey, conducted in Neosho County.
5. Performing the simulation.
The agents move between locations according to their schedule. Each agent has two schedules - for the current day and for the next day. The next day schedule is computed in a separate thread during the current day, with the schedule for the 0th day being computed before start. The regular events are simply copied into the next day schedule with some random deviation in the start and end time. For time intervals between regular events, the schedule generator decides whether to put there an occasional event and, if so, generates an event with exact time and place to happen, and adds it to the schedule. At the end of the simulation day the new schedule is adopted.
At the end of each step of the simulation we compute the contact network for the agents, and run epidemic models. All movements of agents are saved in KML files, which can be visualized in Google Earth.
A separate simulation has been created in C++ simulating the cattle industry as it is composed of cattle agents and operator agents. The cattle graze and grow within various premises, while the (farm/ranch/feedlot operators) decide when to buy and sell the cattle. The grazing and trade-based movements of cattle establish a complicated dynamic contact process upon which epidemics are simulated.
The final output of the simulation are going to be the dynamical contact network and epidemic statistics. We are going to analyze the results of the simulation. We are also going to determine trust intervals for the results and to implement testing of different mitigation strategies. We design our simulator to be well scalable to handle large populations.