Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: stuffing moves in hashtable, fail low

Author: Jeremiah Penery

Date: 02:40:12 12/01/99

Go up one level in this thread


On December 01, 1999 at 04:43:06, Inmann Werner wrote:

>On December 01, 1999 at 04:27:03, Jeremiah Penery wrote:
>
>>On December 01, 1999 at 02:50:01, Inmann Werner wrote:
>>
>>>On November 30, 1999 at 20:04:00, Gerrit Reubold wrote:
>>>
>>>>Two Months (?) ago we had a thread "what should we store if all moves fails
>>>>low?" with the answer: Nothing! There should be a saving of a few percent of
>>>>treesize if you don't store "random" moves in the HT. Maybe this could be an
>>>>improvement of your algorithm?
>>
>>>Why stuff in nothing at fail low?
>>>fail low is bad for move ordering, so I do not use it there. Ok.
>>>But for normal hashing, I use fail low, if the value<alpha. At mate values, I
>>>give back something like mate in 500....(brings my prog to sometimes not show
>>>right "mate in #", bothers me not much)
>>>I overwrite fail low values first, cause they are the "less value" entrys.
>>>Why should I search all moves, only to recognize, that it again is a fail low?
>>>I see nothing good in it.
>>
>>The idea is that when you have a fail-high node, ALL of the next-ply moves have
>>failed low.  In this case, you should store nothing in the hash table, because
>>you don't have a good move to store.  If you do store a move here, it's as good
>>as storing a random move, because any of those moves can turn out to be the
>>WORST move.  They all failed low, and here the algorithm will not tell us which
>>one is the best; they must be re-searched.  Storing a move here will hurt move
>>ordering, because you keep getting hash-table hits that tell you to search this
>>move first, even if it turns out to be the worst move.
>
>Some misunderstanding maybe...

Probably. :(  It's probably because I'm not explaining myself well.

>I have a flag in the hash, if the entry was fail low or fail high. I never use a
>fail low move for move ordering!!!

This is good. :)

>The only info I use is, that the move failed low and the evaluation value it
>got. If the search window alpha-beta is not open enough, the move will fail low
>again. Why search again?

At a fail-high node, it means that all the opponent's next moves have failed
low.  If you don't research something, then what do you search?  You'll have to
research at least one of these with a wider window, or you will just keep
failing high because you're just taking "FAIL-LOW" from the hash table every
time.

>Also, if the value gives something like mate in n, i use it as mate in 500-n.
>The PV leads to a mate, why not use the information....

I wouldn't be too worried about this in any case, unless it says "Mate in X",
and then on subsequent moves it keeps saying "Mate in X" or "Mate in X+Y",
instead of "Mate in X-Z".  I.e., as long as it makes progress, it probably
doesn't matter.



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.