Records
OLSS-II with a two-strategy portfolio against full KLUSS at the 50 ms budget
Registration 81e925ab-4584-4bd4-b62a-f0869ac13125 (study subgame-solving/opponent-portfolio), run 2026-09-19 on AMD Ryzen AI Max (Strix Halo), 32 threads, 125 GB unified memory, Radeon 8060S via ROCm, Linux 6.18. Server commit e3107a0, research commit 9588223 (registration files as committed; this record added afterwards). Other agents shared the machine during the run; per-seed results are deterministic regardless of load.
Command:
cd server && cargo run --release -p armies-arena --bin matchup -- --red 'olss2 n2 50ms=kluss:{"mode":"olss2","samples":64,"expansions":5000,"cfr_every":64,"portfolio":[{"policy":"greedy"},{"policy":"self","parameters":{"temperature":0.3}}]}' --blue 'kluss 50ms=kluss:{"samples":64,"shadows":4,"expansions":2500,"cfr_every":64}' --games 200 --seed 0 --rules training --threads 8 --record-dir ../research/runs/81e925ab-4584-4bd4-b62a-f0869ac13125/records --out ../research/runs/81e925ab-4584-4bd4-b62a-f0869ac13125/matchup.json --tag 81e925ab-4584-4bd4-b62a-f0869ac13125
cd research && python3 scripts/paired_contrast.py runs/81e925ab-4584-4bd4-b62a-f0869ac13125/matchup.json
| Player | Wins | Draws | Losses | Effective | 95% Wilson | Mean plies | ms/move |
|---|---|---|---|---|---|---|---|
| olss2 N=2 (greedy, self 0.3; 5,000 expansions) | 121 | 0 | 79 | 0.605 | 0.536 to 0.670 | 195 | 129.180 |
| kluss (2,500 expansions) | 79 | 0 | 121 | 0.395 | 0.330 to 0.464 | 195 | 133.669 |
| ending: flag_captured | 195 | ||||||
| ending: no_moves | 5 |
Per-seed paired contrast for the olss2 player (score as Red plus score as Blue minus one): mean 0.210, 95% normal interval 0.064 to 0.356 over 100 seeds (40 positive, 41 split, 19 negative). The olss2 player won 71 games as Red and 50 as Blue. Wall time 657 s on 8 threads. Time per move is as played in the arena under load; the calibration bench (single thread, middlegame positions, other jobs sharing the machine) read 60 ms for the olss2 side at 5,000 expansions and 58 ms for kluss at 2,500.
Decision rule
The hypothesis (olss2 with two opponent strategies beats full kluss at 50 ms) is supported: the contrast interval 0.064 to 0.356 lies entirely above zero.
Provenance
Archived JSON: runs/81e925ab-4584-4bd4-b62a-f0869ac13125/matchup.json (SHA-256 b2bb0301257bc44bc92f358d595961fe8d3ee7b7299a1771a35962de302b123f), with per-game moves in the arena record files under the same directory. Games planned 200, attempted 200, completed 200, interrupted 0. No deviation from the registration.