Skip to content

docs: preflop RvR high-iter rerun (bug confirmed via 1000-iter; 10000-iter killed)#164

Merged
amaster97 merged 1 commit into
mainfrom
preflop-rerun-higher-iters
May 28, 2026
Merged

docs: preflop RvR high-iter rerun (bug confirmed via 1000-iter; 10000-iter killed)#164
amaster97 merged 1 commit into
mainfrom
preflop-rerun-higher-iters

Conversation

@amaster97

@amaster97 amaster97 commented May 28, 2026

Copy link
Copy Markdown
Owner

Summary

Empirical rerun of the preflop RvR solve at higher iter counts to disambiguate
"convergence issue" vs "engine bug" for the degenerate preflop strategies.

1000-iter result (10x original baseline, post-PR #157 .so)

  • Wall: 179.49 s (0.1795 s/iter)
  • SB J7s root FOLD: 100.00% (vs target 20-40% per published GTO)
  • SB AA (AsAd) at root: plays normally (100% non-fold, mix of raise sizes)
  • BB aggregate folds vs 3bb: 99.25% (1225 unblocked hands)
  • BB KdQd vs 3bb FOLD: 99.97% (vs target <=20%)
  • BB 8s9s vs 3bb FOLD: 100.00% (vs target ~40%)

Trajectory

Iters J7s FOLD% KdQd FOLD% 8s9s FOLD%
10 92.12% - -
100 99.99% 71.71% 98.76%
1000 100.00% 99.97% 100.00%

Strategy monotonically narrows to fold as iters grow — opposite of what a
"needs more iters" convergence issue would show.

10000-iter run

Launched but killed externally at ~50 min wall / ~47 min CPU before writing
its summary (suspected macOS memory pressure, peak RSS ~4 GB). Verdict does
not depend on it.

Verdict

BUG CONFIRMED — NOT a convergence issue.

Bumping default iter count will NOT fix this. The leaf math must be fixed per
PR #159's RCA: PreflopRvrState::initial ignores config.initial_contributions,
so when the repro config passes [50, 100] matching the blinds, the fold-at-root
leaf's chip-flow zeros out and folding becomes the no-loss dominant action.

AA at SB root plays normally (the bug doesn't affect non-fold leaves deeper in
the tree where contributions have been bumped above the blind level).

Test plan

  • Smoke test: 10 iters returns valid strategy keys (not silent no-op)
  • 100-iter test: confirms direction of travel
  • 1000-iter test: confirms saturated fold behavior (10x original baseline)
  • 10000-iter: killed externally; can be rerun in clean shell (~30-50 min wall)
  • Engine fix (out of scope here — addressed in PR docs(critical): preflop RvR degenerate Nash investigation #159 or separate)

Constraints honored

Empirical investigation of degenerate preflop strategy hypothesis.

100-iter (post PR #157 .so) results with initial_contributions:[50,100] config:
- SB J7s root: 99.99% fold (target: 20-40% fold)
- BB KdQd vs 3bb: 71.71% fold (target: <=20% fold)
- BB 8s9s vs 3bb: 98.76% fold (target: ~40% fold)
- Trajectory: 92.12% (10 iters) -> 99.99% (100 iters); strategy NARROWS to fold

VERDICT: bug confirmed, NOT a convergence issue. Direction of travel is
toward more fold not less, consistent with PR #159 RCA (leaf payoffs collapse
to ~0 when initial_contributions matches the blinds, so folding becomes the
no-loss dominant action).

10000-iter run was launched in parallel (still in flight at commit time at
~47 min wall, slower per-iter rate than 100-iter sample suggested); doc will
be amended with full numbers when summary lands.

Engine code NOT modified. Empirical measurement only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@amaster97 amaster97 merged commit 32b1fe0 into main May 28, 2026
5 of 8 checks passed
@amaster97 amaster97 changed the title docs: preflop RvR high-iter empirical rerun (bug confirmed) docs: preflop RvR high-iter rerun (bug confirmed via 1000-iter; 10000-iter killed) May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant