cellular automata

851-0585-04L – Modeling and Simulating
Social Systems with MATLAB
Lecture 4 – Cellular Automata
Karsten Donnay and Stefano Balietti
Chair of Sociology, in particular of
Modeling and Simulation
© ETH Zürich |
2012-10-15
Schedule of the course
Introduction to
MATLAB
24.09.
01.10.
08.10.
15.10.
22.10.
29.10.
Working on
projects
(seminar
thesis)
05.11.
12.11.
19.11.
Create and Submit a
Research Plan
DEADLINE: 22.10.
Introduction to
social-science
modeling and
simulations
26.11.
03.12.
10.12.
17.12.
2012-10-15
Handing in seminar thesis
and giving a presentation
K. Donnay & S. Balietti / [email protected] [email protected]
2
Projects – Suggested Topics
1 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
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
3
Goals of Lecture 4: students will
1.  Consolidate their knowledge of dynamical systems,
through brief repetition of the main concepts and revision
of the exercises.
2.  Get familiar with how and why simulation models may
contribute to our understanding of complex socio-dynamic
processes.
3.  Understand the important concept of Cellular Automata
as discrete representations of interactions on an abstract
grid (or configuration space).
4.  Implement simple Cellular Automata in MATLAB (Game of
Life, Highway Simulation, Epidemics: KermackMcKendrick model revisited)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
4
Repetition
  dynamical systems described by a set of differential
equations (example: Lotka-Volterra)
  numerical solutions iteratively for instances using 1st
Euler’s Method (example: Kermack-McKendrick)
  the values and ranges of parameters critically matter;
they determine which dynamics the model represents
(Ex. 2, the ratio of recuperation to infection parameter
determines the epidemiological threshold)
  time resolution in Euler Method must be sufficiently
high to capture (‘fast’) system dynamics (Ex. 3)
  not all MATLAB-own ODE solvers work equally well for
every dynamical system under consideration (Ex. 3)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
5
Simulation Models
  What do we mean when we speak of
(simulation) models?
 
Formalized (computational) representation of social,
economic etc. dynamics
 
Implies reduction of complexity, i.e. usually making
(strong) simplifying 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)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
6
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
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
7
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!
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
8
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 specificationdependence of simulations
 
Validate the model mechanism both with
observations and causal theory
 
Use empirical data to evaluate the predictive power
of the simulation model
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
9
Cellular Automaton (plural: Automata)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
10
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.
  May be represented as grids with arbitrary
dimension.
  Cellular-automata simulations are discrete both
in time and space.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
11
Cellular Automaton (plural: Automata)
  Simplest example for a (reduced) representation
of an interaction model
  Automata dimensions represent an abstract
“distance” that could be spatial, social relations
etc.
  Natural micro-to-macro link from interactions
between cells to patterns visible in the
automaton
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
12
Cellular Automaton
  The grid can have an arbitrary number of
dimensions:
1-dimensional cellular
automaton
2012-10-15
2-dimensional cellular
automaton
K. Donnay & S. Balietti / [email protected] [email protected]
13
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
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
14
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
2012-10-15
2nd order Von-Neumann neighborhood
K. Donnay & S. Balietti / [email protected] [email protected]
15
Game of Life
  Ni = Number of 1st order Moore neighbors to cell
i that are activated.
  For each cell i:
1. 
2. 
Deactivate: If Ni <2 or Ni >3.
Activate: if cell i is deactivated and Ni =3
www.mathworld.wolfram.com 2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
16
Game of Life
  Want to see the Game of Life in action? Type:
life!
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
17
Game of Life Patterns: can you find them?
  Ants
  Rabbits
  B-52
  R2D2
  Blinker puffer
  Spacefiller
  Diehard
  Wasp
  Canada goose
  Washerwoman
  Gliders by the dozen
  …
  Kok’s galaxy
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
18
Cellular Automata: A New Kind of Science?
  A thorough study of
all 256 “behavioral”
rules of a 1-D cellular
automata.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
19
Cellular Automata: A New Kind of Science?
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
20
Cellular Automaton: Principles
1.  Self Organization: Patterns appear without a
designer
2.  Emergence: Gliders, glider guns, wasps,
rabbits appear
3.  Complexity: Simple rules produce complex
phenomena
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
21
Highway Simulation
  Simple example of a 1-dimensional cellular
automaton
  Rules for each car at cell i:
