Author: Rob
Date: 07:38:10 02/12/99
Go up one level in this thread
That is the whole purpose of a hash table. I >realize that initializing the hash table takes cpu time, but whether the hash >table is full or empty at the beginning of the move should not affect this. >Therefore I wonder why the Fritz and Junior engines do this. Don't they play a >little weaker because of this practice? >-- >Komputer Korner I personally do not understand the clearing of Hashtables while playing a game at all. If one is using extensive preprocessing for the evaluation function one could argue that for a reliable score of the hashed position one needs to clear it. This clearing would have the effect that there would be no hash entries from previous searches which a preprocessor might evaluated radically different. BUT Why not store the half move number of the actual game in the Hash Table. E.G. 1 e4 e5 2. Nf3 Nf6 3 Nxe5 if the program is about to move after Nxe5 the search would store all Hash entries with an additional Half Move Number of 6. So when ever it probes the Hash Table and finds an entry which is not stored with the current half move of the game it just ignores it. I reckon that with todays large Hash-Tables 128-256 Megabyte which are hardly filled even at tournement time controls this system would be much more effective than to clear the complete hash-Table A nice sideeffect could be that one can use this info for additional evaluation. E.G.: In order to lessen the preprocesser effect and still use hash info from previous searche, one could use all hash info which is only of a certain half move age. Or one could even enhance the evaluation to use the hash info and correlate it with the half move age (some sort of taking the result with a grain of salt).
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.