Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: programming questions

Author: Robert Hyatt

Date: 11:34:46 08/24/99

Go up one level in this thread


On August 24, 1999 at 13:20:48, James Robertson wrote:

>On August 24, 1999 at 10:05:53, Inmann Werner wrote:
>
>>On August 24, 1999 at 09:57:43, Robert Hyatt wrote:
>>
>>>On August 24, 1999 at 05:39:54, Inmann Werner wrote:
>>>
>>>>Hello all!
>>>>
>>>>I am again trying to tune my program, and came to some questions.
>>>>
>>>>1)
>>>>What to do with fail lows and hashing.
>>>>Put them in for move ordering? I think no.
>>>>
>>>>Put them in for hash hits?
>>>>I do, but I am not sure, it is good.
>>>>If I get a hash with fail low flag I check, if it is again a fail low and only
>>>>then I use it.
>>>>That makes a cuttoff for easy, not disturbing?
>>>>But in positions, i get differences, if I use fail low hash hits. Not much,
>>>>but...?
>>>>
>>>>What do you think about doing best?
>>>>
>>>>
>>>>2)
>>>>It disturbed me, that in some not clear positions the search often switches, and
>>>>that only for 1 point better (1/100 pawn) which is not real relevant, but costs
>>>>much time cause of the research.
>>>>So I thought about making the eval result not so perfekt (score=(score/2)*2).
>>>>Now it switches not so often, but in "normal" positions needs more nodes (less
>>>>cutoffs?).
>>>>
>>>>Is this idea dumb or worth thinking about it.
>>>>Makes a small evaluation, where much values of different positions give the same
>>>>value the search slow?
>>>>
>>>>Werner
>>>
>>>
>>>
>>>I don't quite understand, but you have only three cases to handle:
>>
>>Yes, I have always problems to say my problems in English :((
>>>
>>>1.  When you complete a ply, and the score you found was > alpha and < beta,
>>>you store the score, and EXACT.  If you later get a 'hit' and find this
>>>position, assuming the depth is sufficient, you just return value without
>>>doing any more searching at all.
>>>
>>
>>Clear!
>>
>>>2.  When you get a fail-high at a node, you store the value you got (which was
>>>>= beta) along with a flag LOWER (to note that this is a lower bound on the
>>>score, that it might actually be higher than this).  When you get a hit on this
>>>type of entry, you only need to verify that your current beta value is < the
>>>bound stored in the table, and if so, you return the table value without
>>>searching further.
>>>
>>
>>clear!
>>
>>>3.  When you get a fail-low at a node, you store the value (alpha or less)
>>>and a flag UPPER (this is the best you can do, the worst score possible could
>>>be even lower).  When you get a hash hit, and your current alpha value is > the
>>>table bound, you just return the table bound with no further searching.
>>>
>>>That's all there is to it...
>>
>>
>>Then you say, fail-low = UPPER entrys in hash should be used for hash probes!?
>>
>>My question. Should these entries also be used for move ordering?
>>
>>Werner
>
>How do you use hash entries for move ordering? Does it help?
>
>James

It is a terrific help.  First thing you do in Search() should be to probe the
hash table, as a hit prevents further searching of any kind.  If you find the
position, but the depth is not sufficient to use, or the bound that was stored
is not useful, you should still try the 'best move' that was stored in the
hash entry, before trying any other moves at all, including captures.



This page took 0.01 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.