Author: Bas Hamstra
Date: 01:24:02 12/07/00
Go up one level in this thread
On December 07, 2000 at 02:19:40, Leen Ammeraal wrote: >On December 07, 2000 at 01:28:35, Leen Ammeraal wrote: > >>On December 06, 2000 at 16:08:56, Robert Hyatt wrote: >> >>>On December 06, 2000 at 12:45:30, Leen Ammeraal wrote: >>> >>>>I have the impression that most chess programmers >>>>use their hashtables to store >>>>only one evaluation value, along with a flag >>>>denoting Lower, Upper, or Exact. >>>>Why not store both a lower and an upper bound, >>>>where lower = -inf or upper = +inf if only one >>>>real bound is available? A flag is then >>>>superfluous, since this follows from >>>>the two bound values. >>> >>>If you use mtd(f) you _must_ do this. For the other search approaches, it >>>probably won't help much at all, and it does use more memory. Nothing wrong >>>with trying it to see what you get, of course... >>> >>> >>> >>>>For example: >>>>LB UB Flag value (not stored) >>>>-inf 100 Upper >>>>-20 +inf Lower >>>>30 30 Exact >>>>This also offers the possibility to store >>>>two different bounds at the same time, as in >>>>LB = -50, UB = 70. >>>>This is the way I do it, but, unfortunately, >>>>my program is weaker than most others. >>>>Could this be because this idea of storing >>>>two bounds and no flag is wrong? >>>>Leen Ammeraal >> >>Do you mean: two ints when storing LB and UB >>while one int and one byte when storing >>a single bound and a flag? Yes, this makes >>a difference, so I will reconsider my design, >>also because of Cleveland's reply about different >>depth for the two bounds. He says you use two >>separate entries in Crafty, which I think >>I should do too. I assume you also use the depth >>values to compute the hash key, is that right? > >I actually meant the flag, not the depth, >as a possible addition to the position >to compute the hashkey. But on second >thoughts, I doubt if this would be efficient >in view of retrievals, for I do not like >to search the hash table three times, for >each of the flags Exact, Lower and Upper. >So I wonder how to proceed, for example, >if a lower bound has already been stored with a given >depth when, for the same position, an upper bound >has to be stored with a different depth. >I would much appreciate your help. > >Leen Ammeraal Personally I don't store them all in this case. What I do is lookup if the position is already stored, and then decide if it should be replaced or not. You could for instance replace only if the new to store depth is greater than the stored depth, or you could simply always store the last.
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.