In this position Skipper played Rf5?? (white plays Rd6 etc.)
[d] 3R4/5k1p/1p3r1P/p5p1/P5p1/1P2Pq2/2Q2P2/6K1 b - - 1 46
But unfortunately I can't reproduce this bug. So maybe it is better always to clear transposition table before starting search during testing. For if you find a bug it might be easier to reproduce it.
TTable clean
Moderators: hgm, Dann Corbit, Harvey Williamson
-
Joost Buijs
- Posts: 1562
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: TTable clean
This is not so easy to solve.
It happened to me on many occasions that my engine played a bad move during a game, and afterwards it was not reproducible.
Besides the transposition table it can also be your game history, repetition detection and things that are related to it.
Your half move counter probably has a different value as well when you try to reproduce the error.
The only thing you can do is to replay the whole game and hope that the error will appear again.
With a non SMP engine this approach might work, with a SMP engine it is like seeking a needle in a haystack.
It happened to me on many occasions that my engine played a bad move during a game, and afterwards it was not reproducible.
Besides the transposition table it can also be your game history, repetition detection and things that are related to it.
Your half move counter probably has a different value as well when you try to reproduce the error.
The only thing you can do is to replay the whole game and hope that the error will appear again.
With a non SMP engine this approach might work, with a SMP engine it is like seeking a needle in a haystack.
-
hgm
- Posts: 27701
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: TTable clean
Clearing the hash table before every move definitely help to make things more reproducible. I had to switch on the code that does this several times while debugging KingSlayer/Simple, and then play many games waiting for the error (illegal moves and such) to manifest itself again, but now in a reproducible way.
In any case, when trying to reproduce an error it is better not just load the position, but load the entire game upto the position. This avoids problems with repetitions and such as mentioned by Joost.
What sometimes also helps is not load the actual position, but the position two ply earlier, and first let the engine think about that (tweaking the TC such that it reached the same depth there as in the game where it exhibited the error). Then (if it picks the same move then as in the game) you play the answer from the game, and sometimes the error does reproduce then.
In any case, when trying to reproduce an error it is better not just load the position, but load the entire game upto the position. This avoids problems with repetitions and such as mentioned by Joost.
What sometimes also helps is not load the actual position, but the position two ply earlier, and first let the engine think about that (tweaking the TC such that it reached the same depth there as in the game where it exhibited the error). Then (if it picks the same move then as in the game) you play the answer from the game, and sometimes the error does reproduce then.
-
Sven
- Posts: 4052
- Joined: Thu May 15, 2008 9:57 pm
- Location: Berlin, Germany
- Full name: Sven Schüle
Re: TTable clean
That is not a "??" move. The position is already lost, there is no significantly better move available for black. The relative best seems to be 1...Qc6 but after 2.Qxh7+ Ke6 3.Rd4 the game is almost over.Henk wrote:In this position Skipper played Rf5?? (white plays Rd6 etc.)
You can't even say that 1...Rf5 is an easy win for White and 1...Qc6 is not. The winning line is shorter after Rf5, for sure, but I think it is not clear that playing a losing move in a losing position must be caused by a bug
-
JVMerlino
- Posts: 1352
- Joined: Wed Mar 08, 2006 10:15 pm
- Location: San Francisco, California
Re: TTable clean
Indeed. I was just about to post the same thing. Most engines I checked prefer Rxh6, but give scores nearing -10 after only a minute or two. In the same amount of time, Rf5 gets scores that are generally around -12. Depending on the time control, choosing Rf5 may be reasonable.Sven Schüle wrote:That is not a "??" move. The position is already lost, there is no significantly better move available for black. The relative best seems to be 1...Qc6 but after 2.Qxh7+ Ke6 3.Rd4 the game is almost over.Henk wrote:In this position Skipper played Rf5?? (white plays Rd6 etc.)
You can't even say that 1...Rf5 is an easy win for White and 1...Qc6 is not. The winning line is shorter after Rf5, for sure, but I think it is not clear that playing a losing move in a losing position must be caused by a bug
jm