With the aim to find an answer to that question, and in collaboration with an Artificial Intelligence expert, this simple 2D simulation made using the p5js framework was made to represent the spread of the coronavirus.
In the first screen you can use a series of sliders to modify some values relevant for the spread of the disease:
Cure Rate - Curation rate once infected. Ex. 0.95 means that 95% of the infected cases will recover.
Doctor nº - Number of doctors in the population. When an infected person enters in contact with a doctor, it has higher chances of recovering.
D. infected rate - Infected ratio among doctors. Represents the chances of getting infected after encountering a doctor.
Infected rate - Probability of a non-doctor citizen of getting infected when encounters an infected person.
Move probability - Mobility of the population. Ex. 0.5 would represent that the mobility is restricted by half, as during a confinement.
Population size : Size of the population. We recommend using numbers lower than 1000.
There are various social classes (social classes are represented by colors):
Doctors - people who can cure other people, and have different stats. They can be infected, but not at the same time as doctors, and once they pass the infection they become Immune Doctors.
Normal - regular citizens
Infected - people who have contracted the virus. They can infect other people, and after 2-3 weeks, they either die or become immune
Each of the above can be reclassified as dead or alive. Once dead, they will not be displayed to the screen and will not be able to get cured (if they were a doctor) or infect.
Each dot represents a person which has unique values and probabilities to die. The dot's size represents age, and will be taken into account when calculating the death probability (how probable it is that the dot will die if it contracts the disease, and how long it will survive before reaching terminal state).
While executing the model, a key can be found at the top right indicating:
ETA: elapsed time approximation: how much time the program has been running from. The conversion into 'real world' time is for you to choose, as it depends on how big you are considering the environment to be.
FPS: Frames per second: how fast your computer is drawing the frames. This is important as the dot's speed depends on this. You want to keep this value above 30. If it is falling below thirty, please reduce population size, which will increase performance.
INF: Number of infected people
Doc: Number of doctors
IMM: Number of immunized people
NML: Normal people
You can access the model using the following link. Please, enter and play with it!