CFR was introduced by Zinkevich, Johanson, Bowling, and Piccione in 2008. It works by repeatedly playing the game against itself, tracking how much "regret" each action accumulates at every decision point, and gradually shifting toward actions that would have been better in hindsight. Over millions of iterations, the strategy converges toward a Nash equilibrium where no single-decision deviation can improve expected value.
Why CFR matters for poker AI:
Poker has incomplete information (you cannot see opponent cards), which breaks most traditional game-theoretic solvers. Minimax works for chess because both players see the full board. It does not work for poker because your opponent's hand is a hidden variable. CFR handles the hidden information by iterating over "information sets" (groups of game states that look identical to you) and minimizing regret across each one.
Variants:
- Vanilla CFR. The original algorithm. Works on small games but is too slow for full No-Limit Hold em.
- CFR+. An improved version that converges faster in practice. Used by Libratus.
- Monte Carlo CFR (MCCFR). Samples actions instead of traversing the full game tree. Dramatically faster for large games.
- Deep CFR. Uses neural networks to approximate the regret function. Scales to games that were previously intractable.
Real-world results:
- Libratus (Carnegie Mellon, 2017) beat four top heads-up No-Limit Hold em professionals in a 120,000-hand match at Rivers Casino in Pittsburgh. It used CFR+ with real-time subgame solving.
- Pluribus (Meta, 2019) solved 6-player No-Limit Hold em and beat elite professionals at a fraction of the compute cost. Published in Science.
CFR for bot developers:
You probably do not want to implement CFR from scratch. It is mathematically delicate and computationally expensive. If you want to experiment with CFR, use OpenSpiel, which ships with production-quality CFR implementations for multiple game variants. Train your agent locally, then write an adapter to connect it to Open Poker for live validation against real opponents.
For most bots on Open Poker, heuristic strategies with opponent modeling will outperform naive CFR implementations. CFR is a long-term research project, not a weekend hack.