Repetition check

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Repetition check

Post by bob »

Tom Likens wrote:
hgm wrote:
Tom Likens wrote:To me this doesn't make intuitive sense. What was the reasoning behind it?
The most likely explanation is that the null-move reduction is more than the search can afford when you allow a null move every other ply. So forbidding the null move when there already was a null move two ply earlier effectively undoes part of the reduction. (E.g. with R=2 after two null moves you reduce 4 ply, but with R=3 it would be 6, which is too much and makes you tactically blind. Forbidding the second leaves you at a reduction of 3 ply, which is still OK.)

The null-spanning replies are then just used as a kludge to forbid the second null move for the side that is ahead (because it would lead to a rep draw, which is a fail low when your root score is positive). It doesn't have any effect when you are behind, but something is better than nothing at all.
That's interesting. I wonder if anyone has experimented with reducing the null-search reduction value 'R' value depending on how many null moves have already been made to reach this position? It seems like it might be a way to remove a bit of the null-move induced blindness that this theoretically (and accidently) helps.
Yes. It was quite common for a while to use a variable R. The only useful R restriction I found was that of not allowing R to reduce the depth to zero, because that would instantly hide any mate threats on the board (prior to qsearch checks).