Author: Christophe Theron
Date: 12:34:39 01/24/00
Go up one level in this thread
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.
>>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.
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.
>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.
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.