Records

OLSS-II with a two-strategy portfolio against full KLUSS at the 1 s budget

Registration c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8 (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 (the code that ran; later commits on the branch touch only the trace tool and documentation), research commit e39167b (registration 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 1s=kluss:{"mode":"olss2","samples":64,"expansions":20000,"cfr_every":64,"portfolio":[{"policy":"greedy"},{"policy":"self","parameters":{"temperature":0.3}}]}' --blue 'kluss 1s=kluss:{"samples":64,"shadows":4,"expansions":10000,"cfr_every":64}' --games 100 --seed 0 --rules training --threads 8 --record-dir ../research/runs/c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8/records --out ../research/runs/c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8/matchup.json --tag c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8
cd research && python3 scripts/paired_contrast.py runs/c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8/matchup.json
PlayerWinsDrawsLossesEffective95% WilsonMean pliesms/move
olss2 N=2 (greedy, self 0.3; 20,000 expansions)550450.5500.452 to 0.6441802,812.063
kluss (10,000 expansions)450550.4500.356 to 0.5481801,797.557
ending: flag_captured94
ending: no_moves6

Per-seed paired contrast for the olss2 player (score as Red plus score as Blue minus one): mean 0.100, 95% normal interval minus 0.111 to 0.311 over 50 seeds (17 positive, 21 split, 12 negative). The olss2 player won 36 games as Red and 19 as Blue. Wall time 5,553 s on 8 threads. Time per move is as played in the arena under load. Calibration: the expansion counts were matched to equal bench cost at registration time under the load then on the machine (818 ms for kluss at 10,000 against 848 ms for olss2 at 20,000, one thread, twenty middlegame positions); on the idle machine later the same day the same counts read 467 ms and 770 ms, so this cell's nominal budget is looser than the two smaller cells' and the olss2 side holds the larger share of it.

Decision rule

The hypothesis (the order reverses at 1 s, kluss ahead) is not supported, and neither is the olss2 side: the contrast interval minus 0.111 to 0.311 overlaps zero. The cell is inconclusive on its own; read with the 50 ms and 200 ms cells it shows the portfolio's margin narrowing toward zero as the budget grows, with no crossing inside the measured range.

Provenance

Archived JSON: runs/c8ba64ba-05df-4d3b-bbca-cdd7cb9556e8/matchup.json (SHA-256 e8cf6774e260d6a53a1476ad97939c72fc2fabdf0b30c1746c45751f6e64974e), with per-game moves in the arena record files under the same directory. Games planned 100, attempted 100, completed 100, interrupted 0. The plumbing was smoked on four games with throwaway seed 900 before the run. No deviation from the registration.