Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Q: pawn hash?

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.