Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Speed and horizont effect

Author: Robert Hyatt

Date: 13:05:00 01/24/00

Go up one level in this thread


On January 24, 2000 at 15:34:39, Christophe Theron wrote:

>On January 24, 2000 at 09:10:12, Robert Hyatt wrote:
>
>>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.  :)
>
>
>
>I'm really curious about this. Using a SEE to "close" the search is in my
>opinion a beginner's mistake (no offense intended).
>
>It's the first thing I have done myself when I started programming chess, and I
>suspect many of us have followed the same path.
>
>But if somebody tells me it really works, then I have, once again, to reconsider
>seriously all I know about chess programming.
>
>It's not new anyway. Every now and then I realize how little I know. That's part
>of the fun.
>
>


Good question.  I did this around 1972 or so, and found it was a great addition
since I couldn't afford a q-search at the speed of 10 nodes per second or so.  I
too dropped this around 1978 when I went "full-width + q-search" to become yet
another "clone" of chess 4.x after the Frey book came out.

I'll let the 'author' of the suspected non-q-searcher speak up if he wants,
to avoid starting a long "did, did not, did too" type discussion.  I am not
sure it is totally bad with a decent search in front of it.  When I did it I
was doing a 4-5 ply selective search.  It was ok.  I went to a 4-5 ply full-
width search.  It was not ok after that.  Maybe after 13-14 plies it is OK
again?




>
>
>
>>>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 really know why my program solves this quickly. Probably other programs
>solve it quickly as well (I tried only with Tiger). Crafty has no problem with
>this for example.


It wasn't that fast... ie took ten plies.  Yes, a second or two on my quad,
but still not real fast...  CB was blazing away by 2 plies as the PV was long
at that point.  But it took a while to see chasing the king to safety and then
the inability to defend against the queen check/mate...



>
>At first glance I thought that the position would be really difficult to solve
>and I was surprised to see that Qxh7 was never considered (or soo quickly
>rejected), because I don't extend very agressively on checks. I have not
>investigated more.
>
>Actually I have just tried again, and Tiger would play Qxh7 from ply depth 1 to
>5. It realizes Qxh7 is losing (not a draw) at ply depth 6. Qxh7 does not appear
>on my listing because Tiger does not output the best lines in the first half
>second of the search.
>

That's pretty good/quick.  Takes me 4 plies more to see draw, 5 more to see
losing at depth=11...




>
>
>>I don't quite understand your low score for Ngh4 however...  but maybe it is
>>because you stopped output after depth=6?
>
>Yes, score for Ngh4 quickly raises after several more seconds. It reaches +1.00
>in 12 seconds. Then after 42 seconds it is already at +1.50.


OK.  I don't get Ngh4 until later, where I am apparently already deep enough
to see the +1.5 and up scores...




>
>
>
>    Christophe



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.