Changes

Jump to: navigation, search

Bitboards

1,372 bytes added, 10:08, 2 September 2019
no edit summary
'''[[Main Page|Home]] * [[Board Representation]] * Bitboards'''
{| class="wiki_table"|- style="vertical-align:top;float:bottom;"[[File:NY Met klee variationsBoardsMeeting.JPGjpg|border|right|thumb|222px[[:Category:Samuel Bak|Paul Klee, "Variations" au Met de New York, 1927 Samuel Bak]] - Boards Meeting <ref>[[Arts#Klee:Category:Samuel Bak|Paul KleeSamuel Bak]] - Boards Meeting, Oil on Canvas, 39 x 32"Variations" au Met de New York, 1927, . [httpshttp://commonschgs.wikimediaelevator.orgumn.edu/asset/wikiviewAsset/File:NY_Met_klee_variations.JPG57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bcf Chess in the Art of Samuel Bak] , [httpshttp://enchgs.elevator.wikipediaumn.orgedu/wiki/Wikimedia_Commons Wikimedia CommonsCenter for Holocaust & Genocide Studies], [https://en.wikipedia.org/wiki/Metropolitan_Museum_of_Art Metropolitan Museum University_of_Minnesota University of ArtMinnesota]</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=
To [[Board Representation|represent the board]] we typically need one bitboard for each [[Pieces#PieceTypeCoding|piece-type]] and [[Color|color]] - likely encapsulated inside a class or structure, or as an [[Array|array]] of bitboards as part of a position object. A one-bit inside a bitboard implies the existence of a piece of this piece-type on a certain square - one to one associated by the bit-position.
=<span id="BitboardHistory"></span>Bitboard-History=
The general approach of [[Mikhail R. Shura-Bura#Bitsets|bitsets]] was proposed by [[Mikhail R. Shura-Bura]] in 1952 <ref>[https://en.wikipedia.org/wiki/Lazar_Lyusternik Lazar A. Lyusternik]], [[http://www.mathnet.ru/php/person.phtml?personid=30351&option_lang=eng Aleksandr A. Abramov], [https://en.wikipedia.org/wiki/Victor_ShestakovVictor Victor_Shestakov Victor I. Shestakov], [[Mikhail R. Shura-Bura]] ('''1952'''). ''Programming for High-Speed Electronic Computers''. (Программирование для электронных счетных машин)</ref> <ref>[[Mathematician#Ershov|Andrey Ershov]], [[Mikhail R. Shura-Bura]] ('''1980'''). ''[http://ershov.iis.nsk.su/archive/eaindex.asp?lang=2&gid=910 The Early Development of Programming in the USSR]''. in [http://en.wikipedia.org/wiki/Nicholas_C._Metropolis|Nicholas C. Metropolis]] (ed.) ''[[http://dl.acm.org/citation.cfm?id=578384 A History of Computing in the Twentieth Century]''. [https://en.wikipedia.org/wiki/Academic_Press Academic Press], [http://ershov.iis.nsk.su/archive/eaimage.asp?did=28792&fileid=173670 preprint pp. 43]</ref>. The bitboard method for holding a board game appears to have been invented also in 1952 by [[Christopher Strachey]] using White, Black and King bitboards in his checkers program for the [[Ferranti Mark 1]], and in the mid 1950's by [[Arthur Samuel]] in his checkers program as well. In computer chess, bitboards were first described by [[Georgy Adelson-Velsky]] et al. in 1967 <ref>[http://groups.google.com/group/rec.games.chess/browse_frm/thread/0e3a93f45ff07d31# Early Reference on Bit-Boards] by [[Tony Warnock]] from , [[Computer Chess Forums|rec.games.chess]], October 29, 1994</ref>, reprinted 1970 <ref>[[Georgy Adelson-Velsky]], [[Vladimir Arlazarov]], [[Alexander Bitman]], [[Alexander Zhivotovsky]], [[Anatoly Uskov]] ('''1970'''). ''[http://iopscience.iop.org/0036-0279/25/2/R07 Programming a Computer to Play Chess]''. [http://iopscience.iop.org/0036-0279/25/2 Russian Mathematical Surveys, Vol. 25], pp. 221-262.</ref> . Bitboards were used in [[Kaissa]] and in [[Chess (Program)|Chess]]. The invention and publication of [[Rotated Bitboards]] by [[Robert Hyatt]] <ref>[[Robert Hyatt]] ('''1999'''). ''[http://www.craftychess.com/hyatt/bitmaps.html Rotated Bitmaps, a New Twist on an Old Idea]''. [[ICGA Journal#22_4|ICCA Journal, Vol. 22, No. 4]]</ref> and [[Peter Gillgasch]] with [[Ernst A. Heinz]] in the 90s was another milestone in the history of bitboards. [[Steffan Westcott|Steffan Westcott's]] innovations, too expensive on 32-bit [[x86]] processors, should be revisited with [[x86-64]] and [[SIMD and SWAR Techniques|SIMD instructions]] in mind. With the advent of fast 64-bit multiplication along with faster [[Memory|memory]], [[Magic Bitboards]] as proposed by [[Lasse Hansen]] <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?t=5015 Fast(er) bitboard move generator] by [[Lasse Hansen]], [[Computer Chess Forums|Winboard Forum]], June 14, [[Timeline#2006|2006]]</ref> and refined by [[Pradu Kannan]] <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?t=5441 List of magics for bitboard move generation] by [[Pradu Kannan]], [[Computer Chess Forums|Winboard Forum]], August 23, [[Timeline#2006|2006]]</ref> have surpassed Rotated.
=Analysis=
* [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