Author: Robert Hyatt
Date: 07:43:22 07/20/99
Go up one level in this thread
On July 20, 1999 at 05:47:04, Andrew Williams wrote: >On July 20, 1999 at 02:20:03, Scott Gasch wrote: > >> >>Ok, I've heard people talking about pawn hash tables and this got me thinking >>about them. I am not sure how to do it -- >> >>1) if you just hash 8 pawn locations and an associated evaluation that is pretty >>easy. It's a nice small number, can fit in memory, etc... However, you can't >>recognize passed pawns becasue you don't know where the enemy pawns are? >> >>2) if you make a table with all 16 pawns in all possible configurations I >>calculate a total of 1120853258472 possibilities. That requires quite a bit of >>memory... ;) >> >>3) do you mean just hash the recent scores for pawn structures? This way any >>node that has the same pawn structure anywhere in the tree can get the pawn >>score instantly? >> > >Yep. You make a hash key just like your normal hash key except that you only >include the positions of Pawns in it. You can then hash any information that >only pertains to Pawns in your Pawn Hash Table. A tip - don't include any >scoring that depends on anything not in this pawn hash key, or it won't work. >In PostModernist, I can switch off pawn hashing, so that I can check that I >get *exactly* the same nodes with it and without it. That's very important. >In my case, the score for a passed pawn includes whether it is under attack >and whether it can advance safely. Because of this, I don't hash any position >where there's a passed pawn, as this attack/advance information depends on >enemy Pieces as well as Pawns. > > >Andrew Williams A much better approach: in the pawn hash table, store a map that tells which pawns are passed. Do all the normal pawn scoring, and basic passed pawn scoring and hash that too. Then, where you want to do things with pieces (I decrease the value of passed pawns if they are blockaded, and increase their value as pieces are traded, for example) I do all of this in another procedure. But that procedure doesn't have to scan all the pawns looking for passers, it has a bitmap that tells it which pawns are passed. (Actually my bitmap tells which file contains a passed pawn)... there you get the best of _both_ worlds..
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.