Material+Hash+Table

toc
 * Home * Evaluation * Material * Material Hash Table**

A **Material Hash Table** is used to cache once calculated material values for certain material constellations, considering not only the dot-product of the piece values, but material imbalance and even insufficient material. Of course, one has to take care the effort of hashing is not more expensive than the full calculation, assuming incremental update only for captures or promotions. Another pragmatical approach with todays computers and memory sizes is to use precomputed material tables.  =Chess 4.5= The Material Hash Table was first described by David Slate and Larry Atkin as used in Chess 4.5. Chess had following fairly complicated function of only the number of each type of piece on the board, to modify the material difference by a "trade down" bonus that encourages the winning side to trade pieces but no pawns:

> math \displaystyle Total Material Advantage = min (3100, MS) math and > math \displaystyle MS = min(2400, MD) + {MD*PA*(8000 - MT) \over 6400*(PA+1)} math

with MD as material difference computed by adding the standard values {100, 325, 350, 500, 900} of each piece and subtracting the total of the side with the least material from the side with the most, the winning side. PA is the number of pawns of the winning side, MT is the total material on the board.

The hash function must have three desired characteristics. First, it should be obviously faster than the function it is replacing. Second, it should distribute the positions that are likely occur in a single search, and third, it should be symmetric with respect to Black and White. Chess 4.5 had a material signature word, containing five nibble counters per piece type for each side, interpreted as 20-bit number each and also stored inside the hash entry to verify material signature when probing. The hash function used is the sum of the white side and black side, exclusive ored with the absolute value of their difference, folded over by further exclusive or to get a 7-bit number, the hash.

=See also=
 * Evaluation Hash Table
 * Hash Table
 * Interior Node Recognizer
 * Material Tables
 * Pawn Hash Table
 * Transposition Table

=Forum Posts=
 * [|Accessing Material Imbalance Information?] by Steve Maughan, CCC, December 19, 2013

=External Links=
 * [|Xiaoji Chen's Design Weblog » HashTable: An Algorithm for Material Reuse]

=References= =What links here?= include page="Material Hash Table" component="backlinks" limit="40"
 * Up one level**