Drawmaha Solver Open the solver

Benchmarks

Four games with known answers, and how far each solver is from them.

Each solver is graded by exploitability: the chips per hand a best response wins against its average strategy. Zero is a Nash equilibrium. Each game was solved and graded before the next was started.

GameMethodGraded againstExploitability
Rock-paper-scissorsregret matchingthe uniform Nash0.0009chips/round exploitable after 100k rounds
Kuhn pokervanilla CFRthe closed-form equilibrium; all 64 pure strategies0.00063chips/hand; game value −0.05555 against −1/18
Leduc pokervanilla CFRan OpenSpiel solve, frozen as a fixture0.011chips/hand; game value −0.0874 against −0.0856
Mini-drawmaha, 6.2M infosetslockstep MCCFR, four regret rules racedthe exact best-response walk0.061chips/hand at 20M hands per seat
Mini-drawmahaDeep CFRthe same exact walk and the tabular answer0.086chips/hand at 2M hands per seat, where LCFR is at 0.630
Full DrawmahaDeep CFR at scalehead-to-head checkpoint matches and a trained exploiter—not started; the range interface is built ahead of it

Benchmark 1 · Rock-paper-scissors

Regret matching finds the uniform Nash of rock-paper-scissors

Two regret matchers play each other. Each keeps a ledger of how much better every throw would have done, and mixes in proportion to the positive part. The current strategy wanders; the average converges.

After 100k rounds the average throws each a third of the time
Self-play average strategy, share of throws; the dashed line is the uniform Nash
Rock0.334Paper0.333Scissors0.333
Exploitable for 0.0009 chips a round. Against a 50%-rock opponent the same ledger settles on pure paper and earns +0.24 a round, where the best response earns +0.25.
0.0009chips a round exploitable, after 100k rounds
+0.24a round against 50% rock, of the +0.25 a best response earns

Run it live →

Benchmark 2 · Kuhn poker

Vanilla CFR on Kuhn poker reaches 0.00063 of the closed-form equilibrium

Three cards, one bet, twelve information sets. The equilibrium is a one-parameter family known in closed form, and the game is small enough that all 64 pure strategies are enumerated for the grade. The game value is −1/18 for the first player.

The average strategy falls steadily; the current one never settles
Exploitability by iteration, vanilla CFR, log scales
0.0010.010.10.51101001k10k100kiterationsexploitability, chips per handCurrent strategy 0.246Average strategy 0.00063
The current iterate cycles around 0.2 and is worse at 1,000 iterations than at 10. Only the average converges, which is why every strategy on this site is an average.
IterationsAverageCurrentGame value
100.091140.24191−0.03597
1000.023300.25000−0.05472
1,0000.006500.27885−0.05518
10,0000.001490.20359−0.05553
100,0000.000630.24649−0.05555

Exploitability in chips per hand. At 100 iterations the game value is within 0.0009 of −1/18 and looks solved, while the strategy is still 15 times more exploitable than at 10,000.

Run it live →

Benchmark 3 · Leduc poker

Vanilla CFR on Leduc poker grades 0.011 against an OpenSpiel solve

Six cards, two rounds, one community card, 288 information sets. There is no closed form, so the reference is OpenSpiel's solve of the same game, frozen in the repository as a fixture.

After 2,000 iterations the average is 86 times less exploitable than the current strategy
Exploitability in chips per hand, vanilla CFR, the committed solve
Current strategy0.972Average strategy0.0113
Both strategies come from the same run; only the average is the answer.
MeasureThis solverOpenSpiel
Exploitability, chips per hand0.0113—
Game value, seat 0-0.0874-0.0856
Information sets288288

The best response sums over the hidden hands a spot could be, then takes its maximum: a maximum inside the sum would be an opponent who sees face-down cards.

Run it live →

Benchmark 4 · Mini-drawmaha

Linear CFR on mini-drawmaha grades 0.061 at 20 million hands per seat

6,220,050 information sets, sampled by lockstep MCCFR, four regret rules raced on one seed. The grader is an exact best-response walk; no outside engine plays this game.

Linear CFR is four times less exploitable than CFR+ and DCFR at 20 million hands per seat
Exploitability of the linear average by hands per seat, seed 0, log scales
0.050.10.20.5124100k200k500k1M2M5M10M20Mhands per seatexploitability, chips per handDCFR 0.250CFR+ 0.248Vanilla 0.086LCFR 0.061
Vanilla ends at 0.086, CFR+ at 0.248 and DCFR at 0.250; uniform random play is 4.84. The full write-up is on the research page.

Benchmark 5 · Deep CFR

Deep CFR on mini-drawmaha grades 0.086 at 2 million hands per seat

The same sampler and the same grader, with the regret table replaced by a 4 × 256 network per seat and its regret targets divided by √pot. Graded at equal hands per seat against the table.

Deep CFR is below the table at every hand count tried
Exploitability at equal hands per seat, exact average against tabular LCFR, log scales
0.050.10.20.5124100k200k500k1M2M5M10M20Mhands per seatexploitability, chips per handDeep CFR 0.086 at 2MTabular LCFR 0.061 at 20M
At 2 million hands per seat the table grades 0.630. The run's policy network Π grades 0.116 at the same mark; the chapter on the network is on the research page.

Next · Full Drawmaha

Full Drawmaha has not been started

2,598,960 holdings, 32 discards from each, two rankings on one pot. The plan is Deep CFR at scale, graded by head-to-head checkpoint matches and a trained exploiter, since no exact walk crosses the full tree. The range explorer runs the full game already, with an illustrative strategy that it labels as such.

Open the range explorer →