Records

The learned belief against the counting prior

Registration d72d5305-0de2-4f4c-b8fd-f1f24c3ab4dd (study subgame-solving/learned-belief), run 2026-09-19 on AMD Ryzen AI Max (Strix Halo), 32 threads shared with three other delegated agents, Radeon 8060S via ROCm. Server commit f61f889, research commit a87c4aa. Both measurements are negative: the belief network is worse than the counting prior in held-out hidden-piece likelihood, and expectimax sampling its worlds from the network lost the paired match by point estimate with an inconclusive interval.

The match

PlayerWinsDrawsLossesEffective95% WilsonMean pliesms/move
expectimax + belief worlds9011090.45250.385 to 0.52212652.92
expectimax, prior worlds1091900.54750.478 to 0.6151264.28
ending: flag_captured196
ending: no_moves3
ending: quiet_limit1

Per-seed paired contrast for the belief side (score as Red plus as Blue minus one): mean -0.095, 95% normal interval -0.217 to 0.027 over 100 seeds (15 positive, 60 split or drawn, 25 negative). The decision rule (interval above zero) is not met; the result is inconclusive with a negative point estimate, not equivalence. The belief side won 43 as Red and 47 as Blue. Its 52.9 ms per move includes the belief network sampling on the GPU and the search over the given worlds; the control's 4.3 ms is the single-threaded search alone. Both were measured while other agents used the machine, so they are upper bounds, not alone-on-the-machine numbers.

The held-out likelihood

Replay library, 64 games (random, greedy, expectimax at every sweep cell, rollout), 10,588 positions with 270,223 hidden pieces, 64 sampled assignments per position, probabilities floored at 1/128. The library holds no games of the trained policy, so every position is held out.

BeliefNLL/piece overallTop-1Opening (before ply 100)Middlegame (100-300)Late (after ply 300)
counting prior2.0960.2422.2031.9801.765
belief network2.2930.2142.3682.2122.054

The network is worse in every phase and for every acting player in the library (prior 2.06 to 2.26 against network 2.23 to 2.42; the full split is in the raw JSON beside this record). Against its own self-play positions it trained to 1.62 NLL per piece, so it learned its own distribution and did not transfer.

The networks

Small preset, seed 0, 30 iterations, about 10,300 environment steps per second and 42 seconds per iteration (the throughput agent's attention fix on main). The run crashed at iteration 21 with an illegal action: the setup network had sampled a legal setup that immobilises the first mover (frontier row of Bombs with the movables facing lakes), and the engine ends a no-move game only after a move is applied. The pool refresh now drops such setups (research commit a87c4aa), and the run resumed from the iteration-20 checkpoint; the trajectory from iteration 21 differs from an unguarded uninterrupted run. The belief network: 6,394,124 parameters, 102,400 self-play positions collected in 9.3 s, 2 epochs, train NLL per piece 1.62, top-1 0.414.

Provenance

Commands, from the research root with PYTHONPATH=training:.armies-module (the shared venv module was repeatedly overwritten by other agents' builds, so this study ran against a private install of the same crate; the module was also rebuilt once with just build-env):

.venv/bin/python -m armies_train train --preset small --iterations 30 --seed 0 --out runs/belief-policy --registration d72d5305-0de2-4f4c-b8fd-f1f24c3ab4dd
.venv/bin/python -m armies_train belief --run runs/belief-policy --steps 400 --envs 256 --epochs 2
.venv/bin/python scripts/belief_eval.py --run runs/belief-policy --out runs/belief-policy/belief-eval.json
.venv/bin/python scripts/belief_match.py --run runs/belief-policy --games 200 --seed 0 --out runs/belief-policy/belief-match.json
.venv/bin/python scripts/paired_contrast.py runs/belief-policy/belief-match.json
python3 scripts/build_belief_assets.py --run runs/belief-policy

Raw outputs, small enough to sit beside this record: d72d5305-0de2-4f4c-b8fd-f1f24c3ab4dd-belief-eval.json (SHA-256 500d8cbc47b3ad27c87cb8468cef5da1204d082230c5321c3f44ca376eefe67d, 12 KB, eval wall 1,454.9 s) and d72d5305-0de2-4f4c-b8fd-f1f24c3ab4dd-belief-match.json (SHA-256 a6db40b5ac1f7fd3fda2547ac756627784a6da29c28603e01591887b9376ac6e, 72 KB, match wall 718.5 s). Games planned 200, attempted 200, completed 200, interrupted 0. The optional per-game GameRecordDto records were not written. No deviation from the registration; the deviations of the training run are above.