The Agent-Based Evolutionary Game Dynamics book by Izquierdo, Izquierdo, Sandholm (2024) is now in
@ChapterPal's collection.
This textbook is designed for students, researchers, and practitioners interested in modeling dynamic social interactions within finite populations.
It assumes no prior programming background, providing complete foundational instruction in the NetLogo simulation environment, while offering sufficient analytical depth for experienced modelers.
The book focuses on how individual decision-making rules, repeated strategic encounters, and population structures drive collective outcomes over time, establishing a clear connection between microscopic agent behaviors and macroscopic population dynamics.
Read the book with an AI tutor:
chapterpal.com/ebook/8b02ec7…
All books on ChapterPal are free to read with a free account.
Table of contents:
Dedication
Preface
- 1. Purpose
* Model implementation
* Model analysis
- 2. Structure of the book and potential courses
- 3. Why NetLogo?
- 4. One book, many formats
- 5. What about the programming and the math?
- 6. History of the book and acknowledgments
Part I. Introduction
I-1. Overview
- 1. What is this book about?
- 2. How is this book organized?
* 2.1. Part I. Introduction
* 2.2. Part II. Our first agent-based evolutionary model
* 2.3. Part III. Spatial interactions on a grid
* 2.4. Part IV. Games on networks
* 2.5. Part V. Agent-based models vs ODE (Ordinary Differential Equation) models
* 2.6. Appendices
I-2. Introduction to evolutionary game theory
- 1. What is game theory?
- 2. Traditional game theory
- 3. Evolutionary game theory
* 3.1. The beginnings
* 3.2. An interpretation of evolutionary game theory where strategies are *explicitly selected* by individuals
* 3.3. Take-home message
* 3.4. Relation with other branches
- 4. How can I learn game theory?
I-3. Introduction to agent-based modeling
- 1. What is agent-based modeling?
- 2. What is an agent?
- 3. A paradigmatic example
- 4. Agent-based modeling and evolutionary game theory
- 5. How can I learn about agent-based modeling?
I-4. Introduction to NetLogo
- 1. What is NetLogo?
* Easy to learn
* Powerful
* Excellent documentation
* Possibility to interact with the model at runtime
* Automatic exploration of parameter space
* Open-source and free
* Multiplatform and online execution of models
* Great support and active user community
* Abundance of quality resources
* Extensions to fulfill specialised needs
* Useful to conduct experiments with real people and for participatory modeling
* Happy to link with other software
- 2. How to learn NetLogo
I-5. The fundamentals of NetLogo
- 1. The three tabs
- 2. Types of agents
- 3. Instructions
- 4. Variables
* Setting and reading the value of variables
- 5. Ask
- 6. Lists
* Constant lists
* Building lists on the fly
* Reading and changing list items
* Iterating over lists
- 7. Agentsets
- 8. Synchronization
- 9. Consistency within procedures
- 10. Breeds
- 11. Ticks and Plotting
- 12. Skeleton of many NetLogo models
- 13. The code for Schelling-Sakoda model
Part II. Our first agent-based evolutionary model
II-1. Our very first model
- 1. Goal
- 2. Motivation. Cooperation in social dilemmas
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Initial skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go procedure
* 5.5 Other procedures
* 5.6. Code in the plots
* 5.7. Final fix
* 5.8. Complete code in the Code tab
- 6. Sample runs
- 7. Exercises
II-2. Extension to any number of strategies
- 1. Goal
- 2. Motivation. Rock, paper, scissors
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go procedure
* 5.5. Other procedures
* 5.6. Complete code in the Code tab
* 5.7. Code inside the plots
- 6. Sample run
- 7. Exercises
II-3. Noise and initial conditions
- 1. Goal
- 2. Motivation. Noise in rock, paper, scissors
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go and other main procedures
* 5.5. Complete code in the Code tab
- 6. Sample run
- 7. Exercises
II-4. Interactivity and efficiency
- 1. Goal
- 2. Motivation. The impact of population size
- 3. Description of the model
- 4. Interactivity
- 5. Efficiency
* 5.1. Measuring execution speed of different parts of the code
* 5.2. Example of computations that we conduct but do not use
* 5.3. Example of computations that we conduct several times when once would do
* 5.4. Other tips to improve the efficiency of NetLogo code
* 5.5. Take-home message
- 6. Complete code in the Code tab
- 7. Sample run
- 8. Exercises
II-5. Analysis of these models
- 1. Two complementary approaches
- 2. Computer simulation approach
- 3. Mathematical analysis approach. Markov chains
* 3.1. Markov analysis of 2-strategy evolutionary processes where agents switch strategies sequentially
* 3.2. Approximation results
- 4. Exercises
Part III. Spatial interactions on a grid
III-1. Spatial chaos in the Prisoner's Dilemma
- 1. Goal
- 2. Motivation. Cooperation in spatial settings
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go procedure
* 5.5 Other procedures
* 5.6. Complete code in the Code tab
* 5.7. Code in the plots
- 6. Sample runs
- 7. Exercises
III-2. Robustness and fragility
- 1. Goal
- 2. Motivation. Robustness of cooperation in spatial settings
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Extension I. Adding noise to the decision rule
* 5.3. Extension II. Playing the game with yourself or not
* 5.4. Extension III. Asynchronous strategy updating
* 5.5. Complete code in the Code tab
- 6. Sample runs
* What happens if we add a bit of noise?
* What happens if agents do not play the game with themselves?
* What happens if strategy updating is asynchronous, rather than synchronous?
* What happens if we use DD-payoff = 0.1?
* Discussion
- 7. Exercises
III-3. Extension to any number of strategies
- 1. Goal
- 2. Motivation. Spatial Hawk-Dove-Retaliator
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go procedure
* 5.5. Other procedures
* 5.6. Complete code in the Code tab
* 5.7. Code inside the plots
- 6. Sample runs
- 7. Exercises
III-4. Other types of neighborhoods and other decision rules
- 1. Goal
- 2. Motivation. The impact of decision rules
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Extension I. Implementation of different neighborhoods
* 5.3. Extension II. Implementation of different decision rules
* 5.4. Complete code in the Code tab
- 6. Sample runs
* 6.1. Decision rules
* 6.2. Neighborhoods
* 6.3. Discussion
- 7. Exercises
III-5. Analysis of these models
- 1. A much greater state space
- 2. Cellular automata
- 3. Models more amenable to mathematical analysis. The pair approximation
* 3.1. Introduction to the pair approximation
* 3.2. Derivation of a pair approximation for regular undirected networks
* 3.3. Solving the pair approximation. Examples
* 3.4. Discussion
- 4. Exercises
Part IV. Games on networks
IV-1. The nxn game on a random network
- 1. Goal
- 2. Motivation. A single-optimum coordination game
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Extensions, global variables and individually-owned variables
* 5.3. Setup procedures
* 5.4. Go and other main procedures
* 5.5 Other procedures
* 5.6. Complete code in the Code tab
- 6. Sample runs
- 7. Exercises
IV-2. Different types of networks
- 1. Goal
- 2. Motivation. Assessing the significance of network structure
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Procedures to create networks
* 5.3. Procedure to build-network
* 5.4. Procedure to setup-players
* 5.5. Other procedures
* 5.6. Final fixes
* 5.7. Complete code in the Code tab
- 6. Sample runs
- 7. Exercises
IV-3. Implementing network metrics
- 1. Goal
- 2. Motivation. Reassessing the significance of network structure
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Global variables and individually-owned variables
* 5.3. Procedure to compute-network-metrics
* 5.4. Procedures to compute network metrics
* 5.5. Other procedures
* 5.6. Complete code in the Code tab
- 6. Sample runs
- 7. Exercises
IV-4. Other ways of computing payoffs and other decision rules
- 1. Goal
- 2. Motivation. Cooperation on scale-free networks
- 3. Description of the model
- 4. Interface design
- 5. Code
* 5.1. Skeleton of the code
* 5.2. Extension I. Different ways of computing payoffs
* 5.3. Extension II. Different decision rules
* 5.4. Complete code in the Code tab
- 6. Sample runs
* 6.1. Cooperation on preferential-attachment networks
* 6.2. Robustness of cooperation on scale-free preferential-attachment networks
- 7. Exercises
IV-5. Analysis of these models
- 1. Introduction
- 2. Avoid errors
* 2.1. Introduction
* 2.2. Floating-point errors
- 3. Use informative metrics
* 3.1. Metrics
* 3.2. Stability of metrics
- 4. Report meaningful statistics
- 5. Derive sound conclusions
- 6. Final thoughts
- 7. Exercises
Part V. Agent-based models vs ODE models
V-1. Introduction
V-2. A rather general model for games played in well-mixed populations
- 1. Goal
- 2. Motivation
- 3. Description of the model
- 4. Extension I. Implementation of different ways of computing payoffs
* 4.1. Skeleton of the code
* 4.2. Interface design
* 4.3. Code
* 4.4. Complete code of Extension I in the Code tab
- 5. Extension II. Implementation of different decision rules
* 5.1. Skeleton of the code
* 5.2. Interface design
* 5.3. Code
* 5.4. Complete code of Extension II in the Code tab
- 6. Exercises
V-3. Mean Dynamics
- 1. Introduction
- 2. The mean dynamic
- 3. Derivation of the mean dynamic for different stochastic processes
* 3.1. Imitate if better
* 3.2. Imitative pairwise-difference
* 3.3. Imitative linear attraction
* 3.4. Imitative linear dissatisfaction
* 3.5. Direct best
* 3.6. Direct pairwise-difference
* 3.7. Direct positive proportional
- 4. Running an agent-based model and solving its mean dynamic at runtime
* 4.1. The Euler method to numerically solve ODEs
* 4.2. Solving an ODE numerically within NetLogo
* 4.3. The influence of population size
- 5. Representative simulations together with their mean dynamics
- 6. Details matter
- 7. Exercises
Appendices
A-1. Different implementations with the same output
- 1. Introduction
- 2. Three possible stories behind the same behavior
* 2.1. Vose’s alias method
* 2.2. Roulette wheel
* 2.3. Repeated sampling
- 3. Which algorithm should we use?
A-2. Legend for code skeletons
A-3. Models implemented in this book
- In Part I. Introduction
* I-3. Introduction to agent-based modeling
* I-5. The fundamentals of NetLogo
- In Part II. Our first agent-based evolutionary model
* II-1. Our very first model
* II-2. Extension to any number of strategies
* II-3. Noise and initial conditions
* II-4. Interactivity and efficiency
- In Part III. Spatial interactions on a grid
* III-1. Spatial chaos in the Prisoner’s Dilemma
* III-2. Robustness and fragility
* III-3. Extension to any number of strategies
* III-4. Other types of neighborhoods and other decision rules
- In Part IV. Games on networks
* IV-1. The nxn game on a random network
* IV-2. Different types of network
* IV-3. Implementing network metrics
* IV-4. Other ways of computing payoffs and other decision rules
- In Part V. Agent-based models vs ODE models
* V-2. A rather general model for games played in well-mixed populations
* V-3. Mean Dynamics
References