Skip to content

About

Four papers on Red/Black, a card game I invented: exact state enumeration, a CFR+ solve, and exploitability bounds

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Red/Black: solving a card game I couldn't look up

Start here if you are reading the papers rather than maintaining them; the maintenance protocol is AGENT_NOTES.md.

Red/Black is a bluffing game played with an ordinary 52-card deck where only color matters: bid how many cards of a color can be flipped, raise or challenge, then prove it. I built the game, then spent a summer trying to actually solve it - not "train a bot that seems strong," but pin down how far from optimal my best strategy is, with error bars I'd stake money on.

That turned out to be the hard part, and the interesting part. The game has about 2.4 x 10^33 information sets, so it can't be solved directly. Every path to an answer runs through an abstraction, and an abstraction can silently cost you exactly the thing you're trying to measure. Most of these papers are about refusing to let that happen.

The result

The final strategy is one no best-response probe I can build knows how to beat. Across 10,000 paired games the probe actually loses to it, so the exploitability lower bound it returns is negative, -0.025 [-0.044, -0.005] on a payoff range of 2, which is a statement about the probe running out of room rather than a proof the strategy is unbeatable. The predecessor, on identical seeds, measured +0.034: the difference resolves at p = 3e-5.

It got there through a fact I find genuinely pretty: the two things a decomposed solver produces - subgame values and a playable policy - want properties no single algorithm supplies. Values need to be unique and symmetric so thousands of subgame solutions compose without selection noise; a quantal-response ladder gives that. Policies need sharpness; CFR+ gives that. So the values come from one solver, frozen, and the policies from the other, re-solved against them.

The flagship paper also documents the experiment that failed first, because it changed how I think about what a strategy file is. I removed a provably-bad action from the solved game, expecting improvement. Exploitability quadrupled. A quarter of the damage: the strategy store doubles as the bot's model of its opponent, and a model that says an action is impossible breaks the moment a real opponent plays it. Pruning your own play is defense; pruning your model of the world is blindness.

The papers

paper what it is
Decoupled Equilibrium Selection The flagship: the coupling result, the measurement that motivated it, and the pruning experiment as contrast. Standalone - start here.
Paper I - States and Counts The game formalized; exact enumeration of everything (the 10^33 is counted, not estimated).
Paper II - The Solve and the Meters Solving the abstraction exactly, and the measurement discipline: every instrument defined before it's trusted, including the ones that turned out to be blind.
Paper III - Playing the Real Game Carrying beliefs across the abstraction's seams, safe re-solving, and an honest negative: why a certified upper bound stays out of reach.

RULES.md is the canonical rule text everything derives from.

If you're skimming

Read the flagship's introduction and Section 7 (the pruning experiment). If you want a feel for how the sausage gets measured, Paper II's remarks - dated, never deleted - are a lab notebook of every instrument that fooled me and what replaced it. Head-to-head win rate between two bots turns out to say almost nothing about how exploitable either one is; that's measured three separate times in here.

House rule

No number without a script. Every numeral in these papers is regenerated by code in this repo (state_counts.py, real_game_size.py, verify_against_engine.py) or by the solver scripts in the game repo, whose JSON artifacts are committed alongside. If a claim can't be recomputed, it isn't in the papers.

PDFs build with tectonic: tectonic -X compile <paper>.tex --outdir . - committed PDFs never lag their sources.

About

Four papers on Red/Black, a card game I invented: exact state enumeration, a CFR+ solve, and exploitability bounds

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages