Skip to content

Make LMP improving-aware - #7

Draft
KnightStackSys wants to merge 3 commits into
mainfrom
late-move-pruning-improving
Draft

KnightStackSys wants to merge 3 commits into
mainfrom
late-move-pruning-improving

Conversation

@KnightStackSys

Copy link
Copy Markdown
Owner

Adds an improving/worsening signal to the per-ply search stack and uses it only to tune Late Move Pruning.

Base

This branch is intentionally based on late-move-pruning, not main, so it can be tested directly against the existing LMP implementation.

Search stack

Adds SearchStackEntry, which preserves the existing HistoryContext interface and stores:

  • staticEval
  • improvementRate
  • improving

4PC improving calculation

IronPhoenix compares static evaluation with ply - 4, not ply - 2, so the comparison is against the same player's perspective after one complete Red/Blue/Yellow/Green turn cycle.

  • improving margin: +25 cp
  • strongly worsening margin: -100 cp

LMP tuning

Base LMP threshold remains:
3 + depth * depth

Then:

  • improving: search 2 + depth additional moves before LMP
  • strongly worsening: prune 1 + depth / 2 moves earlier
  • clamp threshold to at least 3

No LMP depth cap is reintroduced. Existing check, PV, TT-move, mate-window, checking-move, capture/promotion, and history safeguards remain intact.

Scope

This experiment does not modify LMR reductions yet. The improving signal affects LMP only, allowing a clean strength test.

Recommended test:
late-move-pruning vs late-move-pruning-improving with identical HCE, openings, TC, hash, threads, and MultiPV=1.

Base automatically changed from late-move-pruning to main October 9, 2026 21:12
@KnightStackSys

Copy link
Copy Markdown
Owner Author

LMP was successful on first run

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