Reports · 2026-09-18
Sixteen worlds at depth two is the sweet spot of the sweep
Expectimax against greedy by worlds and depth, 100 paired games per cell
| Row | Value | Low | High | n |
|---|---|---|---|---|
| 4 worlds, depth 1 | 57.5 | 47.7 | 66.7 | 100 |
| 4 worlds, depth 2 | 53 | 43.3 | 62.5 | 100 |
| 4 worlds, depth 3 | 59 | 49.2 | 68.1 | 100 |
| 16 worlds, depth 1 | 61 | 51.2 | 70 | 100 |
| 16 worlds, depth 2 | 67.5 | 57.8 | 75.9 | 100 |
| 16 worlds, depth 3 | 65 | 55.3 | 73.6 | 100 |
| 64 worlds, depth 1 | 51 | 41.3 | 60.6 | 100 |
| 64 worlds, depth 2 | 62.5 | 52.7 | 71.4 | 100 |
| 64 worlds, depth 3 | 62 | 52.2 | 70.9 | 100 |
Every cell played 100 paired games (seeds 0 to 49, both seats) against greedy under the training rules. All nine cells beat 50% by the point estimate, and the per-seed contrast is above zero for the four cells with sixteen or more worlds at depth 2 or 3. The largest contrast, 0.35 (0.13 to 0.57), belongs to the sixteen-world depth-2 cell that the earlier 200-game registration promoted; this sweep reproduces that result on new seeds at 67.5% against 69.5%.
Cost buys nothing past the middle cell
Strength against cost across the sweep
- depth 1
- depth 2
- depth 3
| Series | ms per move | % effective against greedy |
|---|---|---|
| depth 1 | 0.2 | 57.5 |
| depth 1 | 0.796 | 61 |
| depth 1 | 2.656 | 51 |
| depth 2 | 2.25 | 53 |
| depth 2 | 9.503 | 67.5 |
| depth 2 | 32.286 | 62.5 |
| depth 3 | 18.331 | 59 |
| depth 3 | 71.294 | 65 |
| depth 3 | 147.077 | 62 |
Time per move spans three orders of magnitude, from 0.2 ms for four worlds at depth 1 to 147 ms for sixty-four worlds at depth 3, and the win rate moves within a ten-point band once the search has sixteen worlds and looks two plies ahead. Depth 3 at sixteen worlds searches 158,000 nodes per move for 65.0%; depth 2 searches 21,600 for 67.5%. Sixty-four worlds at depth 3 searches 333,000 nodes for 62.0%.
Two things limit the return. The leaf is a hand-written material and position count, so deeper search mostly finds sharper ways to trade material the leaf already values; and the worlds are independent samples from the counting belief, so averaging more of them narrows the estimate of a wrong distribution rather than a right one. Sixty-four worlds at depth 1 is the clearest sign: 51.0% with twelve draws, the most in the sweep, because a one-ply search over many worlds sees an attack lose in enough samples to prefer waiting.
What the games show
66%66/100, 56% to 75%Of the 900 games, 850 ended by Flag capture, 25 because a side ran out of moves and 25 at the 100-move battleless limit, so no cell won by stalling. In the middle cell, expectimax lost 241 attacks into Bombs across the 100 games against greedy's 152: the search attacks more, and the counting belief that places Bombs uniformly over unmoved pieces is what it pays for. That is the argument for the belief network on the next rung.
Replays from the library: sixteen worlds at depth 2 as Red, the same cell as Blue, and sixty-four worlds at depth 1 as Blue, where the value trace shows the search sitting near zero for most of the game.
Reproduction
Registration experiments/1126bd34-1166-4de9-934d-e6274a23b622.toml. One command per cell with S set to 4, 16 or 64 and D set to 1, 2 or 3, from the repository root:
cd server && cargo run --release -p armies-arena --bin matchup -- --red 'expectimax:{"samples":S,"depth":D}' --blue greedy --games 100 --seed 0 --rules training --threads 32 --moves --out ../research/runs/1126bd34-1166-4de9-934d-e6274a23b622/sS-dD.json --record-dir ../research/runs/1126bd34-1166-4de9-934d-e6274a23b622/records/sS-dD --tag 1126bd34-1166-4de9-934d-e6274a23b622,sweep
cd research && python3 scripts/paired_contrast.py runs/1126bd34-1166-4de9-934d-e6274a23b622/sS-dD.json
cd research && python3 scripts/build_second_pass_assets.pyThe whole sweep took 92 seconds of wall time on 32 threads. The record lists the SHA-256 of every cell's JSON.