Programming Homework Help
Programming Homework Help. Contagination system
Project Documents: https://drive.google.com/drive/folders/1Oa2HmpQM9Z…
Instructions
For this project, you and your group will be designing and implementing a system in C or C++, that will act as a simulation engine to compare the impact of different vaccine distribution strategies on the spread of a disease. Specifically, you will be examining how prioritizing vaccine distribution across areas using closeness centrality and degree centrality compare against each other and random and equal distribution strategies. The results of these experiments should be provided to the user at the end in an easy to read format.
o The first line will provide the name of the file containing the region population (Do NOT prompt the user for this filename)
o The second line will provide the name of the file containing the region layout (Do NOT prompt the user for this filename)
o The third line will be empty
o The fourth line will provide information regarding which area in the region starts with the infection
o The fifth line will provide information regarding the infectious period of the disease
o The sixth line will provide information regarding the contact rate of the disease
o The seventh line will provide information regarding the number of available vaccines
o Read in and store the initial region population Each line contains the ID of the area and its population
There can be any number of areas in a region, and they can have any population
o Read in and store the region layout The region layout stores the region as an adjacency matrix with a header on the top row and left column
The region can be considered to be a contiguous, planar graph where areas are nodes and an edge between two nodes indicates those two areas share a border
A 1 in a cell indicates two areas are adjacent
A 0 in a cell indicates two areas are not adjacent
The adjacency matrix will always be square
o Output the ID and population of each area
o Output an adjacency list representing the region
o Setup the following experiments Distribute vaccines amongst the areas according to closeness centrality, smaller closeness values have priority over larger closeness values. In the case of a tie between closeness centrality
values, smaller label values take priority. Closeness is defined as the average shortest distance between an area and every other area. You should attempt to distribute the maximum number (population size) of vaccines to an area before beginning distributing vaccines to the next area
Distribute vaccines amongst the areas according to degree centrality, larger degree values have priority over smaller degree values. In the case of a tie between degree centrality values, smaller label values take priority. Degree for an area is the number of adjacent areas. You should attempt to distribute the maximum number (population size) of vaccines to an area before beginning distributing vaccines to the next area
Distribute vaccines amongst the areas randomly. The areas labels have already been randomized so allocate vaccines starting at the smallest label and working to the largest label. You should attempt to distribute the maximum number (population size) of vaccines to an area before beginning distributing vaccines to the next area
Distribute vaccines amongst the areas equally. Each area should receive an equal share of the vaccine. An area cannot receive more vaccines than it has people, and any remaining vaccines from its allocation should be distributed round-robin style to the areas starting with the lowest numbered area and working to the highest numbered area.
o Execute each experiment using an agent-based SIRV model In SIRV models, we say that agents have one of four health states: Susceptible, Infectious, Recovered, Vaccinated. Susceptible agents do not have the disease but can contract it. Infectious agents have the disease and are spreading it for the length of their infectious period. Recovered agents are no longer infectious and have immunity to the disease. Vaccinated agents cannot contract the disease due to being vaccinated
In agent based models, each individual is represented as a separate entity, not just a population total. This means they will each agent will have their own health states and their own infectious period
For each experiment, one agent in the initially infected area will be infectious on Day 0. This does count as a day for the infectious period of that agent
Before an experiment is executed, the name of that distribution method should be output
For each experiment, your simulator must output for each day (including day 0) 1. The current simulated day number
2. The id, total population, number of susceptible, number of infectious, number of recovered, and number of vaccinated agents for each area
Each day, every infectious agent in an area infects contact rate number of available susceptible agents. These agents do not become infectious until the next day
At the end of the day, any infectious agents that have spent a number of days equal to the infectious period should become recovered for the next day. This means that every infectious agent should infect susceptibles for the full number of infectious period days
Recovered and vaccinated agents do not change states
If an area ever has more than 50% of its population infectious in a single day, then it infects a single person in each of its adjacent areas that have no infectious agents. These agents do not become infectious until the next day
The experiment stops when there are no more infectious agents in the region
o Collect and output data regarding the experiment For each experiment, you should determine what the peak number of infectious agents was, when the first day that peak occurred, what day the outbreak ended on (i.e. the first day with no infectious agents in the region), and how many agents in total were infected
This data should be output as a summary after all experiments have been executed
o Instructions on how to compile your program
o Instructions on how to run your program
o An indication on whether you implemented the bonus or not. By default, the TA’s will assume you did not attempt the bonus unless you indicate otherwise.