Skip to content

Add Late Move Pruning - #6

Merged
KnightStackSys merged 4 commits into
mainfrom
late-move-pruning
Oct 9, 2026
Merged

KnightStackSys merged 4 commits into
mainfrom
late-move-pruning

Conversation

@KnightStackSys

@KnightStackSys KnightStackSys commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Adds a history-aware Late Move Pruning (LMP) baseline to IronPhoenix for isolated strength testing.

LMP policy

  • non-PV nodes only
  • disabled while in check
  • no depth limit
  • quiet moves only
  • never prunes TT moves
  • never prunes checking moves
  • disabled in mate windows
  • preserves quiets with history/move-order score >= 2000
  • move-count threshold is 3 + depth * depth

Threshold behavior

The threshold still grows with depth, so LMP naturally becomes harder to trigger in deeper nodes even though there is no explicit depth cap.

Examples:

  • depth 1: prune after 4 legal moves
  • depth 2: prune after 7
  • depth 3: prune after 12
  • depth 4: prune after 19
  • depth 5: prune after 28
  • depth 6: prune after 39

Scope

Only src/search.cpp changes. Existing PVS, LMR, SEE pruning, history updates, TT behavior, aspiration windows, and comments are preserved.

Please SPRT this branch against main by itself before combining it with IIR or NMP.

@KnightStackSys
KnightStackSys marked this pull request as ready for review October 9, 2026 21:11
@KnightStackSys
KnightStackSys merged commit e412e81 into main Oct 9, 2026
2 checks passed
@KnightStackSys
KnightStackSys deleted the late-move-pruning branch October 9, 2026 21:12
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