evaluator: modernize iterative deepening - #203
Merged
Merged
Conversation
hansbinderup
commented
Dec 28, 2025
Owner
The previous implementation used a more primitive way of handling iterative deepening. This commit introduces the more standard way of doing it these days. Instead of using a fixed window size we widen it based on fail high and fail low + we reduce the search depth. Also the window is scaled exponentially till a given constraint. NOTE: currently only implemented for single threaded search. Bench 752159 Signed-off-by: Hans Binderup <habi@bang-olufsen.dk>
Newer version of clang format wants to format this in different ways. Bench 752159 Signed-off-by: Hans Binderup <habi@bang-olufsen.dk>
There was a problem hiding this comment.
Pull request overview
This PR modernizes the iterative deepening implementation in the evaluator by refactoring the aspiration window logic and splitting single-threaded and multi-threaded search paths. The changes improve code organization and introduce tunable parameters for aspiration window behavior.
Key Changes:
- Introduced
AspirationWindowstruct to encapsulate aspiration window logic with dynamic widening behavior - Split iterative deepening into separate methods for single-threaded (
iterativeDeepeningSingle) and multi-threaded (iterativeDeepeningMulti) execution - Added two new SPSA tunable parameters:
aspirationMinDepthandaspirationMaxWindow
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/spsa/parameters.h | Adds tunable parameters for aspiration window minimum depth and maximum window size |
| src/evaluation/evaluator.h | Refactors iterative deepening with new AspirationWindow struct and separate single/multi-threaded implementations |
| src/core/board_defs.h | Adds clang-format directives around array initialization |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.