Author: Andrew Williams
Date: 01:23:48 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 My program uses MTD(f). It stores an upper bound and a lower bound for each position in the table (these are set to +HUGE and -HUGE in empty entries). It also stores a draft for each bound in the same hash entry (these are both set to -100 or something in an empty record). Cheers Andrew
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.