Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question for Hyatt about Alpha/Beta

Author: Gerd Isenberg

Date: 11:44:35 02/06/04

Go up one level in this thread


<snip>
>>You can easily mask out all the blocked pawns before you popcount, no problem.
>
>Yes, but not all blocked pawns are equal.  Sometimes the pawn is easily
>"unblocked", other times the blocker is almost impossible to remove.
>
>Even though I have not yet given bitboards a try (I will some day), I
>often try to think about how I would solve some specific evaluation
>problem by using bitboards.  Usually I find it tremendously difficult,
>and this is quite often because bitboards do not distinguish between
>different shades of gray.  Each square has either a 1 or a 0, there
>are no possible values in between.  I don't want to know just whether
>a pawn is blocked or not; I want a measure of how difficult it is to
>remove the blocker.
>
>Tord

You may use several bitboards for several "shades of gray".

The base with pawn bitboards is to keep disjoint sets of left and right attacks
and sets of stop squares (the pawns may push to, if empty). Next step is fill
up/down (both directions for both colors, front and "behind") all the pawns and
their disjoint attack sets.

With all these sets you can determine all pure pawn related sets like passers,
rams, levers, defended/defendable by own pawn, attackable by enemy pawn,
backward, isolated, doubled, tripled, duos, hanging duos, chains and whatever
more.

For a rammed pawn you may see if it is rammed "forever", since no own pawn (or
only backward or in recursive phases pawns already member of this "rammed
forever" set) may build a lever anymore.

In further eval phases piece interactions with these pawn sets take place. With
rams one may look whether the attack squares or the rammed pawn are strong or
safe outposts for friendly pieces, where an equal exchange may unblock own but
even the enemy pawn (which may become a passer, if the former was no duo or
defended/defendable and had no own pawn behind).

Considering the rank (side) is essentially, eg. to distinguish between advanced
"good" rammed pawns on 5-6. rank, like a "Nagel" on f6, or isolated b5:b6 ram
and backward a7 and bad ones on the 2-4.rank, defended by a bishop from back.

Even if it is (sounds) expensive, you work setwise and avoid branches and loops,
no matter about the popularity of sets (except "good predictable" != zero here
and there).

With appropriate register files (like Opteron's 16 gp-registers, Itanium or
SIMD-architectures like MMX/SSE or AltiVec) you may process a lot of independent
bitboard pattern in parallel (four or even more in one).

You already noticed Steffan Westcott's "Bitboard algorithm design principles"?

http://chessprogramming.org/cccsearch/ccc.php?art_id=252066
http://chessprogramming.org/cccsearch/ccc.php?art_id=261259

Gerd



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.