Party Poker

This tutorial is primarily targeted at people with a combined interest in math, coding, and poker who are interested in learning about AI through the lens of poker (and games in general). A background in poker is not assumed – I try to explain all of the terms and primarily use toy poker games with pretty basic rules. Coding is done primarily in Python except for some older code that was done in Java and MATLAB. Math is mostly at around the algebra level.

This tutorial is split into 6 sections:

  1. Background: Basic poker background and history of solving poker games
  2. Game Theory: Foundations of game theory including trees in games
  3. Solving Poker: What it means to solve poker and examples beginning with toy games
  4. Counterfactual Regret Minimization (CFR): The core algorithm behind most recent poker solving and how it has advanced from its beginnings in 2007
  5. Top Poker Agents: Recent research and results with top poker agents including a number of Man vs. Machine competitions

I hope to extend the tutorial with videos and more interactive content in the future. Some other ideas that I’ve had:

  1. Create an online course and use this website as a “textbook”, while the course would be a series of ~10 concise videos covering the most important topics and with coding exercises
  2. Do deep research into how current top agents play in heads up and multiplayer games and see what humans can learn from these strategies. A book called Game Changer analyzes the background of AlphaZero and interesting moves it makes in chess games.
  3. Writing an article about the history and evolution of poker AI solving from the 1990s to now
  4. There may be some poker players (i.e. good players who are into math, but probably not so into it that they’d want to read through most of this tutorial) who want to better understand how poker solving has evolved and how current solving algorithms and software work. I plan to create a very concise text (and/or video) for this audience category that is probably more interested in a summary and not all of the details.
  5. Clean up code on the site so the format and commenting are improved