Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Rusty-rival 1.0.52-rc2 - new version chess engine

 

Rusty Rival UCI (Universal Chess Interface) chess engine written in Rust.
Author:Chris Moreton Rating Chess Engines Diary CEDR=2936

The engine can be about 50% faster if compiled on the machine on which it will be run in order to take advantage of cpu-specific instructions. 

Rusty-rival 1.0.52-rc2 what's new?

NET-367 follow-up: drop the null-move changes, add the plies-from-null bound
The v1.0.52-rc1 match came back -19 (+/-25) over 200 games against v1.0.51 -
not significant, but not supportive either, and the wrong direction for a
correctness fix. Investigating rather than shipping on faith.

Two of the three parts were wrong:

- Advancing half_moves on a null move made null subtrees hit the 50-move rule
  early, manufacturing draws that do not exist. This SHRANK the bench tree
  (10,241,485 vs 10,358,686), masking the real cost of the scan-window fix and
  almost certainly causing the Elo loss. Reverted.

- Pushing the null position onto the repetition history let the scan match
  across a null move. Positions either side of a null do not form a legal
  sequence, so such a match is fictitious. Standard practice is the exact
  opposite: bound the scan so it cannot cross a null at all. Reverted, and the
  missing bound is now implemented as `history_null_floor`, raised at each
  null move and restored after - the plies-from-null rule every mainstream
  engine applies, which this engine simply never had.

Kept: the scan-window fix, and the probcut/multicut history pushes (those are
ordinary real-move children, so pushing is correct and consistent; they turn
out not to affect the bench at depth 12 either way).

Measured effect of each part on the bench signature:

  v1.0.51                          10,358,686
  + scan window fix                12,024,221   (+16.1%)
  + plies-from-null bound          11,954,157   (+15.4%)

So cross-null false positives were NOT the main cost - the bound recovers only
0.6%. The scan-window fix genuinely detects many more repetitions, which is
what it was supposed to do: after a capture or pawn move, quiet shuffling
frequently returns to the position at exactly distance half_moves, and that
candidate was always excluded.

That correctness gain costs ~15% of the tree, which is a real price that the
previous match did not isolate. Needs its own match before shipping.


Comments