Author: David Fotland
Date: 09:08:12 01/15/98
I'm designing the static exchange evaluator for Blitzen, and it seems that a table lookup would be faster than the swap() function in Crafty. As you find all the attacks, build a signature that describes the attacks, and use it as an index into a table. I think with a 20 bit signature you would cover more than 99% of the cases. When the situation can't fit in 20 bits, you fall back on code like Crafty's. Is anyone else doing this already? I'm thinking of a signature like: for each side: 2 bits 0- no pawn attacks 1- 1 pawn attack 2- 2 pawn attacks 3- 1 pawn attack plus bishop xray 2 bits 0,1,2 minor piece attacks 3- bishop attack plus queen xray attack 2 bits 0,1,2 rook attacks 3- rook attack plus queen xray 1 bit q attacks 1 bit k attacks 2 bits 0-no other xray attacks 1-b behind q xray attack 2-r behind q xray attack 3-q behind p xray attack 20 bit total signature, so a 1 mbyte table can hold all the results. This assumes that all the SEE cares about is basic material, so bishop and night can have the same value. If someone else is doing this, I'm curious what signatures they are using and what table hit rates they are getting. David Fotland
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.