Changes

Jump to: navigation, search

Opening Book

4,137 bytes added, 07:53, 30 July 2021
no edit summary
[[FILE:380px-Modern_Chess_Openings_Second_Edition.jpg|border|right|thumb|link=https://en.wikipedia.org/wiki/File:Modern_Chess_Openings_Second_Edition.jpg|[https://en.wikipedia.org/wiki/Modern_Chess_Openings Modern Chess Openings] <ref>Worn copy of second edition of Modern Chess Openings (1913) by [https://en.wikipedia.org/wiki/Richard_Griffith_%28chess_player%29 Richard Clewin Griffith] (1872–1955) and [https://en.wikipedia.org/wiki/John_Herbert_White John Herbert White] (1880–1920), with an introduction by [https://en.wikipedia.org/wiki/Henry_Ernest_Atkins Henry Ernest Atkins] (1872–1955), [https://en.wikipedia.org/wiki/Modern_Chess_Openings Modern Chess Openings from Wikipedia]</ref> ]]
Chess programs often look up the positions at the [[Opening|beginning of the game]] in an '''Opening Book'''. Chess programs could use [[Search|search]] The opening database can then be used as long as the opponent plays a new move from the beginning and look through all possible continuations in detail to find the best next movedatabase, but as this is quite time-consuming and there already exists a lot of [https://en.wikipedia.org/wiki/Chess_opening_book_%28literature%29 literature] about different so usually more common opening lines, opening books save time and provide will be stored to a much higher quality of playdepth than the uncommon ones. Another reason that opening books are used commonly As soon as the program is "out of book" it has to provide variety, as book moves are usually chosen [[Pseudorandom Number Generator|randomly]], whereas searches are more or less deterministiccontinue using the normal search routines.
This opening database can then be used as long as =Purposes= * Save time: Chess programs could use [[Search|search]] from the beginning and look through all possible continuations in detail to find the opponent plays a new best next move from the database, so usually more common but as this is quite time-consuming. In contrast, opening books can play opening lines will be stored moves almost instantly without searching nor heavy computing and help to save time.* Provide a much higher depth than the uncommon onesquality of play: Searching even with large depths can't see deep tactics, strategy, compensation. It may lose temporarily material for long term advantage.* Provide variety: there already exists a lot of [https://en.wikipedia.org/wiki/Chess_opening_book_%28literature%29 literature] about different opening lines. As soon as the program is "out of book" it has to continue using the normal search routinesmoves are usually chosen [[Pseudorandom Number Generator|randomly]], whereas searches are more or less deterministic.
=Types= There Opening books are typically stored in two ways main formats:==Text==The most advantage by using text form is that they are readable, understandable, and editable by humans and can be viewed, edited with normal text editors. However, the main disadvantage is that they may take too much space as well as time for searching since an item may take from 50 bytes (for FEN strings) to hundreds of bytes (for PGN text). If we store an openings "continuously" (all possible opening positions) both data size and searching time become too huge and unacceptable for playing. They are usually missing weight values (to compare between items to know which ones are better) either. In practice, those opening database:* Opening books are usually very small with some lines* Positionsor positions only, they are hard to be used for real game playing but for testing.
Some They are stored in typical ways for games and positions:* [[Databases|databasesEPD]] use a list : They are the last positions of common opening lines* [[PGN]]: Opening lines are stored as individual games<span id="BookBuilder"></span>* Special text formats: In 1999, while others hold [[Marc-Philippe Huget]] published a list of positions that arise '''Book Builder''' <ref>[https://www.stmintz.com/ccc/index.php?id=44407 Web site updated and new program Book Builder] by [[Marc-Philippe Huget]], [[CCC]], February 24, 1999</ref> in common openingsconjunction with his engine [[La Dame Blanche]], a standalone open source program <ref>[http://www. The first option is probably easier quarkchess.de/ladameblanche/ Book Bilder of La Dame Blanche] by [[Marc-Philippe Huget]], hosted by [[Thomas Mayer]]</ref> to implementconvert a [[Portable Game Notation|PGN file]] into an opening book of the format proposed by [[Kathe Spracklen]] <ref>[[Kathe Spracklen]] ('''1983'''). ''Tutorial: Representation of an Opening Tree''. [[ICGA Journal#6_1|ICCA Newsletter, Vol. 6, while the second has some important advantagesNo. 1]]</ref>:<pre>(e4(e5)(c5))(d4d5)) etc.</pre>
Opening databases built ==Binary==Binary books have some important advantages, especially for computer chess engines: space-efficient, fast on positions accessing and searching, more useful information. At the most simple form, they are usually more space efficient just a conversion of above text-opening books into binary, in the ready form for software and overcome save text-binary converting steps. However, the problem major number of top books is built and worked with hash values from [[Transposition|transpositions]]. Often these positions are each position is stored as a hash value to allow fast access. Some opening database formats store with each positions as well (8 bytes) and some extra information about it. (e.g. such as the number of times occurred, number of games won by white/black / drawn with this position, average/maximum Elo of players playing to this opening position, chess program's success with the position) . To save space those extra information typically about 2-8 bytes. For example, [[PolyGlot]] uses 16 bytes for each item, including hash, move, weight, learning values. Items of a book should be sorted by their hash. So when a chess program has to decide on a move, it will look up (by using binary-search) using the hash value of the current position to collect all positions information come with that could arise after moving in the database hash value and then make a decision upon the information given with each positionit. To build and/or edit those opening books, users need to use special software. The most popular format is [[PolyGlot]].
=Generation=
==Handcrafted==
If the opening database designer has some special preference of a certain opening line, he might create it fully manually. This is often the case if a chess program is about to play an important game against a grandmaster. Then the opening style will probably be chosen to be difficult and dangerous for the opponent. Another option is to first automatically generate a database and then fine -tune it manually.
==AutomatedFrom game collection== Another option is to select a number of games (the type of which will effect affect the openings played: e.g. drawn games only, GM games only, etc) and then up to a certain depth store all positions in the opening database. It is true that by using this way of database generation some severe errors might by copied as well, but usually the chess programs are set to stop playing according from to the book if a position occurred less than a certain number times before.
==By computing==Chess [[engines]] can be used to evaluate positions in a book opening tree to rank them, and/or decide to stop or expand. =Book Building Tools==
* [[Bookbuilder]]
* [[Bookup]]
* [[Chess Opening Wizard]] (COW)
<span id="BookBuilder"></span>* [[Banksia GUI]] ==Book Builder=Playing=In 1999, * [[Marc-Philippe HugetEngines]] published a '''Book Builder''' <ref>[https://wwwThey can directly use opening books to make move.stmintzSome engines use external books, some others integrate books inside their codes.com/ccc/index.php?id=44407 Web site updated Those engines need both opening book code and new program Book Builder] by book data to run* [[Marc-Philippe HugetGUI|Chess GUI]], [[CCC]], February 24, 1999</ref> in conjunction : They can play opening books thus engines don't need to deal with his engine [[La Dame Blanche]], a standalone open source program <ref>[http://www.quarkchessand start computing from the middle period only.de/ladameblanche/ Book Bilder This way is quite popular because of La Dame Blanche] by [[Marc-Philippe Huget]]some advantages: simplifier for chess engines, hosted by [[Thomas Mayer]]</ref> save space and easier to convert a [[Portable Game Notation|PGN file]] into an manage opening book of the format proposed by [[Kathe Spracklen]] <ref>[[Kathe Spracklen]] ('''1983'''). ''Tutorial: Representation of an Opening Tree''. [[ICGA Journal#6_1|ICCA Newsletterbooks, more various ways to select openings, Volmore fair-play to compare engines. 6, No. 1]]</ref>:<pre>(e4(e5)(c5))(d4d5)) etc.</pre>
=Quotes=
To solve the opening problems of his chess machine, [[Belle]], [[Ken Thompson]] typed in opening lines from the ''[https://en.wikipedia.org/wiki/Encyclopaedia_of_Chess_Openings Encyclopedia of Chess Openings]'' (in five thick volumes). Religiously, he dedicated one hour a day for almost three years (!) to the tedious pursuit of entering lines of play from the books and having his Belle computer verify them. The result was an opening library of roughly three-hundred thousand moves. The results were immediate and obvious: Belle became a much stronger chess program, and Ken probably aged prematurely. Later Ken developed a program to automatically read the ''Encyclopedia'', allowing him to do in a few days what had taken him three years to do manually. <ref>[[Mathematician#HSBaird|Henry S. Baird]], [[Ken Thompson]] ('''1990'''). ''[http://doc.cat-v.org/bell_labs/reading_chess/ Reading Chess]''. [[IEEE#TPAMI|IEEE Transactions on Pattern Analysis and Machine Intelligence]], Vol. 12, No. 6, [http://doc.cat-v.org/bell_labs/reading_chess/reading_chess.pdf pdf]</ref>
<span id="Formats"></span>
 
=Formats=
* [[ABK]] - [[Arena|Arena's]] book format
* [[PolyGlot|BIN]] - [[PolyGlot]] book fomat
* [[CTG]] - [[ChessBase]] book format
=Classification of Chess Openings=
=Selected Publications=
==1974 ...==
* [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=96114 Ya. Yu. Gol'fand], [[Aaron L. Futer]] ('''1974'''). ''Implementation of the opening book for the chess program.'' in Problems of Cybernetic, No. 29 , pp. 201-210
: Я.Ю. Гольфанд, [[Aaron L. Futer|А.Л. Футер]] ('''1974'''). ''Реализация дебютной справочной для шахматной программы.''/ Сб. Проблемы кибернетики №29, стр. 201-210
==1980 ...==
* [[John F. White]] ('''1982'''). ''[http://yourcomputeronline.wordpress.com/2011/01/19/chess-book-openings/ Chess-Book Openings]''. [[Your Computer]], [http://yourcomputeronline.wordpress.com/2011/01/15/february-1982-contents-and-editorial/ February 1982]
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/329b9401059f679b gnuchess.book in Lisp] by [[Steven Edwards]], [[GNU Chess#NewsGroup|gnu.chess]], January 23, 1990
==1995 ...==
* [https://groups.google.com/d/msg/rec.games.chess.computer/twuuIKTUqRw/bCN6Jn9zGOcJ Opening taxonomy] by [[Hugh S. Myers]], [[Computer Chess Forums|rgcc]], September 12, 1995
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/656439670bd7c7fb The MCHESS5 computer killer book...] by [[Ed Schroder|Ed Schröder]], [[Computer Chess Forums|rgcc]], October 14, 1996
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/f14614c6bdebff95 Killer Books] by [[Andreas Mader]], [[Computer Chess Forums|rgcc]], October 29, 1996
* [https://www.stmintz.com/ccc/index.php?id=226258 question about book and learning] by [[Uri Blass]], [[CCC]], April 26, 2002
* [https://www.stmintz.com/ccc/index.php?id=267805 Book design] by [[Sune Fischer]], [[CCC]], November 28, 2002
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=18&t=42820 Opening Bug in Nejmet and Pharaon] by Mainflame, [[Computer Chess Forums|Winboard Forum]], May 31, 2003 » [[Nejmet]], [[Pharaon]]
* [https://www.stmintz.com/ccc/index.php?id=330362 Why use opening books in machine-machine competitions?] by [[Mig Greengard]], [[CCC]], November 25, 2003
* [https://www.stmintz.com/ccc/index.php?id=368697 Performance rating calculation] by [[Dan Wulff]], [[CCC]], June 02, 2004
'''2019'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=70518 Book creation papers] by [[Robert Pope]], [[CCC]], April 18, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71386 Database snapshot] by [[Bojun Guo|noobpwnftw]], [[CCC]], July 27, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71764 ChessDBCN] by [[Bojun Guo|noobpwnftw]], [[CCC]], September 09, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=72432 Polyglot FRC/960 Opening Book] by [[Dennis Sceviour]], [[CCC]], November 27, 2019 » [[PolyGlot]], [[Chess960]]
==2020 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75205 How many Elo points is a book?] by [[Chris Whittington]], [[CCC]], September 25, 2020 » [[Playing Strength]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75878 Chess opening database with names] by Peperoni, [[CCC]], November 20, 2020 » [[ECO]]
'''2021'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77507 Opening book implementation questions] by Pedro Duran, [[CCC]], June 18, 2021
=External Links=
* [https://www.game-ai-forum.org/icga-tournaments/news_item.php?id=35 The use of openings books] by the [[ICGA]], September 15, 2008
==Engine Books==
* [http://www.top-5000.nl/tools.htm Source code Pro Deo Book] by [[Ed Schroder|Ed Schröder]] » [[ProDeo]]
* [http://www.top-5000.nl/eoc.htm Source code ProDeo EOC database] by [[Ed Schroder|Ed Schröder]]
* [http://chessbase.com/newsdetail.asp?newsid=7069 HIARCS 13 – the Professional Openings Book] by [[Mark Uniacke]], [[ChessBase|ChessBase News]], March 10, 2011 » [[HIARCS]] <ref>[http://www.open-chess.org/viewtopic.php?f=3&t=1073#p11368 Re: Opening Books Battle..] by BB+ ([[Mark Watkins]]), [[Computer Chess Forums|OpenChess Forum]], March 12, 2011</ref>
* [http://hardy.uhasselt.be/Toga/book_format.html Polyglot book format]
* [http://www.g-sei.org/wp-content/Users/Fauzi/fauzi.html Fauzi's Opening Books] by [[Fauzi Akram Dabat]], [[G 6]] site
==Online Opening Tree==
* [https://www.chessdb.cn/queryc_en/ Chess Cloud Database Query Interface] by [[Bojun Guo|noobpwnftw]] <ref>[https://github.com/noobpwnftw/chessdb GitHub - noobpwnftw/chessdb: ChessDB]</ref>
* [https://fsmosca.github.io/ChessDB-Online-Book/ ChessDB Online Opening Book] by [[Ferdinand Mosca]]
* [https://database.chessbase.com/?lang=en/ Chess database with eight million games. Openings, players, tournaments - Online] - [[ChessBase (Database)|ChessBase]]
* [http://www.chessgames.com/perl/explorer Chess Opening Explorer] from [http://www.chessgames.com/index.html chessgames.com]
<references />
'''[[Knowledge|Up one level]]'''
[[Category:Schaeffer Quotes]]
[[Category:Jan Klare]]
[[Category:Achim Zepezauer]]
[[Category:The Dorf]]

Navigation menu