Changes

Jump to: navigation, search

Cheng

6,964 bytes added, 16:02, 23 January 2019
Created page with "'''Home * Engines * Cheng''' '''Cheng''',<br/> an UCI compliant open source chess engine by Martin Sedlak, written in Cp..."
'''[[Main Page|Home]] * [[Engines]] * Cheng'''

'''Cheng''',<br/>
an [[UCI]] compliant [[:Category:Open Source|open source chess engine]] by [[Martin Sedlak]], written in [[Cpp|C++]] as exercise in [[Generic Programming|generic programming]], first released as Cheng3 in April 2011.
Cheng is able to play [[Chess960]], target platforms are [[Windows]], [[Linux]], [[Mac OS]] and [[Android]] systems <ref>[http://www.aartbik.com/MISC/eng.html UCI and XBoard Engines for Android] by [[Aart Bik]]</ref>. '''Cheng4''' 0.38, released in January 2015, is available at [https://en.wikipedia.org/wiki/GitHub GitHub] under the permissive [https://en.wikipedia.org/wiki/Zlib_License zlib license] <ref>[https://github.com/kmar/cheng4 GitHub - kmar/cheng4: cheng4 chess engine]</ref>.

=Description=
Cheng <ref>Description based on '''Cheng4''' 036c</ref> is a [[Bitboards|bitboard]] engine using [[Magic Bitboards#Fancy|fancy magic bitboards]] to determine [[Sliding Piece Attacks|sliding piece attacks]]. It applies [[Move Generation#Staged|staged move generation]].

==Search==
The [[Parallel Search|parallel]] [[Thread|multi-threaded]] [[Search|search]] performs [[Principal Variation Search|PVS]] [[Alpha-Beta|alpha-beta]] with a [[Shared Hash Table|shared]] [[Transposition Table|transposition table]] inside a [[Depth#FractionalPlies|fractional ply]] [[Iterative Deepening|iterative deepening]] framework with [[Aspiration Windows|aspiration windows]], featuring [[Lazy SMP]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=55188 Lazy SMP in Cheng] by [[Martin Sedlak]], [[CCC]], February 02, 2015</ref>. Search routines are instantiated at [https://en.wikipedia.org/wiki/Compile_time compile time] from a [[Generic Programming|generic routine]] with three boolean [https://en.wikipedia.org/wiki/Template_%28C%2B%2B%29#Function_templates template parameters], [[Node Types#PV|PV-node]], [[Check|in check]], and [[Null Move Pruning|null move pruning]] on-off, similar [[Quiescence Search|quiescence search]] has four instances for on-off combinations of PV-node and check. Further [[Selectivity|selectivity]] is applied by [[Mate Distance Pruning|mate distance pruning]], [[Razoring|razoring]], [[Internal Iterative Deepening|IID]], [[Futility Pruning|futility pruning]], [[Check Extensions|check extensions]] and [[Late Move Reductions|late move reductions]]. [[Move Ordering|Move ordering]] is improved by the [[Killer Heuristic|killer-]] and [[History Heuristic|history heuristic]].

==Evaluation==
[[Evaluation]] employs three further [[Hash Table|hash tables]] - [[Evaluation Hash Table|evaluation hash table]], [[Material Hash Table|material hash table]] and [[Pawn Hash Table|pawn hash table]]. The evaluation function determines hardware [[Population Count|population count]] support at compile time, passed as template parameter to internal eval functions, finally adding a [[Tempo|tempo bonus]]. Pawn and piece specific evaluators are further implemented with a color template, considering [[Pawn Structure|pawn structure]], [[Mobility|mobility]], [[King Safety|king safety]] and various piece pattern. Most of the gain in '''Cheng4''' 0.38, released in January 2015, is due to [[Automated Tuning|eval tuning]] using the [[Texel's Tuning Method]] by [[Peter Österlund]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=55000 cheng4 0.38 release] by [[Martin Sedlak]], [[CCC]], January 18, 2015</ref>.

=Forum Posts=
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=38792 cheng3 uci v1.0] by [[Martin Sedlak]], [[CCC]], April 19, 2011
* [http://www.talkchess.com/forum/viewtopic.php?t=39191 cheng3 1.03 released] by [[Martin Sedlak]], [[CCC]], May 27, 2011
* [http://www.talkchess.com/forum/viewtopic.php?t=40531 cheng3 1.05 released] by [[Martin Sedlak]], [[CCC]], September 26, 2011
* [http://www.talkchess.com/forum/viewtopic.php?t=41181 cheng3 1.06 released] by [[Martin Sedlak]], [[CCC]], November 23, 2011
* [http://www.talkchess.com/forum/viewtopic.php?t=42097 cheng3 1.07 released] by [[Martin Sedlak]], [[CCC]], January 21, 2012
* [http://www.talkchess.com/forum/viewtopic.php?t=49443 cheng4 0.35] by [[Martin Sedlak]], [[CCC]], September 24, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=50014 cheng4 0.36] by [[Martin Sedlak]], [[CCC]], November 10, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=50081 cheng4 0.36a (FRC bugfix)] by [[Martin Sedlak]], [[CCC]], November 15, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=51110 cheng4 0.36c - last version] by [[Martin Sedlak]], [[CCC]], January 30, 2014
* [http://www.open-chess.org/viewtopic.php?f=5&t=2584 Tragic that Martin Sedlak has discontinued Cheng] by [[Dann Corbit|User923005]], [[Computer Chess Forums|OpenChess Forum]], January 31, 2014
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=54988 Cheng: A great lost to the community] by [[Frank Quisinsky]], [[CCC]], January 15, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=55000 cheng4 0.38 release] by [[Martin Sedlak]], [[CCC]], January 18, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=55188 Lazy SMP in Cheng] by [[Martin Sedlak]], [[CCC]], February 02, 2015 » [[Lazy SMP]]
* [https://groups.google.com/d/msg/fishcooking/VL4pEYZXuuM/wJSehP7SQlYJ Lazy SMP scaling Cheng0.38] by Bertil, [[Computer Chess Forums|FishCooking]], February 24, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=56019 Empirical results with Lazy SMP, YBWC, DTS] by [[Kai Laskos]], [[CCC]], April 16, 2015 » [[Lazy SMP]], [[Young Brothers Wait Concept|YBWC]], [[Dynamic Tree Splitting|DTS]]
* [http://www.talkchess.com/forum/viewtopic.php?t=57046 Cheng 4.39 release] by [[Martin Sedlak]], [[CCC]], July 20, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=58238 Cheng 4.39 Android version bugfix] by [[Martin Sedlak]], [[CCC]], November 13, 2015
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=58866&p=655767 Cheng 4.39 Re-release for the Mac] by [[Michael Byrne|MikeB]], [[CCC]], January 09, 2016

=External Links=
==Chess Engine==
* [https://github.com/kmar/cheng4 GitHub - kmar/cheng4: cheng4 chess engine]
* [http://www.vlasak.biz/cheng/ Cheng chess engine] hosted by [[Emil Vlasák]]
* [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/CHENG/ Index of /chess/engines/Jim Ablett/CHENG] compiled by [[Jim Ablett]] hosted by [[Kirill Kryukov]]
* [http://www.computerchess.org.uk/ccrl/4040/cgi/compare_engines.cgi?family=Cheng&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Cheng] in [[CCRL|CCRL 40/40]]
==Misc==
* [https://en.wikipedia.org/wiki/Cheng Cheng (Disambiguation) from Wikipedia]
* [https://en.wikipedia.org/wiki/Chief_engineer Chief engineer from Wikipedia]

=References=
<references />
'''[[Engines|Up one level]]'''
[[Category:Open Source]]
[[Category:UCI]]
[[Category:Android]]
[[Category:Chess960]]

Navigation menu