2015-10-26 ETH Zürich
Modeling and Simulating Social Systems with MATLAB Lecture 5 - - PowerPoint PPT Presentation
Modeling and Simulating Social Systems with MATLAB Lecture 5 - - PowerPoint PPT Presentation
Modeling and Simulating Social Systems with MATLAB Lecture 5 Cellular Automata Olivia Woolley, Stefano Balietti, Lloyd Sanders Computational Social Science (D GESS) 2015-10-26 ETH Zrich Strategies for Research Projects Data
2015-10-26
Modelling and Simulating Social Systems with Matlab 2
Strategies for Research Projects
- “Data project”:
- Choose a dataset for which you have an interesting
question
- Come up with a research question that can be tested
with that data
- Implement an existing model form the scientific literature
- Run simulations that either use the dataset as input or
that reproduce certain aspects of the data
2015-10-26
Modelling and Simulating Social Systems with Matlab 3
Strategies for Research Projects
- “Paper project”:
- Choose a scientific paper (or several papers) on a
modeling and simulation approach that looks interesting
- Come up with a research question that builds upon the
paper but is different from their research questions
- Extend, simplify, modify, and/or combine existing models
for testing your research question
- Run simulations for your model and compare the results
to the ones for the original model
2015-10-26
Modelling and Simulating Social Systems with Matlab 4
Repetition
- Dynamical systems described by a set of differential
equations; numerical solutions can be calculated iteratively using Euler's method (examples: Lotka- Volterra and Kermack-McKendrick)
- The values and ranges of parameters critically matter
for the system dynamics (Example 2, epidemiological threshold)
- Time resolution in Euler's 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
2015-10-26
Modelling and Simulating Social Systems with Matlab 5 5
Simulation Models
- What do we mean when we speak of
(simulation) models?
- Formalized (computational) representation of social
(or other kinds of) dynamics
- Reduction of complexity, i.e. highly simplifying
assumptions
- The goal is not to reproduce reality in general (only
very specific aspects of it)
- Formal framework to test and evaluate causal
hypotheses against empirical data
2015-10-26
Modelling and Simulating Social Systems with Matlab 6 6
Simulation Models
- Strength of (simulation) models?
- Computational laboratory: test how micro dynamics
lead to macro patters
- Experiments with computer models are particularly
useful in the social sciences, where experiments in the real world are typically not possible
- Suitable where analytical models fail or where
dynamics are too complex for analytical models
2015-10-26
Modelling and Simulating Social Systems with Matlab 7 7
Simulation Models
- Weakness of (simulation) models?
- The choice of model parameters and implementation
details can have a strong influence on the simulation
- utcome
- We can only model aspects of a system, i.e. the
models are necessarily incomplete and reductionist
- More complex models are generally not better (only
when simplification is not possible)
- It can be hard to relate simulation results to a realistic
and relevant empirical question
2015-10-26
Modelling and Simulating Social Systems with Matlab 8 8
Simulation Models
- How to we deal with the known limitations?
- Simple models with only few parameters
- Test whether simulation results depend on details of
the implementation or model
- Validate the model mechanism with observations and
causal plausibility
- Use empirical data to evaluate the predictive power of
the simulation model
2015-10-26
Modelling and Simulating Social Systems with Matlab 9 9
Cellular Automaton (plural: Automata)
2015-10-26
Modelling and Simulating Social Systems with Matlab 10 10
Cellular Automaton (plural: Automata)
- A cellular automaton is a set of rules, defining
how the state of a cell in a grid is updated, depending on the states of its neighboring cells
- Cellular-automata simulations are discrete in
time and space
2015-10-26
Modelling and Simulating Social Systems with Matlab 11
Cellular Automaton
- The grid can have an arbitrary number of
dimensions:
1-dimensional cellular automaton 2-dimensional cellular automaton
2015-10-26
Modelling and Simulating Social Systems with Matlab 12
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
2015-10-26
Modelling and Simulating Social Systems with Matlab 13
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
2015-10-26
Modelling and Simulating Social Systems with Matlab 14
Game of Life
- Ni = Number of 1st order Moore neighbors to cell i
that are activated.
- For each cell i:
- 1. Deactivate active cell iff Ni <2 or Ni >3.
- 2. Activate inactive cell iff Ni =3
i
2015-10-26
Modelling and Simulating Social Systems with Matlab 15 15
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
2015-10-26
Modelling and Simulating Social Systems with Matlab 16 16
Game of Life
- Want to see the Game of Life in action? Type:
life
2015-10-26
Modelling and Simulating Social Systems with Matlab 17
Complex Patterns
17
- “Gosper Glider Gun”:
2015-10-26
Modelling and Simulating Social Systems with Matlab 18
Game of Life: Some Bits of History
1970: Conway presents the Game of Life; discovery of the glider (speed c/4) and the standard spaceships (speed c/2); discovery of the Gosper glider gun (first pattern found with indefinite growth) 1971: First garden of eden (pattern that has no parent pattern and can
- nly occur at generation 0) was discovered; first patter with quadratic
growth (breeder) 1989: Discovery of the first spaceships with velocities c/3 and c/4 1996: Game of Life simulated in Game of Life 2000: A Turing machine was built in Game of Life 2004: Construction of the largest interesting pattern so far: caterpillar spaceship with speed 17c/45 consisting of 11,880,063 alive cells 2013: The first complete replicator (a pattern that produces an exact copy of itself) was built 2014: Game of Life wiki contains more than 3000 interesting patterns
2015-10-26
Modelling and Simulating Social Systems with Matlab 19
Surprising discoveries continue
- “The loafer” is a very small spaceship
- It is the slowest known orthogonal spaceship
(speed of c/7)
- It was discovered only in 2013
2015-10-26
Modelling and Simulating Social Systems with Matlab 20
Life in Life
20
- The Game of Life can be used to simulate the
Game of Life:
http://www.youtube.com/watch?v=xP5-iIeKXE8
2015-10-26
Modelling and Simulating Social Systems with Matlab 21
Life in Life
21
- The Game of Life can be used to calculate
everything (if a Turing machine can):
http://www.youtube.com/watch?v=My8AsV7bA94
2015-10-26
Modelling and Simulating Social Systems with Matlab 22 22
1-dimensional Cellular Automata
2015-10-26
Modelling and Simulating Social Systems with Matlab 23 23
Cellular Automaton: Principles
- 1. Self Organization: Patterns appear from
random start patterns
- 2. Emergence: High-level phenomena can
appear such as gliders, glider guns, etc.
- 3. Complexity: Simple rules produce complex
phenomena
2015-10-26
Modelling and Simulating Social Systems with Matlab 24 24
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
2015-10-26
Modelling and Simulating Social Systems with Matlab 25 25
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)
2015-10-26
Modelling and Simulating Social Systems with Matlab 26 26
Highway Simulation
- Running the simulation is done like this:
simulate_cars(0.9, 0.2, true)
2015-10-26
Modelling and Simulating Social Systems with Matlab 27 27
Kermack-McKendrick Model
- In lecture 4, 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 use the approach of cellular automata
2015-10-26
Modelling and Simulating Social Systems with Matlab 28
Kermack-McKendrick model
2015-10-26
Modelling and Simulating Social Systems with Matlab 29 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
2015-10-26
Modelling and Simulating Social Systems with Matlab 30 30
Kermack-McKendrick Model
- The Kermack-McKendrick model is specified as:
S: Susceptible persons I: Infected persons R: Removed (immune) persons
β: Infection rate γ: Immunity rate
) ( ) ( ) ( ) ( ) ( ) ( t I dt dR t I t S t I dt dI t S t I dt dS
2015-10-26
Modelling and Simulating Social Systems with Matlab 31 31
Kermack-McKendrick Model
- The Kermack-McKendrick model is specified as:
S: Susceptible persons I: Infected persons R: Removed (immune) persons
β: Infection rate γ: Immunity rate
) ( ) ( ) ( ) ( ) ( ) ( t I dt dR t I t S t I dt dI t S t I dt dS
2015-10-26
Modelling and Simulating Social Systems with Matlab 32 32
Kermack-McKendrick Model
- The Kermack-McKendrick model is specified as:
S: Susceptible persons I: Infected persons R: Removed (immune) persons
β: Infection rate γ: Immunity rate
2015-10-26
Modelling and Simulating Social Systems with Matlab 33 33
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 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1
2015-10-26
Modelling and Simulating Social Systems with Matlab 34 34
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
2015-10-26
Modelling and Simulating Social Systems with Matlab 35 35
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 γ.
2015-10-26
Modelling and Simulating Social Systems with Matlab 36 36
Cellular-Automaton Implementation
- Implementation of a 2-dimensional cellular
automaton in MATLAB can be done like this:
- The iteration over the cells can be done either
sequentially, in parallel, or randomly
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 …
2015-10-26
Modelling and Simulating Social Systems with Matlab 37 37
Cellular-automaton implementation
- Sequential update:
...
2015-10-26
Modelling and Simulating Social Systems with Matlab 38
Cellular-automaton implementation
- Parallel update (use a copy of the grid):
... ...
data from last iteration: working copy:
2015-10-26
Modelling and Simulating Social Systems with Matlab 39 39
Cellular-automaton implementation
- Random update:
...
2015-10-26
Modelling and Simulating Social Systems with Matlab 40 40
Cellular-automaton implementation
- Attention:
- Simulation results can be very sensitive to the type of
update used
- Random update is usually preferable for social
simulations (but also not always the best solution)
- Just be aware of this potential complication and
check your results for dependency on the updating scheme!
2015-10-26
Modelling and Simulating Social Systems with Matlab 41 41
Boundary Conditions
- The boundary conditions can be:
- Periodic: The grid is wrapped, so that what exits on
- ne side reappears at the other side of the grid.
- Fixed: Agents are not influenced by what happens at
the other side of a border.
2015-10-26
Modelling and Simulating Social Systems with Matlab 42 42
Boundary Conditions
- Periodic boundaries are usually preferable:
Fixed boundaries Periodic boundaries
2015-10-26
Modelling and Simulating Social Systems with Matlab 43 43
MATLAB Implementation of the Kermack- McKendrick Model
2015-10-26
Modelling and Simulating Social Systems with Matlab 44 44
MATLAB implementation Set parameter values
2015-10-26
Modelling and Simulating Social Systems with Matlab 45 45
MATLAB implementation Define grid, x
2015-10-26
Modelling and Simulating Social Systems with Matlab 46 46
MATLAB implementation Define neighborhood
2015-10-26
Modelling and Simulating Social Systems with Matlab 47 47
MATLAB implementation Main loop. Iterate the time variable, t
2015-10-26
Modelling and Simulating Social Systems with Matlab 48 48
MATLAB implementation Iterate over all cells, i=1..N, j=1..N
2015-10-26
Modelling and Simulating Social Systems with Matlab 49 49
MATLAB implementation For each cell i, j: Iterate
- ver the neighbors
2015-10-26
Modelling and Simulating Social Systems with Matlab 50 50
MATLAB implementation The model, i.e. updating rule goes here.
2015-10-26
Modelling and Simulating Social Systems with Matlab 51 51
Aborting Execution
- When running large computations or animations, the
execution can be aborted by pressing Ctrl+C in the main window:
2015-10-26
Modelling and Simulating Social Systems with Matlab 52
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.
2015-10-26
Modelling and Simulating Social Systems with Matlab 53
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.
2015-10-26
Modelling and Simulating Social Systems with Matlab 54
Exercise 1b
- Generate a video of an interesting case in your
traffic simulation.
- We have uploaded an example file:
simulate_cars_video.m
2015-10-26
Modelling and Simulating Social Systems with Matlab 55
Exercise 2
- Download the file disease.m which is an
implementation of the Kermack-McKendrick model as a cellular automaton
- Plot the relative fractions
- f the states S, I, R, as
a function of time, and see if the curves look the same as for the implementation last class
2015-10-26
Modelling and Simulating Social Systems with Matlab 56
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 back to Susceptible
- What changes?