Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Finding mate in the quiesce search

Author: Tony Werten

Date: 06:58:59 08/24/04

Go up one level in this thread


On August 24, 2004 at 09:33:29, Alessandro Scotti wrote:

>On August 24, 2004 at 09:26:36, Uri Blass wrote:
>
>>On August 24, 2004 at 08:45:56, Alessandro Scotti wrote:
>>
>>>What value do you return when you find a mate in the quiesce search? I used to
>>>return a "mate" score but then I found this is not correct because many paths
>>>were not considered in quiesce, so sometimes I got a "mate in n" score at the
>>>root which wasn't really a forced mate. I've patched the bug by returning a
>>>fixed value for now, but... which value is best?
>>
>>I return mate.
>>I simply do not keep the mate backward.
>>
>>If I have RxR RxR mate then the capture RxR is not good and I return the same
>>value that I return when RxR is illegal.
>>
>>When you are in the qsearch you evaluate the position.
>>The evaluation of the position is a lower bound for the evaluation of the
>>qsearch.
>>
>>you cannot return mate against the side to move if the side to move is not in
>>position that you search all of it's moves and the worst that you can evaluate
>>for that side is the static evaluation.
>
>Ok let me put this in code. So far I have used:
>
>    return quiesce( ... );
>
>I will now use:
>
>    int result = quiesce( ... );
>
>    if( isMate(result) ) result = -5000; // Any "bad" value...
>
>Is that correct?

function quiesce(...):integer;
{
bestscore=evaluate();

for all capture_moves
   score=-quiesce(...)  **
   if (score>bestscore) bestscore=score;
next

return(bestscore)

}

** if this returns a "you're checkmated score" then it should never be higher
than bestscore.

Tony




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.