Tofiks 1.4.0 what;s new?
Long time no see!
It's been a very long time. Two and a half years since the last release of Tofiks. I've not been idle all this time but the progress has been slow. I was enthusiastic after the improvements of 1.1 -> 1.2 -> 1.3. After that I hit a wall. I had so many ideas to try out and was working tirelessly - but it seemed nothing was really working. A lot of hard work went into Tofiks without any tangible improvements. Often seemingly good ideas were counter productive. This never gave me a feeling - "Yes! That's a step forward worth a new release." So work ground to a halt with very minor and sporadic updates.
The biggest breakthrough came with Static Exchange Pruning in quiescence search - it saw a huge drop in bad captures being tried and spent much less time in q-search allowing Tofiks to reach more depth.
Another one was tuning the TT. This was the primary reason for making a debug version collecting TT statistics. Bad replacement strategy prevented stale entries being ejected. Too aggressive replacement and not much of value was stored.
Time management. One of Go's primary domains is Web APIs - handling HTTP requests and the context.Context passing pattern is great. It worked for Tofiks. It's good for setting deadlines and timeouts. Canceling a context early is still very handy but extending one - not really in the domain.
Tofiks 1.4.0. is here.
What's New?
Search
- Reverse Futility Pruning prune nodes where static eval is far above beta at shallow depths.
- Futility Pruning skip quiet moves unlikely to raise alpha at shallow depths.
- Late Move Pruning quadratic depth scaling with improving-aware thresholds.
- Singular Extensions extend the TT move when no alternative comes close.
- SEE pruning in quiescence skip losing captures.
- Counter Move Heuristic improve quiet move ordering based on the previous move.
- Internal Iterative Reduction reduce depth when no hash move is available.
- Improved TC Go's
context.Contextpattern is not a good fit for dynamic time adjustments.
Evaluation
- Pawn shield safety bonus for pawns sheltering the king.
- Pawn hash table cache pawn structure evaluation.
- Passed pawn evaluation progressive rank-based bonuses.
Infrastructure
- fastchess-cli pentanomial testing.
- Benchmarks a lot of benchmarks for hot paths to help with optimization work.
- Texel tuner improved performance and extended to all search params.
- Debug builds to help with gathering TT and search stats to gauge how certain methods are performing.
- OpenBench testing and tune framework with cloud workers and GH integration to automate the workflow.
Bug fixes
- Various small fixes ranging from eval, Zobrist, rare castling rights update bug
Results
Round robin tournament with previous releases with 15s+0.2s time control:
Rank Name Elo +/- Games Wins Losses Draws Points Score Draw
1 tofiks-1.4 572 55 600 558 1 41 578.5 96.4% 6.8%
2 tofiks-1.3 -31 24 600 202 256 142 273.0 45.5% 23.7%
3 tofiks-1.2 -92 24 600 144 300 156 222.0 37.0% 26.0%
4 tofiks-1.1 -229 27 600 52 399 149 126.5 21.1% 24.8%

Comments
Post a Comment