Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash Tables

Author: Robert Hyatt

Date: 15:05:01 01/08/99

Go up one level in this thread


On January 08, 1999 at 15:54:18, Marc wrote:

>On January 08, 1999 at 00:08:41, Robert Hyatt wrote:
>
>>On January 07, 1999 at 23:53:36, James Robertson wrote:
>>
>>>Hi,
>>>I have just started implementing hash tables into my program. Already, I have
>>>run into *major* problems. Most of them I can probably fix on my own, but a few
>>>I need help with:
>>>
>>>Problem #1 Out of a search of maybe 700k nodes (counting q-nodes), I will only
>>>get maybe 6k positions that the program attempts to enter into the tables! What
>>>is a reasonable number of storage attempts for a program during a search of that
>>>length?
>>>
>>
>>something is wrong.  Whenever you exit from your recursive search call, you
>>should do a HashStore() operation...  not just when you fail high or back up
>>a good score, but also when you simply back up alpha because all moves were
>>refuted...
>>
>>
>>
>>
>>>Problem #2 I get tremendously few hits, but that is probably because of problem
>>>#1.
>>>
>>>I figured these would be the best solutions to my problems:
>>>
>>>Solution #1 Someone posting a simple alpha-beta function somewhere where so I
>>>can see where what hash stuff (probes, etc.) goes where.
>>>
>>>Solution #2 Someone also explaining the above code.
>>>
>>>Solution #3 Someone speculating on what I might be doing wrong (less crucial).
>>>
>>>Please help!!
>>>James
>>
>>
>>look at _every_ return from your search function.  If there is any path out
>>of search, except at the top where you detect a repetition or do a hash lookup
>>and get a hit, you need to fix that so that you always store the search result
>>before exiting.
>
>Does that include quiescence nodes?  I store all nodes up to depth+1 ply (ie. at
>search depth 4, all nodes at ply <= 5 get stored.)  Is it better just to store
>*all* nodes?


that is a "religious" question.  I have hashed q-nodes, and not hashed q-nodes.
I found it a complete "break even" affair and so don't hash them to make the
code smaller and simpler in quiesce().

YMMV of course...



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.