+ All Categories
Home > Documents > Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems...

Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems...

Date post: 24-Jun-2020
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
40
2014-03-17 ETH Zürich Modeling and Simulating Social Systems with MATLAB Lecture 5 – Game Theory / Agent-Based Modeling Chair of Sociology, in particular of Modeling and Simulation Olivia Woolley, Tobias Kuhn, Dario Biasini, Dirk Helbing
Transcript
Page 1: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17ETH Zürich

Modeling and Simulating Social Systems with MATLAB

Lecture 5 – Game Theory / Agent-Based Modeling

Chair of Sociology, in particular of

Modeling and Simulation

Olivia Woolley, Tobias Kuhn, Dario Biasini, Dirk Helbing

Page 2: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 22

Schedule of the course17.02.

24.02.

03.03.

10.03.

17.03.

24.03.

31.03.

07.04.

14.04.

05.05.

12.05.

19.05.

26.05.

Introduction to MATLAB

Introduction to social-science modeling and simulations

Working on projects (seminar thesis)

Handing in seminar thesis and giving a presentation

canceled

Research Plan is due TODAY

Page 3: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3

Object-oriented Programming in MATLAB MATLAB has support for object-oriented programming

However, we do not encourage to use this feature, as it is not an efficient way of programming in MATLAB

Use of vectors and matrices instead of objects

If you still want to have a look at how object-oriented programming works

in MATLAB:

http://www.mathworks.com/company/newsletters/articles/introduction-to-ob

ject-oriented-programming-in-matlab.html

Page 4: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 4

Repetition: Cellular Automata Cellular automata are abstract representations of

dynamics in discrete space and time

Reduction of complexity to simple microscopic interaction rules based on neighborhoods

These simple properties are also the limitations: of cellular automata: system dynamics cannot always be easily reduced to microscopic interaction rules

Can be test beds for complex systems: for example comparison of results of cellular automata and dynamical systems

4

Page 5: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 5

Motivation for microscopic modeling Some real world processes can be reduced to simple

local interaction rules (e.g. swarm Intelligence)

Microscopic modeling requires that dynamic components of a system are ‘atomizable’ in the given context (e.g. pedestrians behave like particles)

Represents a reductionist (or mechanistic) point of view in contrast to a systemic (or holistic) approach

In line with methods that have fueled the success of natural science research in the past 200 years

Game theory provides a powerful framework to formalize and reduce complex (strategic) interactions

5

Page 6: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 6

Swarm Intelligence (1989)

6

Ant colonies, bird flocking, animal herding, bacterial

growth, fish schooling…

Page 7: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 7

Swarm Intelligence

7

Key Concepts:

decentralized control

interaction and learning

self-organization

Page 8: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 8

Boids (Reynolds, 1986)

8

A boid is a simulated individual particle or object

moving about in a virtual space.

Page 9: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 9

More information: http://www.red3d.com/cwr/boids/

9

Separation: steer to avoid crowding local flockmates

Alignment: steer towards the average heading of local flockmates

Cohesion: steer to move toward the average position of local flockmates

Page 10: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 10

Game Theory Mathematical framework for strategic interactions of

individuals

Formalizes the notion of finding a ‘best strategy’ (Nash equilibrium) when facing a well-defined decision situation

Definition and study of ‘games’

Underlying assumption is that individuals optimize their ‘payoffs’ (or more precisely: ‘utility’) when faced with strategic decisions

Huge differences between game theoretic results for one-shot games vs. repeated interactions

10

Page 11: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 11

Game Theory: Assumptions Rationality: alignment between preferences, belief, and

actions

Players want to maximize their payoff

A player's belief can be summarized as “I am rational, you are rational. I know that you are rational, and you know that I know that you rational. Everybody knows that I know that you are rational, and you know…”

Players act accordingly: best response

11

Page 12: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 12

Nash Equilibrium

12

Page 13: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 13

Nash Equilibrium Is the strategy that players always play with

no regrets: best response

No player has an incentive to deviate from a Nash equilibrium

Is not always unique

Some questions

Is Nash an optimal strategy ?

What is the difference between a Pareto-efficient equilibrium and a Nash Equilibrium?

Why do players play Nash? Do they?

13

Page 14: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 14

Game Theory - Human Cooperation

Prisoner’s dilemma

14

15,15 20,0

0,20 19,19

Page 15: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 15

The Evolution of Cooperation (Axelrod, 1984)

Tit for tat being nice (cooperate first) pay back immediately easy to be recognized

Shadow of the future (discount parameter) if the probability of meeting again is large enough, it is

better to be nice…

15

Page 16: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 16

Game Theory - Coordination Games

16

Game Examples:• Stag-hunt / assurance game• Chicken / hawk-dove game

1,1 0,0

0,0 1,1

Page 17: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 17

Evolutionary Game Theory Classical game theory has its limitations too: assumption

of hyper-rational players; strategy selection problem; static theory

Evolutionary game theory introduces evolutionary dynamics for strategy selection, i.e. the evolutionary most stable strategy dominates the system dynamics

Very suited for agent-based modeling of social phenomena as it allows agents to learn and adapt

17

Page 18: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 18

Evolutionary Learning

The main assumption underlying evolutionary

thinking is that the entities which are more

successful at a particular time will have the best

chance of being present in the future

Selection

Replication

Mutation

18

Page 19: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 19

Evolutionary Learning

Selection is a discriminating force that favors

some specific entities rather than others

Replication ensures that the entities (or their

properties) are preserved, replicated or inherited

from one generation to another

Selection and replication work closely together,

and in general tend to reduce diversity

The generation of new diversity is the job of the

