Tofiks 1.6.0 - new version chess engine



Tofiks - UCI chess engine
Author: Arturs Priede Rating CEDR=2256

Tofiks 1.5.0 – this is the version we entered in the qualifying rounds for the Chess Engine League. Does this engine have a chance of making it to the TOP-64? – check back soon and you'll see the results.

Tofiks - what's new?

Fixes. Fixes everywhere.
Tofiks 1.6.0 proudly ships with almost no new features. The only one that can be considered a new feature is improved history move malus. Every other change to was a fix or slight improvement or looked like a promising feature only to be later erased by the tuner.

What's New?
Search
History malus Quiet moves searched before a quiet cutoff are now penalised, so history is a signed signal instead of a counter that only grows.
PV move ordering only at PV nodes
Quiescence in check No stand pat when in check, and a position with no legal evasion returns the mate score instead of the static eval.
Aborted search no longer poisons the TT Scores from a search cut off by the clock are discarded instead of stored.
Repetition draws get a ±1 dither The search stops laundering draw scores through the table. Fixes threefold repetitions in winning positions.
TT ageing decoupled from depth
Evaluation
Simpler king evaluation The separate king distance-to-centre terms were folded into the king piece-square tables. They were the same function of the king square with the same taper.
Game phase clamped The phase used for tapering is clamped to its nominal range. Positions with promoted pieces or no minors and majors no longer get weights outside [0, 1].
Time management and UCI
Zero clock handling go wtime 0 btime 0, which GUIs and fastchess send once a clock has run out, used to be treated as no time limit and the engine would search until it found a mate. It now answers immediately.
movestogo honoured Cyclic time controls now allocate from the GUI's move count instead of the internal estimate.
Low-time allocation Edge cases where a few milliseconds left on the clock turned into an infinite search are fixed and covered by tests.
Context-free time control The deadline is a timer and an atomic flag instead of a context, keeping the per-node abort check to a single load. Also allowing some unsuccessful experiments with extending time.
Results
Round robin tournament with previous releases with 15s+0.2s time control:

Rank Name                          Elo     +/-   Games    Wins  Losses   Draws   Points   Score
   1 tofiks-1.6                    341      34     600     480      28      92    526.0   87.7%
   2 tofiks-1.5                     89      25     600     301     151     148    375.0   62.5%
   3 tofiks-1.4.1                  -27      25     600     227     274      99    276.5   46.1%
   4 tofiks-1.3                   -564      57     600       4     559      37     22.5    3.8%
What's next?
Still not abandoning the development of Tofiks to move onto some new project like a Zig or rust based engine. Previous releases have been very frustrating with finding anything that works - lot's of experimentation that ultimately all failed to produce anything of value. While there is still some of that in v1.6.0, I think this release was mostly inching forward one fix at a time. I always like to be optimistic (delusional?), that a big breakthrough is ahead. With the amount of fixes - I will try to delude myself that everything that has failed before was due to bad foundations and errors, and with many of those fixed; It is time to try them again!

Comments

Popular posts from this blog

Reckless 0.9.0 - new version super strong chess engine

Reckless 0.10.0 - new version super strong chess engine

Torch-4 UCI v 1.01 - new version chess engine

We already have the new Fritz 20 program - what does it look like and how does it work?