Computer Chess Club Archives




Subject: Re: Rebel's long checks concept in QS

Author: Uri Blass

Date: 07:17:34 01/24/04

Go up one level in this thread

On January 24, 2004 at 09:34:49, rasjid chan wrote:

>On January 23, 2004 at 14:22:28, milix wrote:
>>I tried to implement the long checks idea of Ed Schröder
>>( but not worked for me.
>>Maybe my QS is not implemented correctly to have this checks concept but I can't
>>figure it by myself. I wish for some help here (maybe from Ed himself) :-)
>>In my main search, before I enter the QS I set the variable MAX_CHECKS_DEPTH to
>>My quiescent in pseudo code:
>>quiescent(alpha, beta)
>>   save the MAX_CHECKS_DEPTH
>>   score = full_evaluate()
>>   if (score < alpha) return score
>>   if (score > alpha) alpha = score
>>   if (side_to_move_is_in_check)
>>      generate_legal_moves()
>>   else if (MAX_CHECKS_DEPTH > 0)
>>      generate_good_equal_captures_queenpromotions_and_checks()
>>   else generate_good_equal_captures_queenpromotions()
>>   sort_the_moves()
>>   for each move in the list {
>>      make_the_move()
>>      score = - quiescent(-beta, -alpha)
>>      undo_the_move()
>>      restore MAX_CHECKS_DEPTH
>>      if (score < alpha) return score;
>>      if (score > alpha) alpha = score;
>>   }
>>   return alpha
>>Thanks in advance!
>quiescent(alpha, beta)
>  save the MAX_CHECKS_DEPTH
>  score = full_evaluate()
>  if (score < alpha) return score
>  if (score > alpha) alpha = score
>These lines WRONG.
>should be
>if (score > alpha){
>if (score >= beta) return score;
>alpha = score;
>Ed's article have alpha and beta reversed to the TSCP style.
>someone pointed this out to me.

I assume that the writer also does not use the tscp style based on his post so
your reply is not relevant.

He also does not call search before evaluating

I have today before rewriting my alphabeta immediately after make move
the following line

val = -alphabeta(depth - 1, -beta, -alpha);

I assume that both the writer of the original post have not it if they find that
the remaining depth is 0
and they first calculate extensions and if they find that the depth after
extensions is smaller than 1 they call qsearch without alpha,beta and not -beta
-alpha so being bigger than beta in my old code should be equivalent to being
smaller than alpha with the new code that I plan to write.


This page took 0 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.