Author: Andrew Williams
Date: 08:44:26 07/20/99
Go up one level in this thread
On July 20, 1999 at 10:43:22, Robert Hyatt wrote: >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.. That's very good advice. Thanks. 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.