Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Quiescent search question to programmers

Author: Robert Hyatt

Date: 20:29:15 03/09/03

Go up one level in this thread


On March 09, 2003 at 16:03:45, Uri Blass wrote:

>On March 09, 2003 at 15:43:37, Russell Reagan wrote:
>
>>I think that most people subscribe to the school of thought that says that
>>quiescent search is not perfect, so do it fast and "good enough" for most
>>situations. If you could have a perfect quiescent search, what price would you
>>be willing to pay? One ply of full width search? Two ply? Time to depth takes
>>twice as long? I am interested what programmers with more experience than myself
>>think about this.
>
>If I have perfect quiescent search that give me exact evaluation of every
>position(win,draw or loss) then even paying 10 plies may do you unbeatable.
>
>I do not know what you mean by perfect qsearch.

The definition is trivial.  By definition the _only_ task for the q-search
is to take a position given to it by the normal search, and reduce it in
simplicity until there is _no_ dynamic characteristics left.  If that can
be done, then a "static evaluator" can give an accurate score that won't be
mislead by tactical considerations nor by positional traps.

Not possible to write a perfect one of course.  :)

>
>I think that the idea of Bas Hamastra to do checks in the first plies of the
>qsearch is productive.
>
>Bob tried a similiar idea that did not work but I understood that he only tried
>checks in all plies of the qsearch.

No.  I did as I did in Cray Blitz, which has been documented in the past in
several papers:  If, at a ply P in the q-search, the following conditions are
met, I will try to generate and search checking moves:

1.  At all q-search nodes, P-1, P-3, ..., P-n, my opponent was in check,


2. plus at a small number of nodes in the basic search he was also in check
(this to be sure that I don't follow a bunch of junk checks in the q-search
if the main search wasn't looking at tactical stuff too.)

If, at any P in the q-search, and

1.  at ply P-2, P-4, ..., P-n, this side is in check;

2.  The current side was in check in a small number of plies in the normal
search.

Then I would try all check evasions  by using the normal Search() code which
would recognize mates.

>
>I found that checks in the first plies of the qsearch did movei slightly better
>in test suites with no significant demage in games and my function to detect
>checks in the qsearch is a slow function that I need to improve.
>
>I think that other ideas may be also productive and detecting cases when the
>side to move is in trouble is important(checks are good candidates but it is
>possible to catch more cases and movei catch more cases but not enough).
>
>Uri



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.