2013-10-14© ETH Zürich |
Modeling and Simulating Social Systems with MATLAB
Lecture 4 – Cellular Automata
© ETH Zürich |
Chair of Sociology, in particular of
Modeling and Simulation
Tobias Kuhn and Olivia Woolley
2013-10-14 Modeling and Simulating Social Systems with MATLAB 22
Schedule of the courseIntroduction to MATLAB
Introduction to social-science modeling and simulations
Working on projects (seminar thesis)
Handing in seminar thesis and giving a presentation
Create and Submit a Research Plan
DEADLINE: 21.10.
23.09.
30.09.
07.10.
14.10.
21.10.
28.10.
04.11.
11.11.
18.11.
25.11.
02.12.
09.12.
16.12.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 33
Projects – Suggested Topics1 Traffic Dynamics 9 Evacuation Bottleneck 17 Self-organized Criticality 25 Facebook
2 Civil Violence 10 Friendship Network Formation
18 Social Networks Evolution
26 Sequential Investment Game
3 Collective Behavior 11 Innovation Diffusion 19 Task Allocation & Division of Labor
27 Modeling the Peer Review System
4 Disaster Spreading 12 Interstate Conflict 20 Artificial Financial Markets
28 Modeling Science
5 Emergence of Conventions
13 Language Formation 21 Desert Ant Behavior 29 Simulation of Networks in Science
6 Emergence of Cooperation
14 Learning 22 Trail Formation 30 Opinion Formation in Science
7 Emergence of Culture 15 Opinion Formation 23 Wikipedia 31 Organizational Learning
8 Emergence of Values 16 Pedestrian Dynamics 24 Social Contagion
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4
Repetition Dynamical systems described by a set of differential
equations (example: Lotka-Volterra)
Numerical solutions can be calculated iteratively using the Euler Method (example: Kermack-McKendrick)
The values and ranges of parameters critically matter for the system dynamics (Example 2, epidemiological threshold)
Time resolution in Euler Method must be sufficiently high to capture “fast” system dynamics (Example 3)
MATLAB provides the commands ode23 and ode45 for solving differential equations (Example 3)
4
2013-10-14 Modeling and Simulating Social Systems with MATLAB 55
Simulation Models
What do we mean when we speak of
(simulation) models? Formalized (computational) representation of social,
economic etc. dynamics Reduction of complexity, i.e. highly simplified
assumptions
Not trying to reproduce reality but rather systematize specific interdependencies of “real” systems
Formal framework to test and evaluate causal hypotheses against empirical data (or stylized facts)
2013-10-14 Modeling and Simulating Social Systems with MATLAB 66
Simulation Models
Strength of (simulation) models? Computational laboratory: test how micro dynamics
lead to macro patters
There are usually no experiments in social sciences but computer models can be a “testing ground”
Particularly suitable where formal models fail (or where dynamics are too complex for formal modeling)
Possible to combine empirical input with quantitative validation of both the results and mechanisms
2013-10-14 Modeling and Simulating Social Systems with MATLAB 77
Simulation Models
Weakness of (simulation) models? The choice of model parameters, implementation
etc. may strongly influence the simulation outcome
We can only model aspects of a system, i.e. the models are necessarily incomplete & reductionist
More complex models are not necessarily better: dynamics between model components often poorly understood (a known problem in climate modeling)
Can construct a computational model of virtually anything but hard to verify if you are actually studying a realistic empirical question!
2013-10-14 Modeling and Simulating Social Systems with MATLAB 88
Simulation Models
How to we deal with known limitations? Use empirical input and formal optimization to rule
out arbitrariness of the model
Test for implementation- and specification- dependence of simulations
Validate the model mechanism both with observations and causal theory
Use empirical data to evaluate the predictive power of the simulation model
2013-10-14 Modeling and Simulating Social Systems with MATLAB 99
Cellular Automaton (plural: Automata)
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1010
Cellular Automaton (plural: Automata)
A cellular automaton is a rule, defining how the
state of a cell in a grid is updated, depending on
the states of its neighbor cells.
Cellular-automata simulations are discrete both
in time and space.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1111
Cellular Automaton
The grid can have an arbitrary number of
dimensions:
1-dimensional cellular automaton
2-dimensional cellular automaton
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1212
Moore Neighborhood
The cells are interacting with each neighbor
cells, and the neighborhood can be defined in
different ways, e.g. the Moore neighborhood:
1st order Moore neighborhood 2nd order Moore neighborhood
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1313
Von-Neumann Neighborhood
The cells are interacting with each neighbor cells,
and the neighborhood can be defined in different
ways, e.g. the Von-Neumann neighborhood:
1st order Von-Neumann neighborhood
2nd order Von-Neumann neighborhood
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1414
Game of Life
Ni = Number of 1st order Moore neighbors to cell
i that are activated.
For each cell i:1. Deactivate active cell if Ni <2 or Ni >3.2. Activate inactive cell if Ni =3
i
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1515
Game of Life
Ni = Number of 1st order Moore neighbors to cell
i that are activated.
For each cell i:1. Deactivate active cell if Ni <2 or Ni >3.2. Activate inactive cell if Ni =3
2013-10-14 Modeling and Simulating Social Systems with MATLAB 1616
Game of Life Want to see the Game of Life in action? Type:
life
2013-10-14 Modeling and Simulating Social Systems with MATLAB 17
Complex Patterns
17
“Gosper Glider Gun”:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 18
Life in Life
18
The Game of Life can be used to simulate the
Game of Life:
http://www.youtube.com/watch?v=xP5-iIeKXE8
2013-10-14 Modeling and Simulating Social Systems with MATLAB 19
Life in Life
19
The Game of Life can be used to calculate
everything (if a Turing machine can):
http://www.youtube.com/watch?v=My8AsV7bA94
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2020
Cellular Automata: A New Kind of Science?
A thorough study of
all 256 “behavioral”
rules of a 1-D cellular
automata.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2121
Cellular Automata: A New Kind of Science?
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2222
Cellular Automaton: Principles
1. Self Organization: Patterns appear without a
designer
2. Emergence: High-level phenomena can
appear such as gliders, glider guns, etc.
3. Complexity: Simple rules produce complex
phenomena
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2323
Highway Simulation
Simple example of a 1-dimensional cellular
automaton
Rules for each car at cell i:1. Stay: If the cell directly to the right is occupied.
2. Move: Otherwise, move one step to the right, with probability p
Move to the next cell, with the probability p
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2424
Highway Simulation
We have prepared some files for the highway
simulations: draw_car.m : Draws a car, with the functiondraw_car(x0, y0, w, h)
simulate_cars.m: Runs the simulation, with the functionsimulate_cars(moveProb, inFlow, withGraphics)
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2525
Highway Simulation
Running the simulation is done like this:simulate_cars(0.9, 0.2, true)
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2626
Kermack-McKendrick Model
In lecture 3, we introduced the
Kermack-McKendrick model, used for simulating
disease spreading.
We will now implement the model again, but this
time instead of using differential equations we
define it within the cellular-automata framework.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2727
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
S
IR
β transmission
γrecovery
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2828
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2013-10-14 Modeling and Simulating Social Systems with MATLAB 2929
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate )(
)( )()(
)()(
tIdt
dR
tItStIdt
dI
tStIdt
dS
γ
γβ
β
=
−=
−=
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3030
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate )(
)( )()(
)()(
tIdt
dR
tItStIdt
dI
tStIdt
dS
γ
γβ
β
=
−=
−=
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3131
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3232
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
For the MATLAB implementation, we need to
decode the states {S, I, R}={0, 1, 2} in a matrix x.
S S S S S S S
I I I S S S S
I I I I S S S
R I I I S S S
R I I I S S S
I I I S S S S
I S S S S S S
0 0 0 0 0 0 0
1 1 1 0 0 0 0
1 1 1 1 0 0 0
2 1 1 1 0 0 0
2 1 1 1 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3333
Kermack-McKendrick Model
The Kermack-McKendrick model is specified as:
We now define a 2-dimensional
cellular-automaton, by defining a grid (matrix) x,
where each of the cells is in one of the states: 0: Susceptible 1: Infected 2: Recovered
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3434
Kermack-McKendrick Model
Define microscopic rules for
Kermack-McKendrick model:
In every time step, the cells can change states
according to:
A Susceptible individual can be infected by an Infected neighbor with probability β, i.e. State 0 -> 1, with probability β.
An individual can recover from an infection with probability γ, i.e. State 1 -> 2, with probability γ.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3535
Cellular-Automaton Implementation
Implementation of a 2-dimensional cellular
automaton model in MATLAB is done like this:
The iteration over the cells can be done either
sequentially, or randomly.
Iterate the time variable, tIterate over all cells, i=1..N, j=1..N
Iterate over all neighbors, k=1..M
End k-iterationEnd i-iteration
End t-iteration
…
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3636
Cellular-Automaton Implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3737
Cellular-automaton implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3838
Cellular-automaton implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 3939
Cellular-automaton implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4040
Cellular-automaton implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4141
Cellular-automaton implementation
Sequential update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4242
Cellular-automaton implementation
Random update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4343
Cellular-automaton implementation
Random update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4444
Cellular-automaton implementation
Random update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4545
Cellular-automaton implementation
Random update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4646
Cellular-automaton implementation
Random update:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4747
Cellular-automaton implementation
Attention: Simulation results can be very sensitive to the type of
update used
Random update is usually preferable but also not always the best solution
Just be aware of this potential complication and
check your results for dependency on the
updating scheme!
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4848
Boundary Conditions
The boundary conditions can be any of the
following: Periodic: The grid is wrapped, so that what exits on
one side reappears at the other side of the grid.
Fixed: Agents are not influenced by what happens at the other side of a border.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 4949
Boundary Conditions
The boundary conditions can be any of the
following:
Fixed boundaries Periodic boundaries
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5050
MATLAB Implementation of the Kermack-McKendrick Model
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5151
MATLAB implementation
Set parameter values
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5252
MATLAB implementation
Define grid, x
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5353
MATLAB implementation
Define neighborhood
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5454
MATLAB implementation
Main loop. Iterate the time variable, t
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5555
MATLAB implementation
Iterate over all cells, i=1..N, j=1..N
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5656
MATLAB implementation
For each cell i, j: Iterate over the neighbors
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5757
MATLAB implementation
The model, i.e. updating rule goes here.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5858
Breaking Execution
When running large computations or animations, the
execution can be stopped by pressing Ctrl+C in the main
window:
2013-10-14 Modeling and Simulating Social Systems with MATLAB 5959
References
Wolfram, Stephen, A New Kind of Science. Wolfram
Media, Inc., May 14, 2002.
http://www.conwaylife.com/wiki/
Martin Gardner. The fantastic combinations of John
Conway's new solitaire game "life". Scientific American
223 (October 1970): 120-123.
Schelling, Thomas C. (1971). Dynamic Models of
Segregation. Journal of Mathematical Sociology
1:143-186.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 6060
Exercise 1
Get draw_car.m and simulate_cars.m from
www.soms.ethz.ch/matlab or from
https://github.com/msssm/lecture_files
Investigate how the flow (moving vehicles per
time step) depends on the density (occupancy
0%..100%) in the simulator. This relation is
called the fundamental diagram in transportation
engineering.
2013-10-14 Modeling and Simulating Social Systems with MATLAB 6161
Exercise 1b
Generate a video of an interesting case in your
traffic simulation.
We have uploaded an example file,
simulate_cars_video.m, and
simulate_cars_video_w7.m
2013-10-14 Modeling and Simulating Social Systems with MATLAB 6262
Exercise 2
Download the file disease.m which is an
implementation of the Kermack-McKendrick
model as a Cellular Automaton.
Plot the relative fractions
of the states S, I, R, as
a function of time, and
see if the curves look
the same as for the
implementation last class
2013-10-14 Modeling and Simulating Social Systems with MATLAB 6363
Exercise 3
Modify the model Kermack-McKendrick model in
the following ways: Change from the 1st order Moore neighborhood to a
2nd and 3rd order Moore neighborhood. Make it possible for
Removed individualsto change state back to Susceptible.
What changes?