TTable clean

Discussion of chess software programming and technical issues.

Moderator: Ras

Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

TTable clean

Post by Henk »

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.
Joost Buijs
Posts: 1680
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: TTable clean

Post by Joost Buijs »

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.
User avatar
hgm
Posts: 28464
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: TTable clean

Post by hgm »

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.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: TTable clean

Post by Sven »

Henk wrote:In this position Skipper played Rf5?? (white plays Rd6 etc.)
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.
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: 1407
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: TTable clean

Post by JVMerlino »

Sven Schüle wrote:
Henk wrote:In this position Skipper played Rf5?? (white plays Rd6 etc.)
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.
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 ;-)
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.

jm