Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bitboards versus other representations

Author: Roy Eassa

Date: 14:59:03 10/01/01

Go up one level in this thread


On October 01, 2001 at 16:59:02, Robert Hyatt wrote:

>On September 30, 2001 at 09:28:09, José Carlos wrote:
>
>>On September 30, 2001 at 06:25:24, Uri Blass wrote:
>>
>>>On September 30, 2001 at 06:15:44, José Carlos wrote:
>>>
>>>>On September 29, 2001 at 20:15:16, Gareth McCaughan wrote:
>>>>
>>>>>José Carlos wrote:
>>>>>
>>>>>>  The point is not the move, but the eval. The program must
>>>>>> know white is winning:
>>>>>>
>>>>>> [D]R4rk1/5pp1/5q1p/1p1Qp3/8/1B6/1PP2bPP/5K2 w - - 0 1
>>>>>>
>>>>>>  Qxf7+ and after the changes, the pawn ending is won.
>>>>>
>>>>>Crafty 18.11, Athlon 1GHz, has +0.8 after 0.4 seconds (8 ply),
>>>>>rising to 0.93 after 11 seconds, 1.17 after 28 seconds, 1.36
>>>>>after 6 minutes. It plays Qxf7+ at all depths.
>>>>>
>>>>>--
>>>>>g
>>>>
>>>>  It doesn't surprise me at all. Crafty is probably the best in the world
>>>>evaluatiing pawn endgames.
>>>>
>>>>  José C.
>>>
>>>How is it possible?
>>>
>>>Crafty is a free program so I expect at least a small part of the programmers to
>>>learn from Crafty about the evaluation of pawn endgames and add more knowledge.
>>>
>>>Uri
>>
>>  IMO, this is possible because Crafty is a bitboard engine, and most (if not
>>all) commercials aren't. Bitboards, if you're an expert as Bob is, are great to
>>evaluate pawns. You can make very complex calculations with just some logic
>>operations.
>>  Also, Bob has more experience in computer chess than most of the commecial
>>programmers, so it's not suprising he's able to understand things most
>>commercial programmers aren't.
>>  Of course, being open source, other programmers can "copy" ideas but you know
>>each program is different; what works nice for you might not work at all for me.
>>What Bob does so fast with BB, could be too slow to do with 0x88 and thus, not
>>worth implementing.
>>  This is just a guess; you asked "how is this possible". It is possible, but I
>>don't know the datails of every program, of course.
>>
>>  José C.
>
>
>That is always an issue.  I can do some things in bitboards that would be too
>costly in arrays.  There are probably some things in arrays that would be
>too costly in bitboards (fortunately I have _both_ available in Crafty, when
>you count the PieceOnSquare() array.
>
>This is also true based on architectural considerations.  There are things I
>did in Cray Blitz that I can't afford to do in Crafty.  And won't until we
>get good vector throughput on a microprocessor.
>
>My "blocked pawn" code would be messy on an array implementation.  Because it
>is a "search" of sorts that says "which pawns can advance, and how far, if I
>ignore pieces and just consider pawns.  I then use this to see which pawns can
>not be defended by pawns, which pawns can't advance because they would be
>attacked by more pawns than they are defended by, and so forth.  It becomes
>very simple to do this with bitmaps.  It would be very messy (and I didn't do
>it in Cray Blitz because I never thought of a good way to do it since we didn't
>use bitmaps there) without bitmaps.  Perhaps doable very similar to the way
>I have done it. But very messy.


Having learned about bitboards and all the clever things that can be done FAST
with them, I am surprised to learn that manh of the top PC chess engines do NOT
use them.  (I know Crafty does.)  That leads me to a couple questions:

1. Can anybody provide a list showing which major (top-20 or so commercial and
amateur) engines use what board representations?

2. What factors counterbalance bitboards' advantages (i.e., what's faster in
other representations)?



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.