Info from the readme: Deuterium Documentation readme.txt Version 06.06.23.04 July 2, 2006 fsmosca2004@yahoo.com Contents: A. Introduction B. Acknowledgement C. Distribution files D. Engine Internal Features E. Engine Development History F. Basic Engine Capability Features G. Engine books H. Book Learning I. Auto saving of games J. Commands K. To do lists L. Contacts/email A. Introduction Deuterium is a chess engine that is based on a popular chess program TSCP by Tom Kerrigan. TSCP stands for Tom's Simple Chess Program. You can use Deuterium as an engine to run on a Graphical User Interface (GUI). An excellent free chess GUI called winboard developed by Tim Mann can be used to play a game. This GUI can be found at http://www.tim-mann.org/chess.html. Another chess GUI called Arena by Martin Blume can be found at http://www.playwitharena.com. B. Acknowledgement 1. Tom Kerrigan – the author of TSCP from where Deuterium is based, thanks for the permission. 2. Dieter Buersner – gives me ideas on the basic concept of how computer plays chess. He is also the author of the strong interesting program YACE. 3. Leo Dijksman - for authoring a great computer chess tournaments and hosting Deuterium. 4. Bob Hyatt – interesting posts at CCC, and the open source code of his strong program Crafty, I read crafty source codes from time to time. 5. Dan Corbit - his site contains a lot of information about computer chess programming, including source codes to study. 6. Bruce Moreland – excellent web site about comptuter chess programming. 7. Ed Schroder – very informative and excellent writings about his chess engine Rebel, One of my inspirations to study more on chess programming. 8. Tim Mann – he is responsible for the further development of great chess GUI called winboard. 9. Martin Blume - Developer of a beautiful Chess GUI called Arena. 10. Odd Gunnar Malin - a chess programmer who develops winboard to UCI adapter so that winboard engine can run as UCI engine in Chess interface like Chessbase GUI and others. 11. All authors of computer chess programing articles. 12. Computer Chess Club - good place to sharpen/broaden computer chess knowledge. 13. Winboard Chess Forum - informative forum about winboard and computer chess, including chess tournaments and programming. 14. All the people who have tried to test and play Deuterium. 15. Deuterium has a logo now, thanks to David Dahlem. 16. All programmers who have shared source codes of their programs. 17. Daniel Shawul - a programmer of chess program Scorpio is responsible in generating end game bitbases (egbb) for his program. He also writes the dll and provided some codes so that the end game bitbases can be used by other chess engines. Deuterium can now use the bitbases, many thanks. 18. Eugene Nalimov - the creator of end game database called end game tablebase(egtb). The Bitbases of Daniel Shawul were created from his egtb. C. Distribution files: 1. deuterium.exe 2. deuterium.ini 4. readme.txt (the file you are reading now) D. Basic Program Feature 1. Alpha-beta search 2. Iterative deepening 3. Static evaluation 4. Transposition Hash Tables 5. Killer move heuristics 6. History heuristics 7. PVS search 8. Adaptive Null move pruning with (R=2/3) 9. Quiecense search (captures/checks) 10. Internal Iterative deepening 11. End game bitbases 12. Book creation and book learning 13. Late Move Reduction E. Engine History Version 1.0 1. Added aspiration window search 2. Added null move heuristic 3. Added recapture, 7th rank pawn push and ending extensions 4. Able to claim draw due to insufficient material 5. Added feature to resign when the score of the last 3 moves is less than or equal to -700 (7 pawns) 6. Added Killer moves for move ordering 7. Modify history heuristics 8. Improve static evaluation 9. Improve time control handling for conventional and incremental time controls. 10. Provided 4 books to use, 2 for white (wsmall.dbk & wbig.dbk), and 2 for black (bsmall.dbk & bbig.dbk). 11. Some code optimizations Version 1.01 1. Fixed a bug where the engine can not play more than one game in a series of games under winboard when either one of the 4 books is missing. 2. Fixed a minor bug in pawn evaluation. 3. Added knight outposts in evaluation. 4. Rewrite king evaluation codes 5. Small opening books are updated (wsmall.dbk and bsmall.dbk) 6. Remove "update.txt" and use only "readme.txt" as information source. Version 1.02 1. Fixed a couple of bugs at evaluation functions 2. Added bishop and rook mobility 3. Modify aspiration window search scheme 4. Updated small books (wsmall.dbk and bsmall.dbk) 5. Modify resign code 6. Some tweaks to king evaluation Version 04.01.04.18 notes on new version numbering system: 04 -- last 2 digit of the year this version is released, (year 2004) 01 -- first release on the above year, (1st for 2004) 04 -- total number of releases since the 1st release, (4th overall) 18 -- number of development versions since the last release, (18th since v 1.02) 1. Fixed some bugs in pawn evaluation 2. Improve bishop and rook mobility codes in evaluation function 3. Improve king safety evaluation 4. Added piece mobilities in move ordering 5. Added piece attacks to king in move ordering 6. Added connected passer evaluation 7. Do check extension in qsearch 8. Updated small books (wsmall.dbk and bsmall.dbk) 9. Improve time control handling 10. Optimize some codes 11. Version numbering system changed, to improve readability of program version informations for both user and me. Version 04.02.05.12 1. Fixed a bug where Deuterium will not accept under promotion 2. Remove piece mobilities in move ordering 3. Remove check extension in qsearch 4. Remove piece attacks to opp king in moveordering 5. Added knowledge on rook-pawn and wrong bishop color ending 6. Added knowledge on rook vs connected passer at 6th rank ending 7. Done some speed up using two attack functions 8. Is able to play more than 200 moves Major Tournament Result Achievement: 1st in Division 6 of Edition 7 done by Leo Dijksman Version 04.03.06.68 1. Fixed a lot of bugs in search extensions 2. Fixed a lot of bugs in eval 3. Draw claim by insufficient material is improved/fixed, rare mate positions with minor pieces remaining should have been avoided. 4. Remove bishop and rook mobilities in eval for a little speed up. 5. Now using fractional extensions 6. Modify attack functions 7. Modify move ordering, piece attacks to square near opponent king position is enabled 8. Improve bishop eval so that immobility is avoided 9. Added some search informations after searching a move 10. Updated two small books 11. Initialization file is added to handle book and resign options. version 04.04.07.19 1. improve extension 2. remove recapture ext, remove 3xcheck extension 3. improve evaluation 4. fixed a bug in book option in initialization file 5. improve history and killer heuristics 6. implement some pruning in main search 7. remove aspriration window scheme version 05.01.08.62 1. Fixed some ending evaluations 2. Use transposition table 3. Improve evaluation on castled/uncastled king in the opening 4. Improve history heuristics 5. Count material in makemove() and unmakemove() 6. Implement easy move when the king is in check 7. Added recapture extension with limits 8. Limit all except check extension 9. Use aspiration window scheme 10. Added rook mobility in evaluation version 05.02.09.04 1. Modify evaluation 2. Improve extension 3. Modify hash codes version 05.03.10.06 1. Fixed some bugs in transposition table codes version 05.04.11.14 (released for ChessWar tournament) 1. Use new method to store positions version 05.05.12.08 1. Remove rook mobility 2. Added Internal Iterative Deepening version 05.06.13.01 1. Fixed a bug by declaring a variable as global instead of a local. version 05.07.14.01 1. Remove Internal Iterrative Deepening version 05.08.15.12 1. Improve history heuristics 2. Improve Null move pruning version 05.09.16.59 1. Fixed some bugs in killer moves, move ordering, minor piece ending and potential passer evaluation. 2. Remove Razoring, and recapture extension. 3. Remove extension limits on pawn push to 7th rank, minor ending and pawn endings. 4. Improve kpk, rook, bishop and knight evaluation. 5. Improve transposition table codes and null move heuristics. 6. Added Bishop mobility. version 05.10.17.11 1. Fixed yet another bug in mate killer moves 2. Improve move ordering. 3. Improve search extension codes. Version 06.01.18.41 1. Fixed a bug in king safety eval 2. Bug fixes in evaluation of positions where materials are not equal. 3. In qsearch, when in check, only return beta if evaluation less some margin can make it to beta. 4. Added pin scoring in evaluation function. 5. The use of End game bitbases is now possible because of Daniel Shawul. Egbb of Scorpio can also be used by Deuterium. Please see the modified deuterium.ini file. Modify the "EGBB PATH" for the actual egbb location on your hard drive. Included in this release is the file egbbdll.dll, put this in the directory where the egbb files are located. Please be noted that egbb will use 18MB of memory. To verify that egbb is loaded, start deuterium in console mode and you will notice the comments that egbb is loaded. Version 06.02.19.01 1. Version to avoid loss on time, Many thanks to Leo Dijksman for the info about the bug of the last released version. Version 06.03.20.106 (june 11, 2006) 1. Implemented auto-saving of games in pgn format. 2. Added support for setboard command. 3. Added book learning, bad opening lines will be written to 2 files, in the next version, these files will be used automatically by the engine. Currently the files generated will be used to improve books manually. 4. Added Internal Iterative Deepening. 5. Added Late Move Reduction. 6. Improved static evaluation 7. Added extended futility pruning. 8. Use adaptive null move pruning (R=2/3) 9. Improve time management, quick recapture, extend when close to trouble and abort search if remaining time is not enough to search next iteration. 10. Improve probing of endgame bitbases, many thanks to Daniel Shawul. Version 06.04.21.01 1. Improve evaluation function 2. Disable futility pruning 3. Modify LMR Version 06.05.22.01 1. Minor Optimization to search function 2. Use new compiler with a speed up gain of about (50%) Version 06.06.23.04 1. Some improvement to evaluation 2. Modify Late Move reduction F. Basic Engine Feature Capability 1. Move now---------------------------------------NO 2. Edit Mode--------------------------------------YES 3. Analyze Mode-----------------------------------NO 4. Opening Book-----------------------------------YES 5. Create Book------------------------------------YES 6. Ponder On/Off----------------------------------NO 7. Hash Tables------------------------------------YES 8. End Game database------------------------------YES 9. Draw Claim-------------------------------------YES 10. Resign----------------------------------------YES 11. Force and Go----------------------------------YES 12. Program Language------------------------------C 13. Source Available------------------------------NO 14. Learn-----------------------------------------NO 15. Xboard----------------------------------------NO 16. UCI-------------------------------------------NO G. Engine Books 1. Usage Deuterium is using 4 books, 2 books for white and 2 books for black. White side has wsmall.dbk and wbig.dbk, while black has bsmall.dbk and bbig.dbk. During a game the engine will search first on the small books, if no moves are found there then it will search in the big books. Actually the small books are meant to guide the engine to avoid as much as possible inferior opening lines. 2. Create Deuterium is using a book from a text file. You can create a book with entries like e2e4 e7e5 ... etc and save it as wsmall.dbk (small book for white) or bsmall.dbk (small book for black), or you can modify the book in the package, wsmall.dbk and bsmall.dbk. H. Book Learning There are two learn files that will be written whenever Deuterium encountered difficulties in its opening line during game play. These are deu_bad_Wbook.lrn and deu_bad_Bbook.lrn. A book line is considered bad if there are at least 3 moves with an evaluation of minus score, on the first 10 moves out of book. Playing with white, bad book lines will be written to deu_bad_Wbook.lrn, while playing with black, bad book lines will be written to deu_bad_Bbook.lrn. These files will be used for manual (at the moment) inspection as basis for improving book lines. The file format is a text file, similar to pgn files in long algebraic notation but without move numbers. The learning is triggered also when the time control used is at least 5 minutes for the whole game. I. Auto saving of Games By default games played by Deuterium will be saved to DeuteriumGames.pgn file however it can be disabled by editing the option in Auto_Save_Game to OFF in deuterium.ini file. Saving of games is only possible if Deuterium received the result command. J. Commands you can type "help" after executing deuterium.exe When playing under winboard, typical entries in winboard.ini file are: "deuterium" /fd="c:\winboard\deuterium" "deuterium" /sd="c:\winboard\deuterium" K. To do list 1. Analyses of game records to catch bugs or as basis for improvement 2. Read / review codes to catch errors and improve codes 3. Improve evaluation functions 4. Improve book 5. Improve book learning L. Email/Comments I will be grateful for bug reports and game records from matches and tournaments or any other comments and queries. E-mail: fsmosca2004@yahoo.com M. Links Twisted Logic Chess Engine by Edsel Apostol -another chess engine from the Philippines, Deuterium's buddy.
Visited
times since October 19, 2005.