Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Test position - Dragon

Author: Will Singleton

Date: 16:00:45 06/05/04

Go up one level in this thread


On June 05, 2004 at 15:42:51, Dieter Buerssner wrote:

>On June 05, 2004 at 12:32:47, Will Singleton wrote:
>
>>On June 05, 2004 at 10:13:35, Anthony Cozzie wrote:
>>>OK, as has been pointed out by about 25 people, the mistake is not Nxe4, but
>>>Bxh6 (a move which somehow I conviently omitted from the my line).
>>>
>>>3q1rk1/pp1bppbp/3p2pB/8/3Nn1P1/2P1QP2/P1P5/2KR3R b - - 0 18
>>>
>>>Even this one is pretty hard for Zappa, it needs 70 seconds to realize Bxh6 is
>>>losing and 6 minutes switch to Nf6.
>>>
>>>1... Bg7xh6 2. Rh1xh6 Ne4-f6 3. Rd1-h1 e7-e5 4. Nd4-f5 Bd7xf5 5. g4xf5 Qd8-a5 6.
>>>Qe3-g5 Qa5-a3 7. Kc1-d1 Kg8-g7 8. f5xg6 f7xg6
>>> = (0.50)	Depth: 14/31	00:00:46.41	37517kN
>>>1 ...Bg7xh6--
>>> - (0.25)	Depth: 15/30	00:01:08.74	55010kN
>>>1... Bg7xh6 2. Qe3xh6 Ne4-f6 3. g4-g5 Nf6-h5 4. Rh1xh5 g6xh5 5. Rd1-h1 Qd8-a5 6.
>>>Rh1xh5 Bd7-f5 7. Nd4xf5 Qa5xf5 8. g5-g6 Qf5xg6 9. Rh5-g5 Rf8-c8 10. Rg5xg6 h7xg6
>>> = (-2.83)	Depth: 15/34	00:03:02.47	147329kN
>>>1... Ne4-f6 2. Bh6xg7 Kg8xg7 3. Nd4-f5 Bd7xf5 4. g4xf5 Qd8-a5 5. Qe3xe7 Qa5xa2
>>>6. Qe7xb7 Qa2-a3 7. Qb7-b2 Qa3-c5 8. f5xg6 f7xg6 9. Rh1-e1 Rf8-c8 10. Re1-e7
>>>Kg7-h6
>>> = (0.18)	Depth: 15/36	00:05:34.28	269390kN
>
>>The time it takes to find Nf6 after seeing the problem with Bxh6 is rather long
>>for some programs.  For example, Crafty (3 min), Ruffian (1:30) and Zappa
>>(2:30).  This is because the problem occurs at a high search depth.
>>
>>Amateur does better in switching to the right move, taking only 10 sec.  It does
>>this by "cheating," which is to say, reducing the search depth when a large
>>score drop occurs.  I don't really see a downside to this.
>>
>>Crafty
>>14    191   11683 124623699  1. ... Bxh6 2. Qxh6 Nf6
>>14     16   30945 341466474  1. ... Nf6 2. Bxg7 Kxg7
>>
>>Ruffian
>>14 -161 10004 121228508  Bxh6 Qxh6 Nf6
>>14 -5   18402 223090636  Nf6 Bxg7 Kxg7
>>
>>Amateur
>>16 -243 12517 49364251 Bxh6 Qxh6 Nf6
>>13 -243 12517 49364252 Bxh6
>>13 87   13581 53146356 Nf6 Bxg7 Kxg7
>
>Yace is much worse, than all of those. Needs almost 3 min, to fail low (3 1/2
>min to resolve the fail low to -2 score), and 14 (! :-() minutes to come up with
>Nf6. Root move ordering is horrible. Nf6 is 35th out of 39 moves, that is tried.
>And now, you search all those 33 moves with a window at -2. Many things that got
>pruned away with a window close to 0, will not be prunded away now ...
>
>Another idea, that helps here. Early versions of Yace did not try to resolve the
>fail low first, but rather try the other moves first. This also helps
>significantly here. Now you try all the other moves with a window close to zero,
>and they will fail low with this window much faster, than with the -2 window.
>So, even with the same bad root move ordering, instead of 14 minutes, I get 7
>minutes. Sure, nothing to be really proud of, but I thought it was worth
>mentioning in the context of your idea.
>
>Regards,
>Dieter

Interesting.  Ok, the issue I'd like to address is the 14 minutes from the -2
score to the point of finding Nf6.  You reduce it to 7 minutes by not resolving
the fail low, but that's not the perfect solution, of course, 7 minutes in a
game is too long.

I think my idea has merit, and haven't seen any other engine do it.  For the
sake of argument, let's just assume that you resolve the fail low, then try to
find a better move.  At high depths, this will take a long time.  Move-ordering
is typically shot to hell, due to the lack of understanding about the position.

So, assume you resolve the fail-low at ply 15 to a -2 score.  You then store
that score in a root array which states that the root move Bxh6 is to be
immediately scored as -2 up to and including ply 15, and not searched until ply
16.  You then reduce the root search depth to 12 (or 10 or whatever seems to
work best in practice), and start again.  You then would search all moves other
than Bxh6 for plies 12-15.  The effect is that you get a new, reasonable move
almost immediately.  There are side-effects with the hash and with nested
fail-lows, but those are handled easily.

For slower, weaker engines like Amateur, it makes a measurable difference in
test suites and games.  I think it could also help the stronger engines, though
in practice, significant fail-lows at high search depths for strong engines are
relatively rare.  I think.



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.