COVID-19 is a very complex issue and requires strict measures to hopefully get it under control soon. However, people are worried about how long the current state of #StayAtHome will persist and what to expect in the future. Hence, our team decided to tackle these questions in a novel way: Through agent-based modeling (ABM) we will simulate communities and the spread of COVID-19 and provide insight into the different scenarios.
What it does
ABM allows one to capture the stochastic behavior of people observed in the real-world system. Agents make decisions similar to how people do in the real-world. Simulating an ABM multiple times will capture different possible scenarios for the outbreak that are all determined by how agents behave. The equation-based model does not capture these different decisions and offers one course of the outbreak. Then we input the output of this model into a web app and make it visually stunning, interactive and easy to understand.
How I built it
Our model is based on the graph library networkx and a lot of statistics. Our backend is Spring Boot based and it is connected with our frontend, which visualizes the graphs in d3js.
Challenges I ran into
Data about infection rates is sparse and sometimes not in sync. Hence, we have to determine which data is 'the most true' and depicts reality the best. Furthermore, simulating the interactions of huge communities such as Switzerland is very computationally expensive and requires fine tuned algorithms and design.
Accomplishments that I'm proud of
Bringing together people from various time zones, with very different skill sets and coordinating the endeavor is itself already a great accomplishment.
What I learned
Agent-based models are simple concepts, which scale a lot in complexity and can be applied to a variety of topics. Different assumptions for the agents and the world vastly influence the outcome of the model and therefore require a lot of research and data based decisions.
What's next for ABM COVID19
Going from Switzerland to even bigger countries with more people such as Brazil.