Changes

Jump to: navigation, search

Endgame Tablebases

13,148 bytes added, 05:16, 28 September 2022
2020 ...
'''[[Main Page|Home]] * [[Knowledge]] * Endgame Tablebases'''
[[FILE:SamuaelBakPersistence.jpg|border|right|thumb|link=http://chgs.elevator.umn.edu/asset/viewAsset/57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bd8|[[:Category:Samuel Bak|Samuel Bak]] - Persistence <ref>[http://chgs.elevator.umn.edu/asset/viewAsset/57f3b6787d58ae5f74bf8ba9#57f3b6d77d58ae5574bf8bd8 Chess in the Art of Samuel Bak], [http://www.chgs.umn.edu/ Center for Holocaust & Genocide Studies], [https://en.wikipedia.org/wiki/University_of_Minnesota [University of Minnesota]]</ref> ]]
'''Endgame Tablebases''', (EGTBs or EGTs)<br/>
precalculated [[Endgame|endgame]] [https://en.wikipedia.org/wiki/Table_%28database%29 tables] generated by an exhaustive [[Retrograde Analysis|retrograde analysis]]. During its [[Chess Game|game play]] and/or [[Search|search]], [[Interior Node Recognizer|recognizing]] a specific [[Material|material composition]], a chess program can probe, or in principle compute these tables to determine the outcome of positions definitively and act as an [[Oracle|oracle]] providing the optimal moves. The tables are usually divided into separate [https://en.wikipedia.org/wiki/Computer_file files] for each material configuration and [[Side to move|side to move]]. What all different [[Endgame Tablebases#Formats|formats]] of tablebases have in common is that every possible piece placement has its own, unique index number which represents the position where the information about the position is located in the file. Positions with non-null castling rights could be represented in an EGT EGTB but typically are not.
The term '''Tablebase''' opposed to endgame database was coined by [[Steven Edwards]] by means of a data vector and a single file access for both sides to move, when he introduced his [[Edwards' Tablebases]], addressing several shortcomings of [[Ken Thompson|Ken Thompson's]] earlier [[Thompson's Databases|database]] of positions with the weaker and hence potentially losing side to move only <ref>[[Ernst A. Heinz]] ('''1999'''). ''Endgame Databases and Efficient Index Schemes for Chess.'' [[ICGA Journal#22_1|ICCA Journal, Vol. 22, No. 1]], [http://people.csail.mit.edu/heinz/ps/edb_index.ps.gz ps]</ref> .
 
=Purposes=
When a [[Chess Game|chess game]] goes to the [[Endgame|endgame]] phase, it may complete soon with the result as a draw or a win/loss. Both human/chess engines can finish the endgame by continuing searching, applying some endgame rules. Even the game can finish in this way but it is not in a perfect way: it takes time to compute moves, may use more moves than necessary. Sometimes the winning side may lose the change since the rule 50 moves and/or making blunders. Both human and chess engines may miss badly the chances if they don’t know or not good enough about the endgame they are playing.
 
An EGTB can help to solve this period. It is a kind of a dictionary of all endgame positions which can answer immediately for a given position:
* If it is a draw or a win/loss
* How far/how many move from matting/being mated
* What is the best move
 
The main advantages of using EGTBs:
* Engines don’t have to search but retrieves data thus they can move instantly
* Moves are the perfect ones, leading the shortest line to win
* Engines don’t need to have the knowledge and code about those endgames
 
The main disadvantages of using EGTBs:
* Their data typically are too large for downloading and storing
* They may slow down the search
* Require complicated codes for probing
 
=Data=
An EGTB is a set of endgames. Each endgame is a set of records about positions’ information. All involving positions in an endgame must have the same material. Typically each position's record associates with an integer number which informs how far that position is from mating/being mated or converting (depends on the type of its metrics).
 
Based on values of those integer numbers it can answer directly two questions of the EGTB: 1) for a given position it is a draw or a win/loss position and 2) how far it is from mating/being mated or converting. To answer the 3rd question, the best move of a position can be indirectly calculated: generate all legal moves, make them, probe all new positions, compare probing scores for the highest one and the associated move is the best one.
 
Theoretically, we can add more information to each position’s record. However, due to large numbers of involving positions, any additional information may make the whole EGTB becomes significantly larger. Thus so far none of popular EGTBs store any extra information and their records actually contain those integers only.
 
All records of an endgame are simply organized as two arrays (one array for one side/color). In other words, each item in those arrays is an integer and its index on an array is mapped to a unique position. For a given chess position, we will calculate its index then access its data record/integer via that index without searching.
 
==Endgame files==
Those arrays of an endgame can be stored in files. Typically each array is stored in one file. However, sometimes they can be combined into one larger file or splitted into more files to easier copy or manage. Those files may be in compressed or uncompressed forms. If they are compressed, they are typically divided and compressed by small blocks thus they don't need to load and decompress all data to extract just a position.
 
==In memory==
Some chess engines create themselves EGTBs on-flight and keep all data in memory without saving/loading to files. Due to limit by initial time they can generate and use very small EGTBs only.
 
==Sizes==
The size of an endgame depends on:
* The number of involving pieces: more pieces, the bigger size
* Type of pieces: for standard chess, more Pawns is the smaller size
* Type of metric
* The largest value: the integer number should be large enough to cover the largest value. Different endgames will have different largest values. Thus some endgames need only one byte per item but some need 2 bytes
* Indexing: The algorithms to map between an array item and a position
* Compress ratio
 
So far the size of an EGTB is the most important factor of success.
=Metrics=
==DTM<span id="DTM"></span>==
'''Depth to Mate'''
'Mate' is the ultimate goal and ends the game. For each position that is represented, 'DTM' indicates the theoretical value, and the number of winner's moves to 'Mate' if won/lost - assuming that the winner is minimizing and the loser is maximizing DTM.
==DTC<span id="DTC"></span>==
'''Depth to Conversion'''
'Conversion' is the changing of the force on the board, by capture and/or Pawn-conversion. For each position that is represented, 'DTC' indicates the theoretical value, and the number of winner's moves to the goal of 'Won Conversion' if won/lost - assuming that the winner is minimizing and the loser is maximizing DTC. DTC <span style="font-family: Symbol;">£ </span>DTM.
==DTZ<span id="DTZ"></span>==
'''Depth to Zeroing (of the ply count)'''
The ply-count is zeroed if and only if a Pawn is pushed or a capture is made. For each position that is represented, 'DTZ' indicates the theoretical value, and the number of winner's moves to the goal of 'Win and ply-count zeroed' if won/lost - assuming that the winner is minimizing and the loser is maximizing DTZ. DTZ <span style="font-family: Symbol;">£ </span>DTC <span style="font-family: Symbol;">£ </span>DTM.
==DTZ50<span id="DTZ50"></span>==
'''Depth to Zeroing (of the ply count) in the context of the ''50-Move'' ''Rule'''''
The DTC, DTM and DTZ metrics do not consider the current FIDE [[Fifty-move Rule|50-move rule]] whereby a game in which no [[Irreversible Moves|irreversible moves]] have been played for 100 plies can be claimed as a draw by the player 'on move'. In this metric, in addition to the DTC/DTM/DTZ ''draws'', positions requiring more than 50 winner's moves to zero the ply-count are defined as ''draws''. DTZ <span style="font-family: Symbol;">£ </span>DTZ50 if DTZ50 <span style="font-family: Symbol; font-size: 14.66px;">¹ </span>''draw.'' 'DTZ50' is one of a set of 'DTZk' rules: a ''k''-''move rule'' effectively applies if there are only ''k'' moves left before a draw-claim might be made. ''k1'' <span style="font-family: Symbol;">£ </span>''k2'' implies ''DTZk2'' <span style="font-family: Symbol;">£ </span>''DTZk1 if DTZk1'' <span style="font-family: Symbol; font-size: 14.66px;">¹ </span>draw.
Note that, because depth is measured in winner's moves rather than plies, this metric does '''not''' define as ''draw'' a position in which 50 winner's moves and 51 loser's moves are required to zero the ply-count, despite the fact that the loser would claim a draw after 100 plies had been played in that endgame.
==DTR<span id="DTR"></span>==
'''Depth by the (''k''-move) Rule'''
'The Rule' referred to here is a notional set of ''k''-move rules. For each position that is represented, 'DTR' indicates the theoretical value and, for won/lost positions'','' the least ''k'' for which DTZ''k'' is not ''draw'' - assuming that the winner is minimising and the loser is maximising DTR. DTZ <span style="font-family: Symbol;">£ </span>DTR. No DTR EGTs have been created to date <ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=3934 DTR is no good!] by [[Harm Geert Muller]], [[Computer Chess Forums|CCRL Forum]], September 24, 2008</ref> .
==DTZR<span id="DTZR"></span>==
'''Depth to Zeroing move, give that DTR is being minimaxed'''
If DTR = ''draw'', then DTZR = ''draw''. Otherwise, Otherwise DTRZR indicates the theoretical value, and the number of winner's moves to the zeroing of the ply count, given that the two sides are minimaxing first DTR and then DTZR. DTZR would be used in conjunction with DTR to progress a deep win in the context of a ''k''-move rule because DTR can remain unchanged over a sequence of moves. DTZR <span style="font-family: Symbol;">£ </span>DTR but it is not always the case that DTZ <span style="font-family: Symbol;">£ </span>DTZR as may seem intuitively obvious: the loser may zero the move-count to maximise DTR.
=Indexing=
Every position is assigned to an a unique index to specify the location of the information stored about it. The main purpose of indexing is to locate and read information (from databases) such as distance to mate for a given position based on its index.  There are two main aims when generating the index number. The easier the algorithm to generate the index from any given position, the faster will be the probing of the tablebase as well as the generation of it. But the second aim is to get a relatively small range of index-numbers, to keep the size of the file as small as possible.
The most straight forward way would be to for every piece on the board use 6 bit (1-64 squares)
}
</pre>
This Almost all work on this field is to reduce index spaces and reduce data sizes (e.g., by compressing). The above indexing can be optimized optimised in several ways. Remove redundant symmetrical indexes:* A chess board can be rotated and mirrored (if pawns are on the board only a vertical reflection is possible).* For pieces of the same type, different arrangements can be left away.Remove illegal indexes:
* Pieces may not stand on the same square.
* For pieces of the same type, different arrangements can be left away.
* The side to move may not give check.
* The distance between the two Kings must be greater than one.
 
=Retrieving=
==Probe==
When a chess program (e.g., a chess engine or a chess GUI) works with an EGTB, it needs to retrieve data (integer numbers) for some given chess positions. The process named probe and has below steps:
* convert a given chess position into an index via indexing algorithms
* access data (typically organised as arrays of integers) using the index to retrieve the integer of that chess position
 
If data of that endgame is not ready in memory, usually the probe process has to do some extra work:
* From data index calculate the block index
* Read data of that block from storage into memory
* Uncompress the block data (if it is compressed)
* Convert the endgame index into block index and retrieve the needed data
 
==Search==
After probing the chess engine may have the result as an integer number for the queried position. Depending on the metric, the number may be a distance to mate or distance to conversion, the position is a draw or a win or loss for the querying side. Sometimes that value (state of draw/win/loss) may be enough for searching. However, sometimes that state is not enough and it needs to know which is the best move to make. The solution is to generate all legal moves from that position, make one by one, probe that EGTB for values of each new position. After all, compare the values of all children's positions to find which one is the best to make.
 
==Speed==
Typically the probe process requires some computing and it may access storage and decompress which is usually so slow. An engine that probes EGTB when searching may make the whole search be slower. Sometimes the benefit from probing EGTBs maybe not enough to cover the loss of slower search. That’s why the probing should be planned and implemented carefully. EGTB files may have to store in fast storage and/or using some huge systems’ caches. The good point is that the engine can stop searching on the branch probed the EGTB.
=Brief Info=
| [[Syzygy Bases|Syzygy]]
| style="text-align:center;" | WDL + [[Endgame Tablebases#DTZ50|DTZ50]]
| style="text-align:center;" | 2013 / 2018
| 939 MiB
| style="text-align:center;" | 150.2 [https://en.wikipedia.org/wiki/Gigabyte GB ]| style="text-align:center;" | 17 [https://en.wikipedia.org/wiki/Terabyte TB]
|}
<span id="Formats"></span>
* [[Lomonosov Tablebases]]
* [[Nalimov Tablebases]]
* [[RetroChess]]
* [[Scorpio Bitbases]]
* [[Syzygy Bases]]
* [[Freezer]]
* [[GAFS]]
* [[Retro]]
<span id="7-men"></span>
=7-man EGTBs=
==2013==
[[ChessOK|Convekta Ltd.]] announced the release of [[Lomonosov Tablebases]]. Until December 31, 2013, the tablebases will be available online through [[ChessOK]] [[ChessOK#Products|products]] <ref>[http://chessok.com/?page_id=27966 Lomonosov Endgame Tablebases] - [[ChessOK]]</ref>. ==2018==Starting in March 2018, '''seven piece''' [[Syzygy Bases]], originally created for up to six pieces by [[Ronald de Man]] in 2013, were generated by [[Bojun Guo]], finished in August 2018 <ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=66797&start=472 Re: 7-men Syzygy attempt] by [[Bojun Guo]], [[CCC]], August 19, 2018 </ref> .
=See also=
* [[Edward Komissarchik]], [[Aaron L. Futer]] ('''1974'''). ''Ob Analize Ferzevogo Endshpilya pri Pomoshchi EVM.'' (Analysis of a queen endgame using an IBM computer) Problemy Kybernetiki, Vol. 29, pp. 211-220. English translation by [[Christian Posthoff|C. Posthoff]], revised in [[ICGA Journal#9_4|ICCA Journal, Vol. 9, No. 4]] ('''1986''')
==1975 ...==
* [[Mike Clarke]] ('''1977'''). ''A quantitative study of KPK''. [[Advances in Computer Chess 1]], pp. 108-118
* [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=55935 A. G. Alexandrov], [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=96113 A. M. Baraev], [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=96114 Ya. Yu. Gol'fand], [[Edward Komissarchik]], [[Aaron L. Futer]] ('''1977'''). ''[http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=at&paperid=7425&option_lang=eng Computer analysis of rook end game]''. [https://en.wikipedia.org/wiki/Automation_and_Remote_Control Avtomatika i Telemekhanika], No. 8, 113–117
* [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=55935 A. G. Alexandrov], [[Vladimir Arlazarov]], [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=96113 A. M. Baraev], [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=96114 Ya. Yu. Gol'fand], [https://zbmath.org/authors/?q=ai:deza.v-n V. N. Deza], [https://zbmath.org/authors/?q=ai:ilina.t-p T. P. Il’ina], [[Edward Komissarchik]], [[Anatoly Uskov]], [https://zbmath.org/authors/?q=ai:faradzhev.i-a I. A. Faradzhev], [[Aaron L. Futer]] ('''1977'''). ''[https://zbmath.org/?q=an:03653550 Processing of large files of information on the example of the analysis of the rook’s end game]''. [http://www.springer.com/computer/journal/11086 Programming and Computer Software], No. 3
* [[Aaron L. Futer]] ('''1978'''). ''[https://zbmath.org/?q=an:03637634 Programming endgames with few pieces]''. [https://en.wikipedia.org/wiki/Doklady_Physics Soviet Physics. Doklady], No. 23
* [[Vladimir Arlazarov]], [[Aaron L. Futer]] ('''1979'''). ''Computer Analysis of a Rook End-Game''. [http://www.doc.ic.ac.uk/~shm/MI/mi9.html Machine Intelligence 9] (eds. [[Jean Hayes Michie]], [[Donald Michie]] and L.I. Mikulich), pp. 361-371. Ellis Horwood, Chichester. Reprinted in [[Computer Chess Compendium]]
* [[Max Bramer]], [[Mike Clarke]] ('''1979'''). ''[http://www.sciencedirect.com/science/article/pii/S0020737379800139 A Model for the Representation of Pattern-Knowledge for the Endgame in Chess]''. [http://www.interaction-design.org/references/periodicals/international_journal_of_man-machine_studies_volume_11.html International Journal of Man-Machine Studies, Vol. 11, No.5]
==1985 ...==
* [[Jaap van den Herik]], [[Bob Herschberg]] ('''1985'''). ''The Construction of an Omniscient Endgame Data Base''. [[ICGA Journal#8_2|ICCA Journal, Vol. 8, No. 2]]
* [[Henri Bal]], [[Victor Allis]] ('''1995'''). ''Parallel Retrograde Analysis on a Distributed System''. Supercomputing ’95, San Diego, CA.
'''1996'''
* [[Dietmar Lippold]] ('''1996'''). ''Legality of Positions of Simple Chess Endgames''. [http://digilander.libero.it/gargamellachess/papers/legality%20of%20positions.zip zipped pdf] <ref>[[Jesper Torp Kristensen]] ('''2005'''). ''[httphttps://jespertkissuu.dkcom/Jesperjespertk/publicdocs/master_thesis/ Generation and compression of endgame tables in chess with fast random access using OBDDs]''. Master thesis, supervisor [[Mathematician#Miltersen|Peter Bro Miltersen]], [https://en.wikipedia.org/wiki/Aarhus_University Aarhus University]</ref>
* [[Ken Thompson]] ('''1996'''). ''6-Piece Endgames''. [[ICGA Journal#19_4|ICCA Journal, Vol. 19, No. 4]]
* [[Lewis Stiller]] ('''1996'''). ''Multilinear Algebra and Chess Endgames''. [http://library.msri.org/books/Book29/index.html Games of No Chance] edited by [[Richard J. Nowakowski]], [http://www.msri.org/publications/books/Book29/files/stiller.pdf pdf]
* [[Ernst A. Heinz]] ('''1999'''). ''Endgame Databases and Efficient Index Schemes for Chess.'' [[ICGA Journal#22_1|ICCA Journal, Vol. 22, No. 1]], [http://people.csail.mit.edu/heinz/ps/edb_index.ps.gz ps]
* [[Ernst A. Heinz]] ('''1999'''). ''Knowledgeable Encoding and Querying of Endgame Databases.'' [[ICGA Journal#22_2|ICCA Journal, Vol. 22, No. 2]], [http://people.csail.mit.edu/heinz/ps/know_edb.ps.gz ps]
* [[Christoph Wirth]], [[Jürg Nievergelt]] ('''1999'''). ''Exhaustive and Heuristic Retrograde Analysis of the KPPKP Endgame.'' [[ICGA Journal#22_2|ICCA Journal, Vol. 22, No. 2]]<ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=2923 Chris Wirth's endgame tablebases] by [[Denis Mendoza|Denis P. Mendoza]], [[Computer Chess Forums|CCRL Endgame Tablebases]], December 13, 2007 » [[Chessterfield]]</ref>
* [[Eugene Nalimov]], [[Christoph Wirth]], [[Guy Haworth]] ('''1999'''). ''[http://centaur.reading.ac.uk/4564/ KQQKQQ and the Kasparov-World Game]''. [[ICGA Journal#22_4|ICCA Journal, Vol. 22, No. 4]]
* [[Ulrich Thiemonds]] ('''1999'''). ''Ein regelbasiertes Spielprogramm für Schachendspiele''. [https://en.wikipedia.org/wiki/University_of_Bonn University of Bonn], Diploma Diplom thesis, [httphttps://www.iaiidb.uni-bonn.de/~idbpublications/diplomarbeitenda/thiemonds99.psda_thiemonds_1999.gz zipped pspdf pdf] (German)
* [[Chrilly Donninger]] ('''1999'''). ''Der Fortschritt ist nicht aufzuhalten - Chrilly Donninger über Endspieldatenbanken''. [[Computerschach und Spiele|CSS]] 6/99, [http://www.mustrum.de/chrilly/tbs.pdf pdf] (German)
==2000 ...==
* [[Ken Thompson]] ('''2000'''). ''The Longest: KRNKNN in 262''. [[ICGA Journal#23_1|ICGA Journal, Vol. 23, No. 1]]
* [[Peter Karrer]] ('''2000'''). ''KQQKQP and KQPKQP≈''.[[ICGA Journal#23_2|ICGA Journal, Vol. 23, No. 2]] <ref>[https://en.wikipedia.org/wiki/Kasparov_versus_the_World Kasparov versus the World from Wikipedia]</ref>
* [[Guy Haworth]] ('''2000'''). ''The Kasparov-World Game''. [https://en.wikipedia.org/wiki/EG_(magazine) EG], Vol. 9, pp. 107-111
* [[Guy Haworth]] ('''2000'''). ''Six-Man Oracle Survey''. [https://en.wikipedia.org/wiki/EG_(magazine) EG], Vol. 9, pp. 111-112
* [[Guy Haworth]] ('''2000'''). ''Tablebases and tables''. [https://en.wikipedia.org/wiki/EG_(magazine) EG], Vol. 9, pp. 151
* [[Guy Haworth]] ('''2000'''). ''Qualified Statistics''. [https://en.wikipedia.org/wiki/EG_(magazine) EG], Vol. 9, pp. 239
* [[Guy Haworth]] ('''2000'''). ''Chess Endgames: Currents and Futures''. [[5th Computer Olympiad#Workshop|5th Computer Olympiad Workshop]]
* [[Thomas Lincke]], [[Ambros Marzetta]] ('''2000'''). ''Large Endgame Databases with Limited Memory Space''. [[5th Computer Olympiad#Workshop|5th Computer Olympiad Workshop]]
'''2002'''
* [[Guy Haworth]] ('''2002'''). ''[http://centaur.reading.ac.uk/4552/ Secrets of Pawnless Endings]''. [[ICGA Journal#25_2|ICGA Journal, Vol. 25, No. 2]]
* [[Eugene Nalimov|Eugène Nalimov]] ('''2002'''). ''Chess Endgame Tablebases''. Invited Lecture, [[7th Computer Olympiad#Workshop|7th Computer Olympiad Workshop]]
* [[Guy Haworth]] ('''2002'''). ''Reference Fallible Endgame Play''. [[7th Computer Olympiad#Workshop|7th Computer Olympiad Workshop]], [http://centaur.reading.ac.uk/4579/1/2002c_CoW7_H_Reference_Fallible_Endgame_Play.pdf pdf]
* [[Ren Wu]], [[Don Beal]] ('''2002'''). ''A memory efficient retrograde algorithm and its application to solve Chinese Chess endgames.'' [http://library.msri.org/books/Book42/ More Games of No Chance] edited by [[Richard J. Nowakowski]]
==2005 ...==
* [[Joe Leslie-Hurd|Joe Hurd]] ('''2005'''). ''Formal Verification of Chess Endgame Databases''. in [[Joe Leslie-Hurd|Joe Hurd]], Edward Smith, [http://www.informatik.uni-trier.de/~ley/pers/hd/d/Darbari:Ashish Ashish Darbari] ''Theorem proving in higher order logics: Emerging trends proceedings''. Technical Report PRG-RR-05-02, [http://de.wikipedia.org/wiki/University_of_Oxford Oxford University] Computing Laboratory, [http://www.gilith.com/research/papers/chess.pdf pdf]
* [[Jesper Torp Kristensen]] ('''2005'''). ''[httphttps://jespertkissuu.dkcom/Jesperjespertk/publicdocs/master_thesis/ Generation and compression of endgame tables in chess with fast random access using OBDDs]''. Master thesis, Supervisor supervisor [[Mathematician#Miltersen|Peter Bro Miltersen]], [https://en.wikipedia.org/wiki/Aarhus_University Aarhus University], [http://jespertk.dk/Jesper/public/master_thesis/report/report.pdf pdf] <ref>[https://en.wikipedia.org/wiki/Binary_decision_diagram OBDD - Ordered Binary Decision Diagram from Wikipedia]</ref>
* [[Guy Haworth]] ('''2005'''). ''[http://centaur.reading.ac.uk/4522/ 6-Man Chess Solved]''. [[ICGA Journal#28_3|ICGA Journal, Vol. 28, No. 3]]
* [[Marc Bourzutschky]], [[John Tamplin]], [[Guy Haworth]] ('''2005'''). ''[http://centaur.reading.ac.uk/4524/ Chess endgames: 6-man data and strategy]''. Theoretical Computer Science, Vol. 349, No. 2
* [[Guy Haworth]] ('''2014'''). ''Chess Endgame News''. [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]] » [[Syzygy Bases]]
* [[Guy Haworth]] ('''2014'''). ''Chess Endgame News''. [[ICGA Journal#37_3|ICGA Journal, Vol. 37, No. 3]] » [[Syzygy Bases]]
* [[Guy Haworth]] ('''2014'''). ''[http://centaur.reading.ac.uk/34268/ Chess Endgame Records (dataset)]''.
==2015 ...==
* [[Nikolaos Papahristou]], [[Ioannis Refanidis]] ('''2015'''). ''Constructing Pin Endgame Databases for the Backgammon Variant Plakoto''. [[Advances in Computer Games 14]] <ref>[https://en.wikipedia.org/wiki/Plakoto Plakoto from Wikipedia]</ref>
* [[Karsten Müller]] ('''2017'''). ''Tablebases, Fermat, Knights and Knightmares''. [[ICGA Journal#39_2|ICGA Journal, Vol. 39, No. 2]]
* [[Guy Haworth]] ('''2017'''). ''Chess Endgame News''. [[ICGA Journal#39_2|ICGA Journal, Vol. 39, No. 2]]
* [[Hung-Jui Chang]], [[Gang-Yu Fan]], [[Jr-Chang Chen]], [[Chih-Wen Hsueh]], [[Tsan-sheng Hsu]] ('''2017'''). ''[https://link.springer.com/chapter/10.1007/978-3-319-75931-9_10 Validating and Fine-Tuning of Game Evaluation Functions Using Endgame Databases]''. [[Conferences#IJCAI2017|CGW@IJCAI 2017]]
'''2018'''
* [[Hung-Jui Chang]], [[Jr-Chang Chen]], [[Gang-Yu Fan]], [[Chih-Wen Hsueh]], [[Tsan-sheng Hsu]] ('''2018'''). ''Using Chinese dark chess endgame databases to validate and fine-tune game evaluation functions''. [[ICGA Journal#40_2|ICGA Journal, Vol. 40, No. 2]] » [[Chinese Dark Chess]]
'''2019'''
* [[Karsten Müller]], [[Guy Haworth]] ('''2019'''). ''FinalGen revisited: new discoveries''. [[ICGA Journal#41_1|ICGA Journal, Vol. 41, No. 1]] » [[FinalGen]]
* [[Karsten Müller]], [[Guy Haworth]] ('''2019'''). ''Stalemate and ‘DTS’ depth to stalemate endgame tables''. [[ICGA Journal#41_4|ICGA Journal, Vol. 41, No. 4]] » [[Stalemate]]
==2020 ...==
* [[Guy Haworth]] ('''2020'''). ''CEN: Thomas Ströhlein’s Endgame Tables, a 50th Anniversary''. [[ICGA Journal#42_23|ICGA Journal, Vol. 42, Nos. 2-3]]
* [[Rejwana Haque]], [[Ting Han Wei]], [[Martin Müller]] ('''2021'''). ''On the Road to Perfection? Evaluating Leela Chess Zero Against Endgame Tablebases''. [[Advances in Computer Games 17]]
* [[Dave Gomboc]], [[Christian R. Shelton]] ('''2021'''). ''Chess endgame compression via logic minimization''. [[Advances in Computer Games 17]]
=Forum Posts=
* [https://www.stmintz.com/ccc/index.php?id=203322 3-3 tablebase (with pawns) suggestion] by [[Shane Hudson]], [[CCC]], December 23, 2001
* [https://www.stmintz.com/ccc/index.php?id=224008 Interesting EGTB bug] by [[Tom Likens]], [[CCC]], April 16, 2002
* [https://www.stmintz.com/ccc/index.php?id=224950 Question to Dieter Buerssner] by [[Alvaro Cardoso]], [[CCC]], April 21, 2002
* [https://www.stmintz.com/ccc/index.php?id=287563 How to handle EGTB stalemates] by [[Tom Likens]], [[CCC]], March 02, 2003 » [[Stalemate]]
* [https://www.stmintz.com/ccc/index.php?id=290629 EGTB generation with 1 bit per position?] by [[Martin Fierz]], [[CCC]], March 25, 2003
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=4307 EGTB compression] by [[Stef Luijten]], [[Computer Chess Forums|Winboard Forum]], February 10, 2006
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=2759 utility for testing tablebases integrity] by [[Victor Zakharov]], [[Computer Chess Forums|CCRL Discussion Board]], October 24, 2007
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=2923 Chris Wirth's endgame tablebases] by [[Denis Mendoza|Denis P. Mendoza]], [[Computer Chess Forums|CCRL Endgame Tablebases]], December 13, 2007 » [[Chessterfield]]
* [http://www.talkchess.com/forum/viewtopic.php?t=19178 EGTB compression (H. G. Muller tablebase...)] by [[Dann Corbit]], [[CCC]], January 25, 2008
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=3220 Endgame Metrics] by [[Joshua Shriver]], [[Computer Chess Forums|CCRL Discussion Board]], March 04, 2008
: [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=3220&start=16 Re: Endgame Metrics] by [[John Kominek]], [[Computer Chess Forums|CCRL Discussion Board]], March 12, 2008
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=3934 DTR is no good!] by [[Harm Geert Muller]], [[Computer Chess Forums|CCRL Discussion Board]], September 24, 2008
* [http://www.talkchess.com/forum/viewtopic.php?t=25311 Gaviota's Endgame Tablebases] by [[Miguel A. Ballicora]], [[CCC]], December 07, 2008 » [[Gaviota Tablebases]]
* [http://www.talkchess.com/forum/viewtopic.php?t=25546 Creating EGTBs] by [[Carey Bloodworth|Carey]], [[CCC]], December 21, 2008
* [http://www.talkchess.com/forum/viewtopic.php?t=26184 Other endgame tablebase generators] by [[Denis Mendoza|Denis P. Mendoza]], [[CCC]], January 23, 2009
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=4219 Other endgame tablebase generators] by [[Denis Mendoza|Denis P. Mendoza]], [[Computer Chess Forums|CCRL Endgame Tablebases]], January 28, 2009
==2010 ...==
* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=5163 KK partitioning+very cheap compression fit in 8 GB (7-man)] by [[Urban Koistinen]], [[Computer Chess Forums|CCRL Discussion Board]], May 30, 2010
* [http://www.open-chess.org/viewtopic.php?f=3&t=778 Some tablebase formats] by [[Mark Watkins|BB+]], [[Computer Chess Forums|OpenChess Forum]], November 25, 2010
* [http://www.open-chess.org/viewtopic.php?f=5&t=779 Retrograde tablebase methods] by [[Mark Watkins|BB+]], [[Computer Chess Forums|OpenChess Forum]], November 26, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=44553 pawn enumeration] by [[Daniel Shawul]], [[CCC]], July 24, 2012
'''2013'''
* [http://www.talkchess.com/forum/viewtopic.php?t=47681 New 6-piece tablebases] by [[Ronald de Man]], [[CCC]], April 01, 2013* [http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=6971 New 6-piece tablebase generator] by [[Ronald de Man|syzygy]], [[Computer Chess Forums|CCRL Discussion Board]], April 01, 2013 » [[Syzygy Bases]]
* [http://www.talkchess.com/forum/viewtopic.php?t=47768 Complete 7-piece tablebases are out!] by [[Albert Silver]], [[CCC]], April 12, 2013 <ref>[http://chessok.com/?page_id=27966 Lomonosov Endgame Tablebases] - [[ChessOK]]</ref>
* [http://www.talkchess.com/forum/viewtopic.php?t=49592 Multithreaded LRU] by [[Alvaro Cardoso]], [[CCC]], October 06, 2013 » [[Memory]]
* [http://www.talkchess.com/forum/viewtopic.php?t=50962 On-demand tablebase generation] by [[Evert Glebbeek]], [[CCC]], January 19, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=51847 Endgame tablebase generation for newbies] by [[Alberto Sanjuan]], [[CCC]], April 04, 2014
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=51883 Reducing tablebase size with search] by [[Russell Reagan]], [[CCC]], April 07, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=53244 A different tablebase encoding format] by [[Steven Edwards]], [[CCC]], August 10, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=54064 Tablebase access using a Solid State Disk] by [[Steven Edwards]], [[CCC]], October 16, 2014 » [[Memory]]
* [http://www.talkchess.com/forum/viewtopic.php?t=66423 Question about EGT formats] by [[Harm Geert Muller]], [[CCC]], January 26, 2018
* [http://www.talkchess.com/forum/viewtopic.php?t=66754 The history of Syzygy tablebases] by Isaac Haïk Dunn, [[CCC]], March 06, 2018 » [[Syzygy Bases]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=67536 DTM50] by [[Ronald de Man]], [[CCC]], May 22, 2018
'''2019'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69447 Generate EGTB with graphics cards?] by [[Pham Hong Nguyen|Nguyen Pham]], [[CCC]], January 01, 2019 » [[GPU]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72158 longest 6-man EGTB win] by Zenmastur, [[CCC]], October 24, 2019
==2020 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=73332 Retrograde analysis - TBs move sequences to checkmate] by Hedinn Steingrimsson, [[CCC]], March 12, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=73481 Using Freeware AI and Dynamically Generated Endgame Tablebases] by Steve Schooler, [[CCC]], March 27, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=73598 Almost perfect DTM tablebase] by [[Dann Corbit]], [[CCC]], April 08, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76089 Asynchronous tablebase lookups] by [[Steinar H. Gunderson|Sesse]], [[CCC]], December 17, 2020 <ref>[https://kernel.dk/io_uring.pdf?source=techstories.org io_uring.pdf]</ref>
'''2021'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76659 Stalemate Tablebases] by Dries De Clercq, [[CCC]], February 21, 2021 » [[Stalemate]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77249 knbk DTM] by [[Martin Sedlak]], [[CCC]], May 05, 2021 » [[KBNK Endgame]], [[#DTM|DTM]]
: [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77249&start=4 Re: knbk DTM] by [[Harm Geert Muller]], [[CCC]], May 05, 2021 » [[Marcel van Kervinck|Marcel van Kervinck's]] pretty fast kbnk generator
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77899 tablebase neural nets] by [[Robert Pope]], [[CCC]], August 07, 2021 » [[Neural Networks]]
'''2022'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=80696 endgame table generation] by [[Dave Gomboc]], [[CCC]], September 17, 2022
=External Links=
* [[ICGA#Topics]]: [httphttps://ilkicga.uvt.nlorg/icga/games/chess/endgames.php Chess Endgames] , [[ICGA]] site compiled by [[Guy Haworth]] and colleagues
* [https://en.wikipedia.org/wiki/Endgame_tablebase Endgame tablebase from Wikipedia]
* [http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:egtbs_list Endgame Tablebases and Bitbases List] from [http://computer-chess.org/doku.php?id=home Computer-Chess Wiki] by [[Ron Murawski]]
* [http://www.horizonchess.com/FAQ/Winboard/weaktablebase.html Can use of endgame tablebases weaken play?] from [http://www.horizonchess.com/FAQ/Winboard/index.html FAQ on Winboard and Chess Engines] by [[Aaron Tay]]
* [http://rjlipton.wordpress.com/2010/05/12/can-we-solve-chess-one-day/ Can We Solve Chess One Day? | Gödel's Lost Letter and P=NP] by [[Mathematician#RJLipton|Dick Lipton]], May 12, 2010
* [https://pluslevelup.googlegitconnected.com/100454521496393505718/posts 7build-your-own-chess-endgame-monster-a3fb23bb3ec1 Build Your Own Chess Endgame Monster -man TBLevel Up Coding] - by [[https://en.wikipedia.org/wiki/Google%2B Google+Don Cross]], February 17, 2020 ==GitHub==
* [https://github.com/syzygy1/tb syzygy1/tb · GitHub] by [[Ronald de Man]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=47681 New 6-piece tablebases] by [[Ronald de Man]], [[CCC]], April 01, 2013</ref>
* [https://github.com/dshawul/Scorpio dshawul/Scorpio · GitHub] includes Six men egbb code » [[Scorpio Bitbases]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=50894 Scorpio 6men EGBB Now available] by [[Joshua Shriver]], [[CCC]], January 14, 2014</ref>
* [https://github.com/kervinck/pfkpk kervinck/pfkpk · GitHub] » [[KPK]] [[Endgame Bitbases|Bitbase]] by [[Marcel van Kervinck]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57517 Yet another KPK endgame table generator: pfkpk] by [[Marcel van Kervinck]], [[CCC]], September 05, 2015</ref>
* [https://github.com/cosinekitty/endgame GitHub - cosinekitty/endgame: Chess endgame database generator] by [[Don Cross]]
==[[ChessBase]]==
* [http://en.chessbase.com/post/perfect-endgame-play-with-tablebases Perfect endgame play – with tablebases], [[ChessBase|ChessBase News]], April 21, 2015
* [http://en.chessbase.com/post/just-one-of-17-823-400-766-positions-2 Just one of 17,823,400,766 positions] by [[Frederic Friedel]], [[ChessBase|ChessBase News]], April 23, 2015
* [https://en.chessbase.com/post/endgame-tablebases-a-short-history Endgame tablebases: A short history] [[Albert Silver]], [[ChessBase|ChessBase News]], March 16, 2018
==[[ChessOK]]==
==Online Lookup==
* [https://www.chessdb.cn/queryc_en/ Chess Cloud Database Query Interface] by [[Bojun Guo|noobpwnftw]] [[Syzygy Bases|Syzygy]] DTZ50 probing
* [http://tb7.chessok.com/ Lomonosov - online 7-man tablebases]
* [http://chessok.com/?page_id=361 Endgame Nalimov Tablebases Online] by [[ChessOK]]
==Statistics==
* [httphttps://cm.bell-labsulthiel.com/who/ken/chesseg.html 6-Piece Database Statistics] by [[Ken Thompson]], 2000* [http://scid.sourceforge.net/tbstats.html Tablebase endgame frequency statistics]* [http://www.mathematik.uni-stuttgart.de/~thielmath/miscother/endgames/ Theoretical statistics for chess endgames with up to five pieces] by [[Mathematician#UlrichThiel|Ulrich Thiel]]
=References=

Navigation menu