Modeling and Simulating Social Systems with MATLAB Lecture 5 - - PowerPoint PPT Presentation

modeling and simulating social systems with matlab
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

2015-10-26 ETH Zürich

Modeling and Simulating Social Systems with MATLAB

Lecture 5 – Cellular Automata

Olivia Woolley, Stefano Balietti, Lloyd Sanders Computational Social Science (D GESS)

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

2015-10-26

Modelling and Simulating Social Systems with Matlab 9 9

Cellular Automaton (plural: Automata)

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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
slide-16
SLIDE 16

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

slide-17
SLIDE 17

2015-10-26

Modelling and Simulating Social Systems with Matlab 17

Complex Patterns

17

  • “Gosper Glider Gun”:
slide-18
SLIDE 18

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

slide-19
SLIDE 19

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
slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

2015-10-26

Modelling and Simulating Social Systems with Matlab 22 22

1-dimensional Cellular Automata

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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)

slide-26
SLIDE 26

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)

slide-27
SLIDE 27

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

slide-28
SLIDE 28

2015-10-26

Modelling and Simulating Social Systems with Matlab 28

Kermack-McKendrick model

slide-29
SLIDE 29

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

slide-30
SLIDE 30

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         

slide-31
SLIDE 31

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         

slide-32
SLIDE 32

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

slide-33
SLIDE 33

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

slide-34
SLIDE 34

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
slide-35
SLIDE 35

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 γ.

slide-36
SLIDE 36

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 …

slide-37
SLIDE 37

2015-10-26

Modelling and Simulating Social Systems with Matlab 37 37

Cellular-automaton implementation

  • Sequential update:

...

slide-38
SLIDE 38

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:

slide-39
SLIDE 39

2015-10-26

Modelling and Simulating Social Systems with Matlab 39 39

Cellular-automaton implementation

  • Random update:

...

slide-40
SLIDE 40

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!

slide-41
SLIDE 41

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.

slide-42
SLIDE 42

2015-10-26

Modelling and Simulating Social Systems with Matlab 42 42

Boundary Conditions

  • Periodic boundaries are usually preferable:

Fixed boundaries Periodic boundaries

slide-43
SLIDE 43

2015-10-26

Modelling and Simulating Social Systems with Matlab 43 43

MATLAB Implementation of the Kermack- McKendrick Model

slide-44
SLIDE 44

2015-10-26

Modelling and Simulating Social Systems with Matlab 44 44

MATLAB implementation Set parameter values

slide-45
SLIDE 45

2015-10-26

Modelling and Simulating Social Systems with Matlab 45 45

MATLAB implementation Define grid, x

slide-46
SLIDE 46

2015-10-26

Modelling and Simulating Social Systems with Matlab 46 46

MATLAB implementation Define neighborhood

slide-47
SLIDE 47

2015-10-26

Modelling and Simulating Social Systems with Matlab 47 47

MATLAB implementation Main loop. Iterate the time variable, t

slide-48
SLIDE 48

2015-10-26

Modelling and Simulating Social Systems with Matlab 48 48

MATLAB implementation Iterate over all cells, i=1..N, j=1..N

slide-49
SLIDE 49

2015-10-26

Modelling and Simulating Social Systems with Matlab 49 49

MATLAB implementation For each cell i, j: Iterate

  • ver the neighbors
slide-50
SLIDE 50

2015-10-26

Modelling and Simulating Social Systems with Matlab 50 50

MATLAB implementation The model, i.e. updating rule goes here.

slide-51
SLIDE 51

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:

slide-52
SLIDE 52

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.

slide-53
SLIDE 53

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.

slide-54
SLIDE 54

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

slide-55
SLIDE 55

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

slide-56
SLIDE 56

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?