Computer Chess Club Archives


Search

Terms

Messages

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
>>(http://members.home.nl/matador/chess840.htm#QS) 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
>>2.
>>
>>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;
>>   }
>>   MAX_CHECKS_DEPTH = MAX_CHECKS_DEPTH - 1
>>
>>   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.


Uri



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.