Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Is Bitboard worthy?

Author: Vincent Diepeveen

Date: 06:09:07 10/17/00

Go up one level in this thread


On October 16, 2000 at 19:28:57, Bruce Moreland wrote:

>On October 16, 2000 at 06:32:53, Pham Minh Tri wrote:
>
>>I know that Bitboard makes move generation the fastest, but this structure is
>>also one of the most complicated. However, an old post said that the generation
>>function is not the key of success to chess program and the author illustrated
>>that after his optimality (which made that function work much faster), the speed
>>of system increased only 1 percent.
>>
>>As a result, my question is: is bitboard really worthy for implementation when
>>it takes a long time to program and more time to fix all bugs (maybe several
>>times bigger than the rest of program)? Or is it better if we use this time to
>>concentrate on hash table, null move threshold and so on? I plan that I will
>>forget the bitboard (at least in the first period) if it help me only few
>>percent.
>
>Bitboards are fine, but:
>
>The problem I have with these "which are fastest" threads is that they are like
>asking which is fastest:
>
>1) Jet airplane.
>2) Car.
>3) Bicycle.
>4) Feet.
>
>You can't answer this question, because I haven't told you where the course is
>or how long it is.  Some of these have high startup overhead.  Some are not
>adept at handling certain terrain.  Some are not maneuverable.  For example, if
>you are trying to go a mile in an urban setting, during a traffic jam, a bicycle
>is probably your best bet.
>
>OK, this analogy is stretching a bit, but my point is that move generation isn't
>the whole program, and the parts of the program affect each other.  You can't
>answer the question unless you have an idea how your choices affect the rest of
>the program.
>
>How you do move generation will affect how you do check detection, if you do

my check detection:  if( AttackTables[xside][kingsquare] )
                       flag |= kingincheck;

>that, and static exchange evaluation, if you do that.  Move generation can
>affect the terms you have available in the eval function, and it very obviously
>can affect the rate at which you can make and unmake moves.

>Back to the bitmap thing.  With bitmaps the way Bob does them you get quick move
>generation.  I think you probably get fairly slow makemove, compared to what you
>could get.  Maybe you get a quick in-check, I don't know.  You get eval terms.

nothing faster as O(1) lookup :)

>Is this good?  I don't know.  I think this stuff can be done faster, but you
>have to figure out how to get the eval terms.

i think bitboards do not give enough at 32 bits machines for sure
no matter what you plan to do with them. At 64 bits machine we can talk
about it. A combined approach seems best then. bitboards for pawn structures
and open file/rank detections, and other datastructures for the rest.

>bruce



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.