Skip to content

Eval: Selective pawn-backed knight outposts (replace losing heuristics) - #46

Open
KnightStackSys wants to merge 6 commits into
mainfrom
eval/knight-check-threat
Open

KnightStackSys wants to merge 6 commits into
mainfrom
eval/knight-check-threat

Conversation

@KnightStackSys

@KnightStackSys KnightStackSys commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Why rework this branch

The full knight check/development/proximity experiment reportedly lost approximately 20 Elo in a completed strength test. Rather than tuning every speculative positional reward, this revision disables all four failed heuristics by default and replaces them with a conservative, testable pawn-backed knight outpost.

Revised default

  • +6 cp per qualified knight, maximum +12 cp per team (Red+Yellow or Blue+Green).
  • Qualification requires: a surviving player's knight has advanced from its home edge; the knight is defended by its own or surviving partner's pawn; no surviving enemy pawn currently attacks that square; it's located in a surviving enemy's home-side flank; and a surviving enemy non-king piece is within two Chebyshev squares.
  • No global center, back-rank, enemy-king-distance, or pseudo-check bonus by default.
  • The previous EvalKnightCheckThreatPenalty, EvalKnightDevelopmentBonus, EvalKnightEnemyPressureBonus, and EvalKnightKingApproachBonus knobs now all default to 0; they remain available to isolate effects in experiments.
  • New EvalKnightOutpostBonus option defaults to 6, range 0–50; 0 disables the new outpost as well. All new HCE evaluations short-circuit when disabled.
  • Computes outpost eligibility inside the existing knight-mobility loop, no separate per-knight iteration; uses precomputed geometry pawn-attack and proximity lookups.
  • Independent CTest fixture ironphoenix_knight_outpost covers king/partner score signs, pawn support, enemy pawn challenge, all four player orientations, outpost team cap, eliminated pieces, enemy presence, center neutrality, and UCI tuning.

Important

This is an untested-for-Elo revised hypothesis, not a verified fix for the −20 Elo regression. The team-centric pawn-defended flank criteria are stricter, but the heuristic can still lose games or change search speed. Benchmarks and matched completed SPRT remain required before merging. NNUE is unaffected. No changes to main.

Validation

Linux and Windows builds / CTest running on this commit. See docs/knight-activity.md for exact criteria and A/B settings.

@KnightStackSys
KnightStackSys marked this pull request as ready for review October 20, 2026 14:50
@KnightStackSys KnightStackSys changed the title Eval: Early warning for knight checks against either team king Eval: Knight check threats, development and enemy-side activity Oct 20, 2026
@KnightStackSys KnightStackSys changed the title Eval: Knight check threats, development and enemy-side activity Eval: Selective pawn-backed knight outposts (replace losing heuristics) Oct 20, 2026

This branch has not been deployed

No deployments
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