Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: positions only one program can solve

Author: Robert Hyatt

Date: 14:08:49 07/12/98

Go up one level in this thread


On July 12, 1998 at 13:03:08, Roberto Waldteufel wrote:

>
>On July 11, 1998 at 21:03:15, Bruce Moreland wrote:
>
>>
>>On July 11, 1998 at 18:49:39, Roberto Waldteufel wrote:
>>
>>>I never reduce the depth when the side to move is in check, but I find that if I
>>>do the same for moves that administer check it sometimes blows my search sky
>>>high, hanging the machine for an inordinate amount of time. It's a pity, because
>>>I also found many times that this method discovered long mates as you describe.
>>>How do you overcome the problem of situations where the number of checks becomes
>>>excessive, eg a king being chased around the board by a queen that lacks
>>>supporting pawns or pieces to deliver a mate?
>>
>>I'll tell you what I discovered when I messed with this some time ago.  I'll
>>start at the beginning in the off chance that someone else is listening as well.
>>
>>The dawn of man extension is to extend when you check.  This seems to help
>>programs along certain tactical lines where the king is in trouble.  I do this,
>>I've always done it, and everything below here assumes that giving check is an
>>unqualified one-ply extension, that's a constant.
>>
>>If you try to be super-aggressive and extend both when giving check, and when
>>getting out of check, you'll simply blow sky high.
>>
>>So if the goal is to try to extend checks more, there needs to be some
>>constraint to the extensions.  An attempt at constraint involves only extending
>>when you are in check, and have exactly *one* legal way out.  This will appear
>>to work fine in most middlegame situations, and it will completely destroy some
>>of these long mate test problems.
>>
>>It is my opinion that there needs to be some further constraint on this
>>extension.  You'll see some positions bog, sometimes really badly.  I'm not sure
>>exactly why this happens, but your reasons for why it might happen seem good.
>>
>>I've done experiments with two ways to constrain this extension.  One is when
>>you only allow it to happen a couple of times along one line, and another is
>>when you somehow choose to only do this extension perhaps 75% of the time that
>>the conditions are met for it.
>>
>>Either of these seems to stop the bogging enough that your thing can still play
>>chess while using this extension.
>>
>>bruce
>
>Hi Bruce,
>
>Thanks for your excellent explanation. My mistake was that I had not thought of
>the 75% factor. This way makes a lot of sense, and I will definitely implement
>this. I don't think it makes a difference whether the actual extensions occur on
>the checking ply or the check evasion ply, as long as replies to checks are
>allways examined full width, so perhaps it would be simpler to do it all at the
>same node, like this:
>
>if side to move in check then
>  if only one legal reply then
>    newdepth=depth+0.75
>  else
>    newdepth=depth
>  end if
>else
> newdepth=depth-1
>end if
>
>Do you extend any replies to checks that have more than one choice? I can think
>of one or two interesting cases, like double check, or Bxh7+ when the Black king
>is on g8 and White has Nf3 and Qd1 (or Qe2). Maybe the 75% figure would need to
>be different for each case. Have you tried anything like this?
>
>Roberto


once you do singular extensions, as we did in Cray Blitz, this becomes moot,
because such a position is obviously "singular" by any definition you would
want to use.

But as far as working on the "one-legal-response" extension, Peter G once
suggested, and I tried in Cray Blitz, a modification he called "one sane
reply."  Here there may be multiple moves, but if only one is reasonable
then you extend that one anyway.  An example would be two moves, one moving
the king to a safe square, the other interposing a piece that can be captured
for nothing, still leaving you in check.  The king move would be extended
anyway.  When I started playing with this, I didn't like it, but later
found that "singular extensions" was just a general class of these types
of positions and our singular extensions code worked pretty well, although
it does have a high cost.

One thing I have planned is to try singular extensions again, using my
current fractional-ply increment (same algorithm as in Cray Blitz in fact.)
I had planned to do some further singular extension testing in CB, to see if
it would be useful to extend on positions where there are many moves but at
least 2 appear to be "singular" type moves.  Extending would be dangerous,
except that you *could* extend each 1/2 ply instead of 1, or extend each
of the two 3/4 ply rather than 1...  Lots of things to try here, once I get
singular extensions into crafty.  Right now I am staying busy with the SMP
search, which is certainly non-trivial to get right.



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.