Author: Branislav Bezak
Date: 20:59:38 01/16/06
Go up one level in this thread
On January 15, 2006 at 11:44:09, Robert Hyatt wrote:
>On January 14, 2006 at 22:15:10, Branislav Bezak wrote:
>
>>I'm doing something like this:
>>
>>if(entry.Depth < depth)
>>{
>> // found entry but depth is less then required
>>}
>>else
>>{
>> if(entry.EvalType == EvalTypeExact ||
>> (entry.EvalType == EvalTypeBetaCutoff && entry.Score >= beta) ||
>> (entry.EvalType == EvalTypeAlphaCutoff && entry.Score <= alpha)
>> )
>> {
>>// what do I need to do here to detect immediate or future draw by repetition?
>> bestMove.m = entry.BestMove;
>> return entry.Score;
>> }
>>}
>>
>>Thanks, Branislav
>
>Nothing. The question to ask is "OK, when I _stogred_ this position, assuming
>draft > 0, why didn't I find the repetition when I searched below this node,
>before I stored the result? Answer that and your problem will go away.
>
>If you say "but wait, I stored it with draft = 0, so I didn't do repetition
>checks in the q-search" I'd respond, fine, but we are on the next iteration, so
>we are going one ply deeper, your old draft is no good. If we are on the same
>iteration, there is no way to find the draw anyway since we are not going deep
>enough...
>
>Note also the "bestMove.m" above won't work for all three cases. In the case of
>a fail high (you store a "LOWER" indication) or an exact score (you store an
>"EXACT" indication) you have a best move. But not on a fail low. Storing a
>best move there will make your search tree bigger because the best move is
>always searched first, and in that case it is not the best move but a random
>move, since it is impossible to find a best move when you search all moves and
>each one fails low.
I think that in my case this is happening: let's say that in move 60 I did depth
6 search and found an exact score on a position and stored the best move. Ten
moves later I got to the same position, estimated that in my time per move I can
do depth 6 search, looked into TT and found exact score with best move. I did
not search, did not do anything to detect draw, just made the stored best move.
So at least two positions already repeated twice which gives my opponent
opportunity to draw if he is able to repeat one of them.
Do I need to erase the position from TT ones I make it ? Can I make move stored
in TT or I always have to search at least depth 1 ?
Thanks for your input; it's very helpful to get feedback from someone who
understands the problem well.
Branislav
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.