Agent-Based Modeling – A Path to simulate everything
默认 ·
What is the ABM
Now, let's think back to the COVID-19, which was a gut-wrenching disaster.
At the beginning, governments of each country wanted to figure out the severity of the virus spreading and tried to build a simulation model to find how many people would be infected and die as a result.
Naturally a classic model called SEIR was be used, which was designed to describe the spread and recovery of a disease with an incubation period on a macroscopic scale an equation.
SEIR divides the population into four compartments: Susceptible, Exposed, Infectious, Recovered. We can explain the transformation between them by the following four differential equations:
$$ \begin{aligned} \frac{dS}{dt} &= -\beta \frac{S I}{N} \\ \frac{dE}{dt} &= \beta \frac{S I}{N} - \sigma E \\ \frac{dI}{dt} &= \sigma E - \gamma I \\ \frac{dR}{dt} &= \gamma I \end{aligned} $$
Through these equations, we can easily estimate the number of infections that if we get attributes of infection rate β, incubation rate σ, recovery rate γ, total population N, and initial number of each crowd.
However, it is not difficult to realize that SEIR still has many limitations and problems. The SEIR model is a holistic description of the whole population, that is to say, it completely ignores the behavioral differences of individuals between the spread of diseases. We certainly can not assume that a salesman who travels around plays the same role in disease spread as a programmer who often works at home.
Also, in the real world, all β, σ, γ, N, even other factors are evolving, such as if we lock down the city, of course the β will get down. Of course, we can describe this kind of parameter variation by adding a set of equations, but this becomes impossible to describe too mach parameter variations just by few equations if we wish to add as many factors as possible.
Therefore, although the SEIR model is important in the overall description of infectious diseases, it is still powerless in practical simulation because of different socializations, policies and even emergencies.
So, we need a model that can be used in terms of micro-individuals, that is the Agent-Based Modeling (ABM).
Let's think about that there is no way for a set of macroscopic equations to accurately describe the differences between individuals and update parameters in time, can we model the whole entire process from a microscopic point of view? Can we build up a system that can simulate each motion of each people? There are differences in the daily lives of salesmen and programmers, so can we give different motion rules to different kind of people?
The answer is obvious, of course we can.
Like Object Oriented Design, we can define different kinds of people, give them different parameters and rules of motion, initialize a large number of different objects using such classes, and then write a endless loop that they will update their parameters by rules of motion just like real world in each step in loop.
This is ABM, which uses agents to simulate the state of different things, simulate different behaviors, and these agents can also influence each other.
T.B.D.