Skip to content

Cache static evaluation with futility pruning - #24

Draft
KnightStackSys wants to merge 7 commits into
mainfrom
tt-static-eval-cache-with-futility-pruning
Draft

KnightStackSys wants to merge 7 commits into
mainfrom
tt-static-eval-cache-with-futility-pruning

Conversation

@KnightStackSys

Copy link
Copy Markdown
Owner

Extends the TT static-evaluation cache experiment with conservative futility pruning on top of current main.

TT/static-eval behavior

  • caches raw static evaluation in the transposition table
  • reuses cached TT eval in qsearch and negamax
  • keeps raw staticEval separate from the TT-improved pruning eval
  • TT searched scores only improve pruning eval when their bound is directionally compatible
  • mate-range TT scores do not replace static evaluation
  • keeps 16-byte TT entries and 64-byte clusters

Futility pruning

  • applied after LMP and before SEE pruning
  • non-PV nodes only
  • disabled while in check
  • quiet moves only
  • skips TT moves and checking moves
  • disabled in mate windows
  • requires at least one legal move to have been searched
  • FUTILITY_MAX_DEPTH = 2
  • FUTILITY_MARGIN_PER_DEPTH = 200
  • uses the TT-improved eval for the futility test

Existing NMP behavior preserved

  • minimum depth 2
  • partner-in-check guard
  • dynamic reduction
  • NULL_MOVE_DIVISOR = 190

For clean testing, SPRT this branch directly against current main.

@KnightStackSys

Copy link
Copy Markdown
Owner Author

Active test is running now

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