Author: martin fierz
Date: 15:29:53 02/11/04
Go up one level in this thread
On February 11, 2004 at 18:13:25, Dann Corbit wrote: >On February 11, 2004 at 18:01:44, martin fierz wrote: >[snip] >>hi dann, >> >>i am quite aware that a normal hashtable works as you say - store a key and a >>score. but really, i think that is a much too simplistic view of pawn structure. >>pawns interact with pieces in complex ways, and i basically would like to store >>the information i think important about pawns in the pawn hashtable, to retrieve >>them quickly later. i can also imagine storing a "baseline score" for the given >>pawn configuration. but i really want interactions with pieces too, and as i >>can't hash scores for that, i'd have to save intermediate computations (such as >>connected passers, or potential levers etc) in the pawn hashtable, and then use >>them for the interaction terms. > >I bet it will be more expensive to store all that stuff in the hash table and >try to reuse it than to recalulate it. one hashlookup will cost something like the average memory latency for non-cached stuff. that's probably around 50-100 processor cycles. if there are more than 100 processor cycles in what i store, i should be fine. >The best thing about the pawn hash table is that the kings and the pawns move >slowly. You don't see a ton of rapid change and so a small table gives a lot of >hits. If you want to store things about rooks backing pawns and other things of >that nature, I think the table will change quickly. What will you have? An >ordinary hash table entry. So why bother with it? nope, that's not the idea. i want to store pawn stuff only, of course. but instead of keeping a score, i would store, for example, a passed pawn bitboard; or a bitboard with all bits set behind passed pawns. then a simple & with the rook bitboard gives me supported passed pawns. you can imagine more complex stuff to do, like you could look at the pawn structure and produce a bitboard of squares where you think your king is safe and where not. then again, a simple & gives you the answer. >But it would be nice to experiment both ways and find out what works better. of course :-) >Personally, I would start simple and add things. If the thing I added made it >slower, I would >#if 0 /* Here is a bad idea that I tried: */ >// old code >#endif >around it. i do that all the time too :-) cheers martin
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.