Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How I store and handle bounds (How to use hash to avoid NULL move?)

Author: Tony Werten

Date: 00:50:52 04/21/04

Go up one level in this thread


On April 20, 2004 at 21:33:01, Robert Hyatt wrote:

>On April 20, 2004 at 20:25:56, Sune Fischer wrote:
>
>>On April 20, 2004 at 15:57:20, Pallav Nawani wrote:
>>
>>>
>>>>So, Dr. Hyatt, what you're calling a LOWER flag is (I think) what I'm calling
>>>>HashFlagBeta, and what you're calling UPPER, I call HashFlagAlpha, becuase those
>>>>were the bounds that were exceeded. Personally, I hate this terminology...I wish
>>>>we'd use more friendly terminology like AtLeastThisScore or LessThanThisScore. I
>>>>think when I rewrite Trueno I'm going to do that, now that I understand
>>>>alphabeta a little better. But that's neither here nor there...how does this
>>>>look? Andrew
>>>
>>>This confused me a *lot* when I was programming my engine :-) I read beowulf's
>>>code and I saw UPPER/LOWER. I read Bruce Moerland's page and I saw
>>>HashBeta/HashAlpha. Only after much distress was I able to sort it out.
>>>
>>>But I could not figure out how hash entries could be use to avoid NULL move.
>>>How do I do that?
>>
>>If you have reason to believe a null move will fail-low, for instance
>>
>>if (flag==UPPER && score<beta)
>>   do_null = "not recommended";
>>
>>I use depth>=current depth.
>>If I read the code correctly then Crafty uses depth>=current depth - R
>>It seems theoreticly wrong, at least the way I do probes and stores.
>>
>
>
>Why?  You want to know whether the null search will likely fail high or low.  It
>is going to be done to depth-R so why can't you use that in the test???
>
>I don't see anything "theoretically wrong" with that...  I am going to do a
>search to depth-R, and if this hash entry suggests that such a search of a
>_real_ move will fail low, then not playing a move will be even worse...  No
>point in even trying the null-move.
>
>This was all explained in the Campbell null-move search paper years ago.
>Everyone I know does it this way.  Bruce, etc...

Writing it out makes it more clear.

For simplicity R=2

Depth left: 5
normally: WBWBW
after nm: BW

1 move for black left after nullmove so draft has to be 2 ie depth-(R+1)

Depth left: 6
normally:WBWBWB
after nm: BWB

2 moves left for black so draft has to be 4 ie depth-R

So R is always safe, and when there is an odd depth left, you could use R+1.

Tony

>
>
>
>
>
>>-S.
>>>Pallav



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.