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

Day 1: Introduction to game theory using Julia

July 31, 2023

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

Day 2: Agent-based simulations in Julia, I

August 1, 2023

Day 3: Agent-based simulations in Julia

August 2, 2023

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.

Day 4: Deliberation and Learning in Games I

August 3, 2023

Day 5: Deliberation and Learning in Games II and Repeated Games

August 4, 2023