-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Quiescence Search (introduced by #22) currently searches all captures without a tactical pre-check. This can lead to search explosions and wasted time investigating obviously losing captures.
Static Exchange Evaluation (SEE) gives a fast material-only tactical check to determine whether a capture is likely profitable. It helps prune losing captures before exploring them.
๐ Goals
- Add a SEE function for evaluating captures on a target square
- Integrate SEE to reduce quiescence search branching factor
- Prepare groundwork for future forwarding pruning optimizations
โ๏ธ Acceptance Criteria
- Implement
SEE(Board board, Move move):- Simulates attackers and defenders on target square
- Orders attackers by least-valuable-attacker (LVA)
- Tracks net material gain/loss as the exchange unfolds
- Stops early when score is irrecoverable (negative beyond threshold)
- Integrate SEE into quiescence:
- Skip capture if
SEE(move) < 0 - Still allow winning and equal captures
- Skip capture if
- Add debugging utility to log SEE values (optional build flag)
- Write targeted tests:
- Positive SEE where recapture doesnโt happen (winning)
- Negative SEE (losing capture)
- Even SEE (trade is balanced)
- Run regression to ensure SEE reduces nodes without major Elo drops
๐ Stretch Goals (optional)
- Use SEE in main search for:
- Futility pruning near leaves
- Bad capture pruning in move ordering
- Consider a margin (
SEE < -50) instead of hard< 0 - Add SEE scores to move ordering heuristic
๐ References
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels