Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: when to store nullmove failure in hashtable?

Author: Robert Hyatt

Date: 15:28:59 09/28/04

Go up one level in this thread


On September 28, 2004 at 16:33:40, martin fierz wrote:

>On September 28, 2004 at 14:59:37, Robert Hyatt wrote:
>
>>On September 28, 2004 at 13:59:58, Steve Maughan wrote:
>>
>>>Bob,
>>>
>>>>What I do is this:  When I get a hash hit, and the draft is not enough to let
>>>>me stop the search at that point, I then test the table draft against the
>>>>depth I would use for a null move search at this point. If the table draft is >= that depth, and the table entry says "No way I would fail high here" then
>>>>there is no point in trying a null-move search, if a normal move search would
>>>>not fail high...
>>>
>>>Interesting - I know that you alluded to this in the past but this is the first
>>>time the penny has dropped for me as to exactly what you're doing.
>>>
>>>So to use example numbers:
>>>
>>>Alpha = 100
>>>Beta = 101
>>>Depth to Go = 5 ply
>>>
>>>Hash Score = 50
>>>Hash Bound = UPPER
>>>Hash Draft = 4 ply
>>>
>>>In this case you'd skip the null move - seems sensible.
>>>
>>>Do you know how much is it worth in speedup?
>>>
>>>Thanks for the explanation,
>>>
>>>Steve
>>
>>
>>Since WAC141 has been a hot topic, here is crafty with the normal avoid-null
>>stuff as I explained:
>>
>>                9     3.95  -1.20   1. Kf1 a5 2. Rxh5 gxh5 3. Rxh5 Re1+
>>                                    4. Kxe1 Nxh5 5. Qg5+ Kf8 6. Qh6+ Kg8
>>                                    7. Qxh5
>>                9     4.42     +1   1. Qxf4!!
>>                9     4.67     +3   1. Qxf4!!
>>                9     5.16     +M   1. Qxf4!!
>>                9    50.78  Mat06   1. Qxf4 Bxf4 2. Rxh5 gxh5 3. Rxh5 Bh6
>>                                    4. Rxh6 Qh2+ 5. Kxh2 Kf8 6. Rh8#
>>                9->  50.78  Mat06   1. Qxf4 Bxf4 2. Rxh5 gxh5 3. Rxh5 Bh6
>>                                    4. Rxh6 Qh2+ 5. Kxh2 Kf8 6. Rh8#
>>              time=50.78  cpu=99%  mat=-1  n=79749173  fh=98%  nps=1.57M
>>
>>
>>Here is same thing but without the avoid-null stuff so it always tries a null
>>move:
>>
>>                9     3.93  -1.20   1. Kf1 a5 2. Rxh5 gxh5 3. Rxh5 Re1+
>>                                    4. Kxe1 Nxh5 5. Qg5+ Kf8 6. Qh6+ Kg8
>>                                    7. Qxh5
>>                9     4.40     +1   1. Qxf4!!
>>                9     4.75     +3   1. Qxf4!!
>>                9     5.22     +M   1. Qxf4!!
>>                9    49.51  Mat06   1. Qxf4 Bxf4 2. Rxh5 gxh5 3. Rxh5 Bh6
>>                                    4. Rxh6 Qh2+ 5. Kxh2 Re2 6. Rh8#
>>                9->  49.51  Mat06   1. Qxf4 Bxf4 2. Rxh5 gxh5 3. Rxh5 Bh6
>>                                    4. Rxh6 Qh2+ 5. Kxh2 Re2 6. Rh8#
>>              time=49.51  cpu=99%  mat=-1  n=80501452  fh=98%  nps=1.63M
>>
>>So about 1.5% better here.  Other positions might be even better...
>>
>>Note ignore the time and just look at total nodes.  second run was not a full
>>PGO compile...
>
>just a very short correction: it's 1.0% better, not 1.5%, do you still have one
>of those P4's with math bugs? :-)
>
>cheers
>  martin


No, that was my math bug.  I just did a quick subtract, got 1M and rounded to
1.5%... :)




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.