Skip to content

Search: Four-player pawn-structure history for quiet move ordering - #47

Open
KnightStackSys wants to merge 3 commits into
mainfrom
search/pawn-structure-history
Open

KnightStackSys wants to merge 3 commits into
mainfrom
search/pawn-structure-history

Conversation

@KnightStackSys

Copy link
Copy Markdown
Owner

Summary

  • Implement pawn-structure-conditioned move history for quiet moves of all piece types, not only pawn moves, keyed by the pawn layouts of Red, Blue, Yellow and Green.
  • Maintain Position::pawnKey() incrementally through pawn placements, captures, promotions, elimination and make/undo; side-to-move, castling and en passant metadata do not change the pawn signature.
  • Index a bounded 256 × 32 × 160 (≈2.5 MiB) signed 16-bit history table by pawn hash bucket, full color-coded moving piece and destination square. Teammates have separate history entries.
  • Reward quiet beta-cutoff moves, penalize failed quiet moves using existing history-bonus saturation. Integrate scores into PV move ordering and lazy non-PV move picking, with preexisting LMP/HMP handling.
  • New SearchPawnHistoryWeight UCI option: 0–200%, default 50%; 0 disables both scoring and learning for A/B testing.
  • Test pawn-key integrity after non-pawn moves, pawn pushes/captures/promotions, null moves and undo; verify tuning, score isolation/saturation and history clearing.
  • Documentation in docs/pawn-history.md.

Notes

Does not include experimental knight/evaluation branches. No changes to main. CI pending; no Elo or NPS gain claimed. Compare against main with matched 4PC Teams SPRT and fixed-node speed testing.

@KnightStackSys
KnightStackSys marked this pull request as ready for review October 20, 2026 18:54

This branch has not been deployed

No deployments
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