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.