I just want to clarify one thing in this discussion. It is not proven beyond reasonable doubt that fixing the repetition bug is actually a regression in Stockfish. The problem is that they used an asymmetric SPRT to decide, with the following parameterssyzygy wrote:I would not be surprised if "fixing" it would somewhat hurt engine strength. Scoring first repetitions of positions in the game history immediately as a draw and not searching those branches further likely makes the tree a bit smaller.tpetzke wrote:Hi Sven,
it does not hurt much because in an engine - engine match this position will likely not occur.
Fixing it would also annoy some (other) users, because the engine will now sometimes choose a line that it can see to lead to a (first) repetition but that (with the fix) still seems better than other lines.
I still consider Sven's approach to be "more correct" and I have implemented that in my engine, but there seem to be good reasons for the approach of Stockfish.
Indeed. Users can also complain about such problems, but considering them "bugs" that need to be fixed is simply not an option. This also reminds me of the complaints about smp variability of some time ago.Also the transposition table is blind to repetition problems and we could solve that by storing path information. But it will not make the program stronger so I guess nobody does that.
Code: Select all
H0: elo0=-1.5 (expressed in unscaled bayes elo)
H1: elo1=+4.5 (expressed in unscaled bayes elo)
alpha=5% (max type I error probability of the test)
beta=5% (max type II error probability of the test, in the zone elo >= elo1)
When I fixed this same bug in my engine, it was actualy a small gain. I had used a simple fixed game test and got the following result
Code: Select all
9000 games in 10"+0.1"
2374-2248-4378 [50.7%] p-value=96.8%