Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Speed and horizont effect

Author: Robert Hyatt

Date: 06:10:12 01/24/00

Go up one level in this thread


On January 24, 2000 at 03:25:16, Christophe Theron wrote:

>On January 23, 2000 at 17:03:49, Robert Hyatt wrote:
>
>>On January 23, 2000 at 14:06:46, Peter McKenzie wrote:
>>
>>>On January 23, 2000 at 10:07:36, Robert Hyatt wrote:
>>>
>>>>On January 22, 2000 at 20:43:22, Peter McKenzie wrote:
>>>>
>>>>>On January 22, 2000 at 17:40:10, Robert Hyatt wrote:
>>>>>
>>>>>>On January 22, 2000 at 03:12:53, David Blackman wrote:
>>>>>>
>>>>>>>On January 21, 2000 at 11:31:06, Robert Hyatt wrote:
>>>>>>>
>>>>>>>>The solution to the horizon effect is depth.  And extensions.  The most common
>>>>>>>>horizon effect type of move is a check, which constrains the opponent to react
>>>>>>>>to the check, and removes 2 plies from the depth.  Extend on the check and you
>>>>>>>>cut the loss by 1 ply.  A capture/recapture is the next most likely cause, as
>>>>>>>>a capture must either be followed by the recapture, a different capture to
>>>>>>>>maintain material balance, or a check.  Again you lose 2 plies.  And extending
>>>>>>>>on a capture/recapture pair will recover one of those plies.  The capture,
>>>>>>>>check, get out of check, recapture group of moves is harder of course...
>>>>>>>
>>>>>>>Yes. You need extensions. Depth won't solve it on its own, but will make the
>>>>>>>program stronger.
>>>>>>>
>>>>>>>Recently i have tried a program that usually gets to 14 ply fairly quickly, but
>>>>>>>has almost no extensions. It plays reasonably well most of the time, but a
>>>>>>>couple of times i've seen it make obvious tactical errors. I mean obvious to me,
>>>>>>>without computer assistance, and i'm a 1500 player.
>>>>>>>
>>>>>>>Careful analysis of the positions showed it was the horizon effect. A simple
>>>>>>>tactic of 3 to 6 plies apparent depth was being missed because the computer
>>>>>>>could play a series of meaningless and perhaps slightly bad delaying moves to
>>>>>>>push the problem out past 14 plies so it couldn't see the main tactic.
>>>>>>
>>>>>>
>>>>>>reaching a depth of 14 plies should hide most horizon effect problems from any
>>>>>>but the very strong tactical players.  But getting to 14 plies sounds impossible
>>>>>>for a primitive program, without some sort of selectiveness... and _that_ will
>>>>>>certainly cause tactical oversights...
>>>>>
>>>>>I think that 14 ply using nullmove pruning (R=2) and no extensions (not even
>>>>>check) and no fancy quiescence would still be prone to some quite bad tactical
>>>>>mistakes.
>>>>>
>>>>>Take the following classic type of position for example:
>>>>>
>>>>[D]5k2/1p5r/3pp3/p2p4/1b1P1P2/qP1Q1NP1/P1P3N1/1K6 w - -
>>>>>
>>>>>Its obvious to a human that after Qxh7?? Bc3, white will be mated.  The tricky
>>>>>thing for a program is to wade thru. the mindless checks by the white queen, and
>>>>>of course the null movers have a little trouble with the Qb2# threat.
>>>>>
>>>>>I think a vanilla 14ply null mover without any extensions would have a tough
>>>>>time avoiding Qxh7 though - even at depth 14.
>>>>
>>>>
>>>>
>>>>
>>>>I think a 14 ply search will see this.  It takes Crafty 10 plies to see
>>>>Qxh7 drop to draw, and it drops every move after that.  At depth=10 Crafty
>>>>switches to something else.  I would expect a 14 ply search to get a 'sniff'
>>>>of this...
>>>
>>>What is the 10ply PV of crafty here?
>>>How many checks does it contain?  If it contains more than 4 checks, doesn't
>>>that mean a 14ply search without check extensions wouldn't find it?
>>>Also, are you using a mate threat extension?
>>>
>>
>>I use the null-move search mate threat extension...   here is the PV:
>>
>>
>>               10     7.27   0.00   1. Qxh7 Bc3 2. Qh6+ Ke7 3. Qg7+ Ke8
>>                                    4. Qg8+ Ke7 5. Qh7+ Kf8
>>
>>this on my sony notebook.
>>
>>>>
>>>>And yes, some positions with no extensions will look ugly...  but think of all
>>>>the good positional things a 14 ply search would see..
>>>
>>>Yes, I think I'd like my program to be able to see 14ply :-)
>>
>>
>>we had strong programs in the 70's that did just this.  No extensions, no
>>q-search (Heck, I think we have one strong commercial program with _zero_
>>q-search today)
>
>
>Which program are you thinking about?
>
>Actually I have found that throwing out the QSearch makes my program slower!
>


I suspect that one commercial program is doing no capture search, but may be
using a static exchange evaluator to prevent the last move in a PV from
being an outright blunder.  Seems to be working.  No names to protect the
guilty, however.  :)




>
>BTW here is the output of the Rebel-Tiger for this position.
>
>Tiger rejects Qxh7 in less than a third of second (K6-2 450MHz, 8MB HT).
>
>N6     0.33s  c3                                                          -6.01
>N6     0.60s  c3 Rc7 Qg6 Bxc3 Qf6+ Rf7 Qd8+ Kg7                           -2.44
>N6     0.77s  Ne3                                                         -2.43
>N6     0.82s  Ne3 Rh1+ Nf1 a4 g4 Ke7 f5 exf5 gxf5                         -2.12
>N6     0.93s  Nge1                                                        -2.11
>N6     0.99s  Nge1 Rc7 Qg6 Bc3 Nd3 Re7                                    -1.20
>N6     1.10s  Ngh4                                                        -1.19
>N6     1.21s  Ngh4 Rg7 Ng5 Ke7 c3 Rxg5 fxg5                               -0.32
>
>
>
>    Christophe
>
>
>


you probably do checks in the q-search.  I don't.  That makes a big difference
here.  Cray Blitz drops QxR after 4 plies, 2 milliseconds.  It sees draw at
that point.

I don't quite understand your low score for Ngh4 however...  but maybe it is
because you stopped output after depth=6?




>> just a fast search with a very primitive eval was enough
>>for "L'exentrique" to give lots of people (programs) fits...
>>
>>BTW in the above, after 12 plies on mhy notebook, Ngh4 is +2.23



This page took 0.01 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.