Computational Game Theory in Julia
Instructor: Eric Pacuit (website)
ESSLLI 2023 • University of Ljubljana, Solvenia
July 31 - August 4, 2023
5:00pm - 6:30pm • P1
There are two objectives for this course. The first objective is to introduce the Julia programming language, with a special focus on developing programs to study game theory using the Agents.jl package https://juliadynamics.github.io/Agents.jl and the GameTheory.jl package (https://quantecon.github.io/GameTheory.jl. The second objective is to provide an introduction to game theory emphasizing issues of particular relevance to students at ESSLLI, such as signaling games and repeated games on networks. The course will include a number of tutorials that will give students hands-on experience writing Julia programs. No previous experience with the Julia programming language will be assumed.
The main topics in game theory that will be discussed include:
- Normal form games
- Equilibrium notions: Nash equilibrium, iterates strict/weak dominance
- Example games: Prisoner's dilemma, Battle of the sexes, Stag hunt
- Learning in games: (stochastic) fictitious play, Markov fictitious play, reinforcement learning
- Evolutionary game theory: evolutionary stable strategies, replicator dynamics
- Repeated games: Iterated Prisoner's dilemma, spatial games, games on networks
- Extensive form games: Backward induction, forward induction
- Lewis signaling games
You may want to download the latest version of Julia to get some hands-on experience with Julia (or you can use Colab): https://julialang.org/downloads/
The notebooks for the lecture today are:
Introduction to Julia (for Python programmers...if you don't know Python just ignore all the discussion of Python!) https://colab.research.google.com/drive/1SqMh2_eFZYIJeB3BPLhlORbut8b5alzA?usp=sharing
Symmetric games in Julia https://colab.research.google.com/drive/153op1TRJCWGjv0m68GtONSKBPlzHY9SL?usp=sharing
An introduction to the GameTheory.jl package https://colab.research.google.com/drive/1-aVcgHE3hjh67Q4tTO7lD8jqvoVFq1Ri?usp=sharing
Note the above link to the slides is to a Jupyter notebook that we discussed in the lecture. You can download it and run it in your own Julia installation.