Skip to content

Solved equilibrium strategies for turn / flop board states are incorrect #4

Description

@quwin

Solved equilibrium strategies for turn / flop board states are incorrect

Overview

Solved strategies appear to be accurate for river-only board states, but turn and flop solves produce incorrect equilibrium outputs under controlled tests. This suggests the core CFR strategy update logic may be functioning, while the issue is likely isolated to earlier-street public chance handling, all-in EV/runout evaluation, terminal value aggregation, or board-indexed showdown cache lookup.

Observed Behavior

  • River board states produce strategy outputs that match expected behavior.
  • Turn and flop board states produce strategy outputs that diverge from established solver results.
  • The discrepancy appears after introducing multi-street public-card transitions and/or collapsed all-in runout evaluation.
  • Incorrectness is visible in solved average strategies, not just performance metrics.

Expected Behavior

For equivalent game inputs, betting abstraction, ranges, stack/pot configuration, and iteration count, turn and flop solves should converge toward strategies consistent with validated solver baselines, within normal CFR approximation error.

Suspected Areas

Potential causes include:

  • Incorrect chance transition probabilities from flop → turn or turn → river.
  • Incorrect board indexing for partial-board terminal/all-in evaluation.
  • Showdown cache lookup using the wrong start_board_size, board_index, or hand-pair offset.
  • Terminal utility evaluation for all-in states incorrectly averaging over future runouts.
  • Reach probability propagation across chance nodes.
  • Mismatch between CPU and GPU handling of public-card transitions or terminal records.

Notes

This is likely not a generic CFR convergence issue because river-only solves are accurate. The failure mode points more specifically toward logic that only exists when unresolved public cards remain after the starting board.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions