diff options
| author | Scott Gasch <[email protected]> | 2026-10-10 10:29:48 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-10-10 10:29:48 -0700 |
| commit | 03545c4600df81b1a47dbc63fc606c065e857d8b (patch) | |
| tree | a433fdce69fd27359679ad91e0ebedd52e2506cd /src/generate.c | |
| parent | fbdcb9d76dd2444d8bc631331eaeb9435cc247f8 (diff) | |
Eval mobility/pseudo-mobility tweaks; drop unproductive move-ordering experiments.
eval.c: add bishop/rook x-ray pseudo-mobility terms (squares seen past a
directly-attacked higher-value piece), trim pawn-centrality edge penalty
and bishop-pair bonus.
chess.h/dynamic.c/generate.c/search.c/searchsup.c: revert three move-ordering
experiments (recapture bonus, flee-to-safety GOOD_MOVE promotion, ply-2
move-pair bonus) that calibrated with real fail-high signal but never
converted into a measurable node-count or solve-rate win on the curated
suites -- see MOVE_ORDERING_IDEAS.md for the evidence and reasoning behind
each drop. Add MOVE_ORDERING_EVIDENCE_COLLECTION as its own GNUmakefile
flag, independent of PERF_COUNTERS, for any future such harness.
command.c: remove the KING_DEFECT_DUMP-gated evalkingdump command, dead
since the king-safety remine work moved to eval_tune/king_safety_data/.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/generate.c')
| -rw-r--r-- | src/generate.c | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/src/generate.c b/src/generate.c index fdfdc79..d202384 100644 --- a/src/generate.c +++ b/src/generate.c @@ -908,7 +908,7 @@ GenerateWhiteKnight(IN MOVE_STACK *pStack, // ASSERT(pStack->bbOccupied == _BuildFullOccupiedBB(pos)) calls // below) and for testgenerate.c's benchmark harness. Non-static so // both of those can call it directly. -BITBOARD +BITBOARD FORCEINLINE _BuildFullOccupiedBB(IN POSITION *pos) /** @@ -1004,7 +1004,7 @@ _ComputeCheckTargetMaskBB(IN COOR cKing, IN COOR cAttacker, // Non-static so testgenerate.c's harness can call it directly to set // up MOVE_STACK.bbFriendlyOccupied when calling a _Generate*BB // function outside of _GenerateAllMoves. -BITBOARD INLINE +BITBOARD FORCEINLINE _BuildFriendlySideBB(IN POSITION *pos, IN ULONG uSide) /** @@ -4833,10 +4833,18 @@ Return value: s -= PIECE_VALUE_OVER_100(mv.pMoved); s += SORT_THESE_FIRST; - // - // IDEA: bonus for capturing opponent's last moved - // piece to encourage quicker fail highs? - // + // DROPPED: recapture bonus (MOVE_ORDERING_IDEAS.md + // item 4) -- a real, well-calibrated FH% signal + // (64-65% vs. a 49-52% all-captures-at-the-same- + // SEE-sign baseline) that never converted into a + // tree-size win at two magnitudes tried (50: a + // dominant override of MVV/LVA's own ~16-unit + // spread, confirmed real tactical loss on + // ecm_hard_quick; 4: fixed the regression but + // still no node-count improvement on any suite). + // See chess.h's DROPPED comment near + // COUNTERMOVE_EVIDENCE_THRESHOLD for the full + // backlog history. ASSERT(s >= SORT_THESE_FIRST); ASSERT(s > 0); ASSERT((s & STRIP_OFF_FLAGS) < VALUE_KING); @@ -4899,6 +4907,24 @@ Return value: s |= COUNTERMOVE_TIER_BONUS; } } + + // DROPPED: flee-to-safety tier (MOVE_ORDERING_IDEAS.md + // item 6) -- a real, well-calibrated FH% signal + // (56-68% vs. ~1.35-1.54% baseline at evidence >= + // 10000) that turned out to fire too rarely (2,444- + // 9,209 qualifying tries across an entire suite run) + // to register any measurable node-count or solve-count + // effect either way. See chess.h's DROPPED comment + // near COUNTERMOVE_EVIDENCE_THRESHOLD for the full + // backlog history. + + // DROPPED: ply-2 move-pair match (MOVE_ORDERING_IDEAS.md + // item 3) -- a real, well-calibrated signal (53-66% FH + // vs. ~1.2-1.4% baseline) that never converted into a + // tree-size win across three mechanisms tried (tier + // escape, dominant nudge, proportionate nudge). See + // chess.h's DROPPED comment near COUNTERMOVE_EVIDENCE_ + // THRESHOLD for the full history. ASSERT(s >= 0); } pStack->mvf[u].iValue = s; |