1. 
2. 
Stay: If the cell directly to the right is occupied.
Move: Otherwise, move one step to the right, with
probability p
Move to the next cell, with
the probability p
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
22
Highway Simulation
  We have prepared some files for the highway
simulations:
 
draw_car.m : Draws a car, with the function
draw_car(x0, y0, w, h)
 
simulate_cars.m: Runs the simulation, with the
function
simulate_cars(moveProb, inFlow,
withGraphics)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
23
Highway Simulation
  Running the simulation is done like this:
simulate_cars(0.9, 0.2, true)
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
24
Kermack-McKendrick Model
  In lecture 3, we introduced the KermackMcKendrick 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.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
25
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2012-10-15
S
β transmission
R
γ
recovery
K. Donnay & S. Balietti / [email protected] [email protected]
I
26
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
27
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
28
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
29
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
S: Susceptible persons
I: Infected persons
R: Removed (immune)
persons
β: Infection rate
γ: Immunity rate
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
30
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
0
0
0
0
0
0
0
I
I
I
S
S
S
S
1
1
1
0
0
0
0
I
I
I
I
S
S
S
1
1
1
1
0
0
0
R I
I
I
S
S
S
2
1
1
1
0
0
0
R I
I
I
S
S
S
2
1
1
1
0
0
0
I
I
I
S
S
S
S
1
1
1
0
0
0
0
I
S
S
S
S
S
S
1
0
0
0
0
0
0
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
31
Kermack-McKendrick Model
  The Kermack-McKendrick model is specified as:
We now define a 2-dimensional cellularautomaton, by defining a grid (matrix) x, where
each of the cells is in one of the states:
 
0: Susceptible
 
1: Infected
2: Recovered
 
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
32
Kermack-McKendrick Model
  Define microscopic rules for KermackMcKendrick model:
In every time step, the cells can change states
according to:
 
 
2012-10-15
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 γ.
K. Donnay & S. Balietti / [email protected] [email protected]
33
Cellular-Automaton Implementation
  Implementation of a 2-dimensional cellularautomaton model in MATLAB is done like this:
Iterate the time variable, t
Iterate over all cells, i=1..N, j=1..N
Iterate over all neighbors, k=1..M
…
End k-iteration
End i-iteration
End t-iteration
  The iteration over the cells can be done either
sequentially, or randomly.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
34
Cellular-Automaton Implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
35
Cellular-Automaton Implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
36
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
37
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
38
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
39
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
40
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
41
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
42
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
43
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
44
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
45
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
46
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
47
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
48
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
49
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
50
Cellular-automaton implementation
  Sequential update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
51
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
52
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
53
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
54
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
55
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
56
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
57
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
58
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
59
Cellular-automaton implementation
  Random update:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
60
Cellular-automaton implementation
  Attention:
 
Simulation results may be 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!
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
61
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.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
62
Boundary Conditions
  The boundary conditions can be any of the
following:
Fixed boundaries
2012-10-15
Periodic boundaries
K. Donnay & S. Balietti / [email protected] [email protected]
63
MATLAB Implementation of the KermackMcKendrick Model
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
64
Set parameter values
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
65
Define grid, x
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
66
Define neighborhood
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
67
Main loop. Iterate the
time
variable,
t
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
68
Iterate over all cells,
i=1..N,
j=1..N
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
69
For each cell i, j: Iterate
over
the
neighbors
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
70
The model, i.e. updating
rule
goes
here.
MATLAB implementation
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
71
Breaking Execution
  When running large computations or animations, the
execution can be stopped by pressing Ctrl+C in the main
window:
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
72
References
  Wolfram, Stephen, A New Kind of Science.
Wolfram Media, Inc., May 14, 2002.
  http://www.bitstorm.org/gameoflife/
  http://ddi.cs.uni-potsdam.de/HyFISCH/
Produzieren/lis_projekt/proj_gamelife/
ConwayScientificAmerican.htm
  Schelling, Thomas C. (1971). Dynamic Models of
Segregation. Journal of Mathematical Sociology
1:143-186.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
73
Exercise 1
  Get draw_car.m and simulate_cars.m from
www.soms.ethz.ch/matlab or from
https://github.com/msssm/lectures_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.
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
74
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
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
75
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
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
76
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 individuals
to change state back to
Susceptible.
  What changes?
2012-10-15
K. Donnay & S. Balietti / [email protected] [email protected]
77