A demo of some new counterfactual regret minimization algorithms I've been working on.

CFR+ matrix game solver

Memory-efficient CFU Implementation

Memory-efficient Average Strategy Storage in PureCFR and CFU

Cepheus source code


PureCFR was used by the University of Alberta Computer Poker Research Group in the 2013 Annual Computer Poker Competition (results: 1, 2) as well as some other bots in 2014.

Richard Gibson's poker PureCFR implementation

Marc Lanctot's bluff PureCFR implementation

Richard Gibson's thesis which explains the math of PureCFR (among other things)

Neil Burch's thesis has a detailed description and analysis of CFR+

DeepMind's OpenSpiel has an implementation of CFR+ and many more algorithms

DeepMind's Player of Games does stuff based on CFR+


Play against various hold'em bots created using CFR+:

  • 652 (Cepheus's little brother, 5.4 × 1011 infosets, 1.4 × 1012 infoset-actions)
  • 27 big blinds, pot size bets only
  • 50 big blinds, pot size bets only, no limping
  • 100 big blinds, pot size bets only, no limping
  • 200 big blinds, pot size bets only, no limping


You can also play against Cepheus himself on ualberta's site.


Solving Heads-up Limit Texas Hold'em
Oskari Tammelin, Neil Burch, Michael Johanson, and Michael Bowling.
In Proceedings of the 24th International Joint Conference on Artificial Intelligence (IJCAI), 2015.
[Details] [BibTeX] [Paper]

Heads-up Limit Hold'em Poker Is Solved
Michael Bowling, Neil Burch, Michael Johanson, and Oskari Tammelin.
In Science, 347(6218), 145--149, January 2015.
[Details] [BibTeX] [Paper] [Supplemental] [Code] [Extended version]

Solving Large Imperfect Information Games Using CFR+
Oskari Tammelin.
arXiv, July 2014.