I would like to see a table of the top 5 or 6 chess engines' implementations of the various common algorithms. It would be nice to quickly get an idea how different engines do their thing.
Probably can only be open source progs because algorithms of the closed source engines are not public.
For instance:
I'd like a to see a run-down of whether or not each engine implements eny of the following algorithms:
Piece-Lists
Piece-Sets
Bitboards
8*8 Board
Mailbox
0x88
15*12 Board
16*12 Board
Attack Tables
Incremental Update
On the Fly
Quad-bitboards
Nibble
alpha-beta
Negascout
MTD(f)
PVS
Aspiration
Fail-soft
iterative deepening
Transposition Table
... etc.
Programs:
========
1. Stockfish
2. Toga
3. Crafty
4. Glarung
5. Rybka (to the extne
The Algorithms of the Top Chess Engines
Moderator: Ras
-
wgarvin
- Posts: 838
- Joined: Thu Jul 05, 2007 5:03 pm
- Location: British Columbia, Canada
Re: The Algorithms of the Top Chess Engines
The devil is really in the details, though. I guess the best way to really grok how other engines do things is to read their source.
Making such a table sounds like a bunch of work...
Making such a table sounds like a bunch of work...
-
Aaron Becker
- Posts: 292
- Joined: Tue Jul 07, 2009 4:56 am
Re: The Algorithms of the Top Chess Engines
I don't know the answers to most of these (I'm not totally sure what all of your terms even mean), but I'll add a few that I do know:
Stockfish uses a combined bitboard and mailbox board representation. Fruit (and so I assume also Toga) uses a 16x16 board data structure. Crafty is pure bitboards. They all use iterative deepening and a transposition table. Crafty and Stockfish both use aspiration (but with significantly different implementations); not sure about the others.
I'd be more interested in a comparison of the pruning and depth reduction strategies of the top engines, personally. This is one area where there are big differences between engines and relatively little code is involved.
Stockfish uses a combined bitboard and mailbox board representation. Fruit (and so I assume also Toga) uses a 16x16 board data structure. Crafty is pure bitboards. They all use iterative deepening and a transposition table. Crafty and Stockfish both use aspiration (but with significantly different implementations); not sure about the others.
I'd be more interested in a comparison of the pruning and depth reduction strategies of the top engines, personally. This is one area where there are big differences between engines and relatively little code is involved.