Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Checks in the Qsearch

Author: Bas Hamstra

Date: 15:49:34 07/04/02

Go up one level in this thread


On July 04, 2002 at 13:13:10, Uri Blass wrote:

>On July 02, 2002 at 14:20:30, Bas Hamstra wrote:
>
>>On July 01, 2002 at 22:07:43, Robert Hyatt wrote:
>>
>>>On July 01, 2002 at 18:03:21, Bas Hamstra wrote:
>>>
>>>>On June 30, 2002 at 12:26:25, Robert Hyatt wrote:
>>>>
>>>>>On June 29, 2002 at 00:57:05, Peter McKenzie wrote:
>>>>>
>>>>>>On June 28, 2002 at 23:31:11, Robert Hyatt wrote:
>>>>>>
>>>>>>>On June 28, 2002 at 16:33:10, Scott Gasch wrote:
>>>>>>>
>>>>>>>>I've been experimenting with checks in the qsearch.  While implementing this I
>>>>>>>>ran across a couple of old posts from Bob who said, in essence: If side to move
>>>>>>>>is in check in the qsearch but has had a chance to stand pat at a previous ply
>>>>>>>>in the qsearch then the check is not forced and generating all replies to check
>>>>>>>>is wasted nodes.
>>>>>>>>
>>>>>>>>I am struggling with this idea.  If you are in check and have no good way out
>>>>>>>>your opponent will fail high and you will just stand pat where you could at a
>>>>>>>>previous ply.  I get that.  So is the idea to only generate responses to check
>>>>>>>>that have a chance at not failing low?  Maybe only capturing responses and
>>>>>>>>blocking or king flees?  Imagine you are in check and have no capture responses
>>>>>>>>so you conclude there is no good way out of check -- is it sound to return -MATE
>>>>>>>>to force your side to stand pat where it could have at a previous ply?  I
>>>>>>>>suppose the assumption here is that if you are in check and way below alpha
>>>>>>>>running away or blocking the check is not going to do the trick and you will end
>>>>>>>>up standing pat at a previous ply anyway.
>>>>>>>
>>>>>>>Here is the problem.  It is my move.  I can stand pat.  Or I can make a
>>>>>>>capture.  If I make a capture, you check me and now I have to get out of
>>>>>>>check and am mated.  You back up a mate score and I will refuse to make this
>>>>>>>capture and just stand pat.  So you can't _prove_ that every move leads to
>>>>>>
>>>>>>Sure, and thats just fine.  Your unsound capture is refuted, just as it should
>>>>>>be.  Therefore the score backed up will be more accurate.
>>>>>
>>>>>Wrong.  The q-search is _full_ of errors.  Assuming a capture is best when
>>>>>the opponent might have an impossibly strong threat move you don't look at
>>>>>and so you don't see it.
>>>>>
>>>>>
>>>>>>
>>>>>>>a mate, because whenever I get to stand pat, I stop the mate right there.
>>>>>>>
>>>>>>>The only way to fix this is to follow checks if and only if every move for
>>>>>>
>>>>>>Fix what?  I don't see anything that is broken.
>>>>>
>>>>>
>>>>>
>>>>>Fix the fact that you are causing your q-search to explode badly, where most
>>>>>of the time the search space you add does _nothing_.  It doesn't refute a
>>>>>capture, you just look at checks that are captures and make the other side
>>>>>look at all possible moves to be sure it isn't mated.
>>>>>
>>>>>I'm not about to say it isn't a good thing.  I do say that in lots of testing
>>>>>I decided that if I was going to follow checks, I was going to maintain the
>>>>>ability to recognize forced mates as a result.  Evading check after _any_
>>>>>capture in the q-search is highly expensive...  and will cost a ply easily
>>>>>in some positions, more in wildly tactical positions.  Without letting you
>>>>>find deeper mates at all.
>>>>
>>>>Have you ever self-played a qcheck version of Crafty versus a normal one? Just
>>>>try it. It sees WAY more. Nullmove is simply inaccurate without it.
>>>>
>>>>Bas.
>>>
>>>
>>>Yes I have.  Why do you think early versions did checks, while the current
>>>version does not?  I made this decision just before Jakarta after playing
>>>thousands of games with and without.  qsearch checks see _way_ more in
>>>some positions.  They see _way_ less in others.  The question is, which is
>>>most important.  I have voted with my "editor".  :)
>>
>>I have done many experiments too and it certainly works for me. But (as I once
>>read in another thread) you want to do checks everywhere and totally OR not at
>>all. IMO that's not the way to do it. According to MANY experiments I did, it
>>works best if you limit qchecks to the first 1 or 2 plies. It solves the
>>nullmove "blindness" for mates almost entirely. For me it costs 0,5 ply nominal
>>searchdepth. But this loss in depth is merely optical, because in selfplay (at
>>least in Blitz) the qcheck version wins with BIG margins.
>
>What do you mean by big margins?
>60%,65% or 70%.
>
>How many games did you play?
>
>Can you give exact results of your experiment?
>
>
>Thank in advance
>Uri

I think about 65-35  for my engine, at blitz. At longer time controls it seems
to even out a bit, but still somewhat stronger. I have not tested it at
extremely long time controls. Of course it also depends on the eval, with a
piecesquare program it might be somewhat different.

Best regards,
Bas.








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.