Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: quiesce node explosion

Author: Uri Blass

Date: 07:05:13 01/26/04

Go up one level in this thread


On January 26, 2004 at 09:52:01, José Carlos wrote:

>On January 26, 2004 at 03:36:56, Uri Blass wrote:
>
>>On January 26, 2004 at 02:53:37, José Carlos wrote:
>>
>>>On January 24, 2004 at 17:12:45, Tord Romstad wrote:
>>>
>>>>On January 24, 2004 at 15:57:50, Mike Siler wrote:
>>>>
>>>>>In an average middlegame position, around 80-85% of the nodes my program
>>>>>searches are quiesce nodes. I have a static exchange evaluator and I only search
>>>>>captures with SEE value > 0. It seems like other engines are always under 25%
>>>>>qnodes. What else should I be doing to reduce these numbers?
>>>>
>>>>Use the SEE more aggressively.  When the static eval is below beta, but
>>>>static_eval+(value of capturing biggest hanging enemy piece) > beta+margin,
>>>>return beta.  This is too risky unless your SEE is very sophisticated.
>>>
>>>  This doesn't make sense unless you do a real qsearch in your SEE, which is
>>>ridiculous of course.
>>
>>I do not do it but it is not ridicilous and I may try to implement it because it
>>is possible to do faster qsearch in the SEE that only verify that the opponent
>>cannot have big profit from his reply(if you capture the queen and you expect a
>>score of 7 pawns above beta then it may be enough to verify that the opponent
>>cannot reply by capturing the queen or the king(in case that you consider making
>>also illegal moves) and it is faster than finding that he has no possible
>>capture).
>>
>>Uri
>
>  I didn't mean ridiculous as an offense, in case it was not clear (sorry for my
>bad english). I meant that doing a qsearch inside SEE does not make sense (to my
>eyes) because you already have one qsearch! But what you say is interesting. If
>I understand correctly, you mean "my (normal) SEE says I'm a rook up after this
>capture, then my special SEE checks if the opponent can make a good capture
>after mine somewhere else on the board which wins at least a rook (+- margin of
>course)". But that's actually what my qsearch (in Anubis, not Averno) does
>(among other things). I try SEE, it says the capture looks good, I make the
>capture and call qsearch again (only difference with your approach?) which
>generates all captures for the opponent, order them according to SEE and checks
>if at least the first one has a chance to raise the eval near alpha. Otherwise
>it fails low. Isn't that pretty standard? Does your idea (no qsearch call)
>really improve performance?
>
>  José C.

I guess that it can improve performance because you do not need to generate all
captures for the opponent but only check that the opponent cannot capture one of
your heavy pieces.

makemove for me also update some information that I do not need like attack
information so for me saving it can be also be productive because if none of
white's heavy pieces is attacked by black than in part of the cases it is easy
to detect that a good capture of white cannot change that fact.

If the queen at d1 was not attacked before a5*b6 then it cannot be attacked
after it.

There are cases when it is not trivial d2xc3 may expose the queen at d1 to
attack.

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.