Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interesting mate test for hashing

Author: Robert Hyatt

Date: 07:13:58 09/12/99

Go up one level in this thread


On September 12, 1999 at 00:50:23, Dave Gomboc wrote:

>On September 11, 1999 at 23:25:22, Robert Hyatt wrote:
>
>>On September 11, 1999 at 23:03:25, Bas Hamstra wrote:
>>
>>>
>>>I'm working on it too, based on your advice... I understand the principle: it's
>>>cheaper to prove a move is worse than the first move, than to determine it's
>>>exact score.
>>>
>>>You say PVS gives you as least 10% over alphabeta%. Others have reported that
>>>MTD(f) gives you at least 10% over PVS (someone mentioned 15%).
>>>
>>>ab      100.000 nodes
>>>PVS     90.000 nodes
>>>MDT(f)  81.000 nodes ???
>>>
>>>What is your opinion on this? Is there any reason to not do MDT(f) right away?
>>>
>>
>>
>>mtd(f) has its own unique problems.  (a) you need a stable evaluation, not
>>one that varies widely in the scores it produces.  (b) you have hashing issues
>>to resolve, in that you really need to store two bounds, since every mtd(f)
>>search fails high or low, and since you keep re-searching after shifting the
>>root window...  you need both bounds so that when you get a fail-low in a
>>position, you can also remember the fail-high that happened when the window
>>was different...  (c) lazy eval is a killer because you need to use fail-soft
>>to get the best bound back to the root, and lazy eval tears this up badly...
>>
>>so there are lots of problems to solve...  I don't use mtd(f) and don't plan
>>to do so.  Whether you get that 10% depends on a _lot_ of things.  When I tried
>>this, the best I got was 1/2 the speed of my PVS code... because of my eval and
>>lazy exits mainly...  I'm not willing to reduce the size of my tree by maybe
>>10% with mtd(f) but make my program 2x slower by turning off lazy eval.
>
>You don't need to turn off lazy eval completely to use mtd() methods.  Don
>Dailey already explained this in an earlier post.  Instead, base early-exit
>decisions on the established score range at the root instead of locally.
>
>Dave


That was known when I worked on it, or at least it was obvious to me... but it
didn't help a lot because my eval can produce some pretty wild fluctuations.
And then there were the hashing problems.

To make this work, I think you are going to have to commit to using it for a
year or longer, so that get a feel for the problems and have time to work them
out.

But in my case, it just doesn't work.  You can't do a bunch of iterations and
come out ahead.  And if your eval has lots of 'big' terms, there is no way to
zero in on the true score quick enough... at least that I could discover...



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.