Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE Result

Author: Stuart Cracraft

Date: 10:24:37 08/12/04

Go up one level in this thread


On August 12, 2004 at 10:42:20, Tony Werten wrote:

>On August 12, 2004 at 10:18:45, Stuart Cracraft wrote:
>
>>Here is the result of the 30 second per position test on 300 positions
>>using nothing, see>=0 to search a capture, see having to bring the score
>>within alpha and a margin (futility/delta), and with both.
>
>I'm not sure how it is usually done, but I don't think it is safe to prune the
>see score against alpha but rather the captured piece value. Else it makes your
>qsearch even more blind.
>
Hi Tony,

What I do is this:

quiesce
:
  baseval = eval(bd);
:
  while next capture move available; do
#define MARGIN 200     // 200 millipawns, 1000 = 1 pawn in my program
    delta = MAX(alpha-MARGIN-baseval,0);
    seeok=see(bd,qml[mvi].to);
    if (seeok < delta || seeok < 0) { skip this capture move }
    else {
      make capture move
      search capture move
      unmake capture move
      look for cutoff, etc.
    }
  endwhile
endquiesce

The part about the delta is the same as what GNU 5 presently does.
The other part of seeok < 0 is based on Bob
I am thinking that instead of using MARGIN of 200 I should just use
maxposnscore[sidetomove] since this is a dynamic maximum positional
score calculated for the side on move.

The above, separately and together, have been tested and do not provide
any huge improvement over using neither in a fixed time search. However,
in long fixed depth searches a 50% nodes reduction and 50% time reduction
has been seen.

Stuart



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.