Hidden-Information Game Lab

Does this extend beyond poker? The solver stack runs on a generic extensive-form Game interface — every game below is implemented against it, solved by the SAME CFR implementation, and verified by exact exploitability.

gamestatesinfosetsterminalsCFR iterationsexact exploitabilitytrain time
Kuhn poker55123010,0000.0014861.27s
Leduc poker9,4512885,5201,5000.01264335.21s
Sealed-bid auction duel1186815,0000.0000281s

Kuhn poker

Three cards, one betting round — the smallest game that forces bluffing and mixed strategies. Teaches: why equilibria randomize.

Leduc poker

Six cards, two betting rounds, a public board card — a standard mid-size research benchmark. Teaches: public information updating private beliefs.

Sealed-bid auction duel

Each player privately values an item, then bids blind. Zero-sum duel form (payoff = your surplus minus theirs; ties award nobody) — deliberately NOT the classic general-sum first-price auction. Teaches: hidden private values outside poker entirely.

The CFR equilibrium (exploitability 0.000028): bids shade BELOW value, and higher private values never bid less — classic hidden-information behavior, learned, not programmed:

private valueequilibrium bid mix
value 0bid 0: 100%
value 1bid 1: 100%
value 2bid 1: 100%

Poker is the flagship, not the limit

PokerAlpha began with poker because it concentrates hidden information, bluffing, randomized strategies and adaptation into one measurable setting. The research infrastructure — the Game interface, the CFR family, exact evaluation, the agent tournament harness — applies to other SMALL imperfect-information games like the ones above. No claim is made about arbitrary real-world decisions.

Define a new game: subclass poker_alpha.games.base.Game (~60 lines for the auction duel, tests included) and every solver, evaluator and tournament tool works on it unchanged. Read the auction implementation

Watch CFR learn one of these live Agent tournaments

Method
each game enumerated and solved by poker_alpha.solvers.cfr.CFRSolver; exploitability via exact best response on the full tree
Limitation
small exactly solvable games only; the generic interface does not claim to scale every game to Hold'em size
Data
PRECOMPUTED games.json
Reproduce
python scripts/build_web_research_data.py
Commit
503af8690f83
Strategy
sha256:f1860de75526…

← Research Lab