mutation mechanism

19

Page 20: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 20

How agents can learn Imitation: Agents copy the behavior of others, especially

behavior that is popular or appears to yield high payoffs

Reinforcement: Agents tend to adopt actions that yielded a high payoff in the past, and to avoid actions that yielded a low payoff

Best reply: Agents adopt actions that optimize their expected payoff given what they expect others to do (choosing best replies to the empirical frequency distribution of their opponents’ previous actions: “Fictitious Play”)

20

Page 21: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 21

From Factors to Actors (Macy, 2002)

Simple and predictable local interactions can

generate familiar but enigmatic global patterns,

such as the diffusion of information, emergence

of norms, coordination of conventions, or

participation in collective action

Simulation of individual actors instead of

modeling based on aggregated factors (e.g.

dynamical systems)

21

Page 22: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 22

From Factors to Actors (Macy, 2002)

Agents are autonomous

Agents are interdependent

Agents follow simple rules

Agents are adaptive and backward-looking

22

Page 23: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2323

Programming Agent-Based Simulations

Time line

Characterized by a state

(location, dead/alive, level of excitation)

Time t Time t + dt

State update

According to set of behavioral rules

New state

T1 T2dt

Page 24: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2424

Programming Agent-Based Simulations

Time t Time t + dt

State update

According to set of behavioral rules,

including neighborhood

New state

Time line T1 T2

Characterized by a state

(location, dead/alive, level of excitation)

dt

Page 25: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2525

Programming a simulator

Programming an agent-based simulator often

goes in five steps Initialization

- Initial state; parameters; environment

Time loop- Processing each time steps

Agents loop- Processing each agents

Update- Updating agent i at time t

Save data- For further analysis

Initialization

Save data

Agents loop

end

Update state

Page 26: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2626

Define and initialize all variables in a script file

that serves as the main file of your program

Execute the actual simulation as function with

the pre-defined variables as inputs

Automated analysis, visualization, etc. of the

simulation output can then be implemented in

the main file using the outputs of the function

that runs the actual program

Efficient Structure

Programming a simulator

Page 27: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2727

Programming a simulator

Step 1: Defining the initial state & parameters

% Initial state

t0 = 0; % begining of the time linedt = 1; % time stepT = 100; % number of time steps

% Initial state of the agents

State1 = [0 0 0 0];State2 = [1 1 1 1];

% etc…

Page 28: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2828

Programming a simulator

Step 1: Defining the initial state & parameters

% Initial state

t0 = 0; % begining of the time linedt = 1; % time stepT = 100; % number of time steps

% Initial state of the agents

State1 = zeros(1,50);State2 = rand(1,50);

Page 29: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 2929

Programming a simulator

Step 2: Covering each time step

% Time loop

For t=t0:dt:T

% What happens at each time step? % - Update environment % - Update agents

end

Page 30: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3030

Programming a simulator

Step 3: Covering each agent

% Agent loop

For i=1:length(States)

% What happens for each agent?

end

Page 31: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3131

Programming a simulator

Step 4: Updating agent i at time t

% Update%% Example: Each agent has 60% chance to% switch to state 1

randomValue = rand();

if (randomValue < 0.6) State(i)=1;else State(i)=0;end

Page 32: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3232

Programming a simulator

Step 4: Updating agent i at time t

% Update%% Example: Each agent has chance 'prob' to% switch to state 1

randomValue = rand();

if (randomValue < prob) State(i)=1;else State(i)=0;end

define in first part

Page 33: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3333

Programming a simulator

Step 4: Updating agent i at time t

% Initial state

t0 = 0; % begining of the time linedt = 1; % time stepT = 100; % number of time stepsproba = 0.6; % probability to switch state

Page 34: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3434

Programming a simulator

Step 5: Final processing

% Outputs and final processing

propAlive = sum(states)/length(states);

% propAlive is the main output of the% simulation

Page 35: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 35

>> p=simulation()

p =

0.54

>> p=simulation()

p =

0.72

Programming a simulator

Running simulation

Page 36: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3636

Programming a simulator

Alternatively:

% Running N simulations

N = 1000 % number of simulations

for n=1:N p(n)=simulation();end

Page 37: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3737

Programming a simulator

Alternatively:

>> hist(p)

Page 38: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3838

Exercise 1

There is some additional material on the iterated

prisoner’s dilemma available in the directory

'prisoner' of

https://github.com/msssm/lecture_files

Experiment with the code and try to find out what

it does and how to interpret the results

Page 39: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 3939

Exercise 2

Start thinking about how to adapt the general

simulation engine shown today for your project

Problems: Workspace organization (files, functions, data) Parameters initialization Number of agents Organization of loops Which data to save, how frequently, in which format What kind of interactions are relevant …

Page 40: Modeling and Simulating Social Systems with …2014-03-17 Modeling and Simulating Social Systems with MATLAB 40 References Fudenberg & Tirole, Game Theory, MIT Press (2000) Meyerson,

2014-03-17 Modeling and Simulating Social Systems with MATLAB 4040

References

Fudenberg & Tirole, Game Theory, MIT Press (2000)

Meyerson, Game Theory, Harvard University Press (1997)

Herbert Gintis, Game Theory Evolving, Princeton Univ. Press, 2nd

Edition (2009)

Uhrmacher, Weyns (Editors), Multi-Agent Systems – Simulation

and Applications, CRC Press (2009)

A step by step guide to compute the Nash equilibrium:

http://uwacadweb.uwyo.edu/Shogren/jaysho/NashNotes.pdf

https://github.com/Sandermatt/ETHAxelrodNoise


Recommended