Changes

Jump to: navigation, search

Bitboards

3,406 bytes added, 20:46, 25 February 2021
no edit summary
'''[[Main Page|Home]] * [[Board Representation]] * Bitboards'''
'''Bitboards''',[[File:BoardsMeeting.jpg|border|right|thumb|[[:Category:Samuel Bak|Samuel Bak]] - Boards Meeting <ref> [[:Category:Samuel Bak|Samuel Bak]] - Boards Meeting, Oil on Canvas, 39 x 32". [http://chgs.elevator.umn.edu/asset/viewAsset/57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bcf Chess in the Art of Samuel Bak], [http://chgs.elevator.umn.edu/ Center for Holocaust & Genocide Studies], [https://en.wikipedia.org/wiki/University_of_Minnesota [University of Minnesota]]</ref>]]  '''Bitboards''',<br/>also called bitsets or bitmaps, are among other things used to represent the [[Chessboard|board]] inside a chess program in a '''piece centric''' manner. Bitboards, are in essence, [https://en.wikipedia.org/wiki/Finite_set finite sets] of up to [https://en.wikipedia.org/wiki/64_%28number%29 64] [https://en.wikipedia.org/wiki/Element_%28mathematics%29 elements] - all the [[Squares|squares]] of a [[Chessboard|chessboard]], one [[Bit|bit]] per square. Other board [[Games|games]] with greater board sizes may be use set-wise representations as well <ref>[[Reijer Grimbergen]] ('''2007'''). ''Using Bitboards for Move Generation in Shogi''. [[ICGA Journal#30_1|ICGA Journal, Vol. 30, No. 1]], [http://www2.teu.ac.jp/gamelab/RESEARCH/ICGAJournal2007.pdfICGAJournal2007.pdf pdf]</ref>, but classical chess has the advantage that one [[Quad Word|64-bit word]] or register covers the whole board. Even more bitboard friendly is [[Checkers]] with 32-bit bitboards and less [[Pieces#PieceTypeCoding|piece-types]] than chess <ref>[http://www.3dkingdoms.com/checkers/bitboards.htm Checker Bitboards Tutorial] by [[Jonathan Kreuzer]]</ref> <ref>[http://www.talkchess.com/forum/viewtopic.php?t=64487 Checkers Bitboard representation] by Pranav Deshpande, [[CCC]], July 02, 2017</ref>.
=The Board of Sets=
* Bitboards can have a high information density.
* Single populated or even empty Bitboards have a low information density.
* <span id="getPiece"></span>Bitboards are weak in answering questions like what piece if any resides on square x. One reason to keep a redundant [[Mailbox|mailbox]] board representation with some additional [[Incremental Updates|update]] costs during [[Make Move|make]]/[[Unmake Move|unmake]].
* Bitboards can operate on all squares in parallel using bitwise instructions. This is one of the main arguments used by proponents of bitboards, because it allows for a flexibility in [[Evaluation|evaluation]].
* Bitboards are rather handicapped on 32 bit processors, as each bitwise computation must be split into two or more instructions <ref>[http://www.stmintz.com/ccc/index.php?id=30562 Efficient Bitboard Implementation on 32-bit Architecture] by [[Roberto Waldteufel]], [[CCC]], October 25, 1998</ref> . As most modern processors are now 64 bit, this point is somewhat diminished <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=6651 Speedup by bitboards] by [[Onno Garms]], [[Computer Chess Forums|Winboard Forum]], July 13, 2007</ref> .
* [[Reijer Grimbergen]] ('''2007'''). ''Using Bitboards for Move Generation in Shogi''. [[ICGA Journal#30_1|ICGA Journal, Vol. 30, No. 1]], [http://www2.teu.ac.jp/gamelab/RESEARCH/ICGAJournal2007.pdf pdf] » [[Move Generation]], [[Shogi]]
* [[James Glenn]], [http://www.cs.loyola.edu/~binkley/ David Binkley] ('''2008''') ''An Investigation of Hierarchical Bit Vectors''. [https://www.novapublishers.com/catalog/product_info.php?products_id=6555 New Topics in Theoretical Computer Science], [http://www.cs.loyola.edu/~binkley/papers/tcsrt08-hbit-vectors.pdf pdf]
* [[Shi-Jim Yen]], [[Jung-Kuei Yang]] ('''2009'''). ''The Bitboard Design and Bitwise Computing in Connect Six''. [[Conferences#GPW|14th Game Programming Workshop]] » [[Connect6]]
* [[Fritz Reul]] ('''2009'''). ''New Architectures in Computer Chess''. Ph.D. Thesis, [https://pure.uvt.nl/ws/files/1098572/Proefschrift_Fritz_Reul_170609.pdf pdf]
==2010 ...==
* [[Shi-Jim Yen]], [[Jung-Kuei Yang]], [[Kuo-Yuan Kao]], [[Tai-Ning Yang]] ('''2012'''). ''[http://www.sciencedirect.com/science/article/pii/S0950705112001293 Bitboard Knowledge Base System and Elegant Search Architectures for Connect6]''. [https://www.journals.elsevier.com/knowledge-based-systems/ Knowledge-Based Systems], Vol. 34 » [[Connect6]]
* [[Cameron Browne]], [[Stephen Tavener]] ('''2013'''). ''[http://www.aifactory.co.uk/newsletter/2012_02_fast_lane.htm Life in the Fast Lane]''. [[AI Factory]] » [http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Conway's Game of Life] within a [[Bitboards|Bitboard]]
* [[Jung-Kuei Yang]], [https://dblp.uni-trier.de/pers/hd/t/Tseng:Ping=Jung Ping-Jung Tseng] ('''2013'''). ''[https://ieeexplore.ieee.org/document/6783902 Bitboard Connection Code Design for Connect6]''. [[TAAI 2013]] » [[Connect6]]
* [[Cameron Browne]] ('''2014'''). ''Bitboard Methods for Games''. [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]]
* [[Yen-Chi Chen]], [[Shun-Shii Lin]] ('''2019'''). ''A fast nonogram solver that won the TAAI 2017 and ICGA 2018 tournaments''. [[ICGA Journal#41_1|ICGA Journal, Vol. 41, No. 1]] » [[Nonogram]]
=Forum Posts=
==2005 ...==
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=4521 Bitboard question] by [[Tord Romstad]], [[Computer Chess Forums|Winboard Forum]], March 14, 2006
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=5623 Yet another new bitboard move generation method] by [[Zach Wegner]], [[Computer Chess Forums|Winboard Forum]], September 22, 2006 » [[Titboards]]
: [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=5623&start=6 Re: Yet another new bitboard move generation method] by [[Harm Geert Muller]], [[Computer Chess Forums|Winboard Forum]], October 01, 2006 <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=52861&start=8 Re: multi-dimensional piece/square tables] by Tony P., [[CCC]], January 28, 2020</ref>
* [http://www.talkchess.com/forum/viewtopic.php?t=13426 Speedup with bitboards on 64-bit CPUs] by [[Tord Romstad]], [[CCC]], April 27, 2007
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=6651 Speedup by bitboards] by [[Onno Garms]], [[Computer Chess Forums|Winboard Forum]], July 13, 2007
* [http://www.talkchess.com/forum/viewtopic.php?t=17138 BitBoard representations of the board] by [[Uri Blass]], [[CCC]], October 14, 2007
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=19837 compact bitboard move generator] by [[Robert Hyatt]], [[CCC]], February 25, 2008 » [[Bitboard Serialization]], [[Move Generation]]
* [http://www.talkchess.com/forum/viewtopic.php?t=25917 Bitboards / move generation on larger boards] by [[Gregory Strong]], [[CCC]], January 09, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=26527 Bitboard techniques in Xiangqi] by [[Harm Geert Muller]], [[CCC]], February 12, 2009 » [[Chinese Chess]]
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=56476 Bitboard database code samples] by [[Steven Edwards]], [[CCC]], May 25, 2015 » [[Symbolic]]
* [http://www.talkchess.com/forum/viewtopic.php?t=60007 M42 - A C++ library for Bitboard attack mask generation] by [[Syed Fahad]], [[CCC]], April 30, 2016 <ref>[https://sites.google.com/site/sydfhd/projects/m42 M42] by [[Syed Fahad]]</ref>
* [http://www.talkchess.com/forum/viewtopic.php?t=64487 Checkers Bitboard representation] by Pranav Deshpande, [[CCC]], July 02, 2017 » [[Checkers]]
* [http://www.talkchess.com/forum/viewtopic.php?t=65724 Bitboards and Java] by [[Fred Hamilton]], [[CCC]], November 14, 2017 » [[Java]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=72461&start=3 Re: Pawn move generation in bitboards] by [[Álvaro Begué]], [[CCC]], December 05, 2019 » [[Cpp|C++]], [[Pawn Pattern and Properties]]
==2020 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=73830 M42 - C++ Library for Bitboard Attack Mask Generation] by [[Syed Fahad]], [[CCC]], May 04, 2020 <ref>[https://github.com/sinandredemption/M42 GitHub - sinandredemption/M42: C++ Library for Bitboard Attack Mask Generation]</ref>
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76083 Bitboard board representation] by [[Elias Nilsson]], [[CCC]], December 17, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76548 Thought bitboards was faster :-)] by [[Daniel Anulliero]], [[CCC]], February 10, 2021
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76690 Are Bitboards More Intoxicating Than They Are Good?] by [[Michael Sherwin|Mike Sherwin]], [[CCC]], February 24, 2021
=Viewer & Calculator=
* [[Bibob]]
* [httphttps://cinnamonchessgekomad.altervistagithub.orgio/bitboard_calculatorCinnamon/Calc.html BitboardCalculator Bitboard Calculator] by [[Giuseppe Cannella]]
* [http://www.chessprogramming.net/computerchess/free-chess-bitboard-viewer/ Free Chess Bitboard Viewer - Computer Chess Programming] by [[Steve Maughan]]
* [http://www.chess2u.com/t2159-new-free-tool-bitboards-helper New free tool : Bitboards Helper] by [[Julien Marcel]]
* [http://labraj.uni-mb.si/en/Position_Representation Position Representation - Computer Architecture and Languages Laboratory], [[University of Maribor]]
* [http://stackoverflow.com/questions/tagged/bitboard Newest 'bitboard' Questions] - [http://en.wikipedia.org/wiki/Stack_Overflow Stack Overflow]
* [https://www.halloherne.de/artikel/1-september-setunion-in-den-flottmann-hallen-38570.htm?k=tick Setunion] - [https://inherne.net/weltspitze-des-vibraphon-jazz/ Malletmania], [[:Category:Flottmann|Flottmann-Hallen]] <ref>[[:Category:Flottmann|Flottmann-Hallen]] in [https://en.wikipedia.org/wiki/Herne,_North_Rhine-Westphalia Herne], [https://en.wikipedia.org/wiki/North_Rhine-Westphalia North Rhine-Westphalia], [https://en.wikipedia.org/wiki/Germany Germany], part of [[:Category:Industrial Heritage Trail|The Industrial Heritage Trail]] of the [https://en.wikipedia.org/wiki/Ruhr Ruhr area]</ref>, March 10, 2019, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: [http://www.saxophonquartett-quattro-venti.de/#about Kerstin Fabry], [https://www.lokalkompass.de/tag/christian-ribbe Christian Ribbe], [https://www.folkwang-uni.de/home/theater/studiengaenge/physical-theatre/lehrende/detail-lehrende/personen-detail/elmar-dissinger/ Elmar Dissinger], [https://de.wikipedia.org/wiki/Pee_Wee_Bluesgang Martin Siehoff], [https://www.halloherne.de/artikel/carlotta-ribbe-und-setunion-31511.htm Carlotta Ribbe], [http://guitartist-quartett.com/quartett_ludger.htm Ludger Bollinger]
: {{#evu:https://www.youtube.com/watch?v=srfRiWZcCg4|alignment=left|valignment=top}}
=References=
<references />
 
'''[[Board Representation|Up one level]]'''
[[Category:Samuel Bak]]
[[Category:Flottmann]]
[[Category:Industrial Heritage Trail]]
[[Category:Music]]

Navigation menu