Skip to main content
guest
Join
|
Help
|
Sign In
chessprogramming
Home
guest
|
Join
|
Help
|
Sign In
Wiki Home
Recent Changes
Pages and Files
Members
Home
Basics
Getting Started
Board Representation
Search
Evaluation
Principle Topics
Chess
Programming
Artificial Intelligence
Knowledge
Learning
Testing
Tuning
User Interface
Protocols
Dictionary
Lists
Arts
Cartoons
CC Forums
Conferences
Dedicated CC
Engines
Games
Hardware
History
Organizations
Papers
People
Periodical
Samples
Software
Timeline
Tournaments and Matches
Videos
Misc
Acknowledgments
On New Pages
Recommended Reading
Wikispaces Help
Cheng
Edit
0
17
…
8
Tags
960
android
engines
linuxengines
mac
opensourceengines
smpengines
uciengines
Notify
RSS
Backlinks
Source
Print
Export (PDF)
Table of Contents
Description
Search
Evaluation
Forum Posts
2011
2012 ...
2014 ...
External Links
Chess Engine
Misc
References
What links here?
Home
*
Engines
* Cheng
Cheng
,
an
UCI
compliant
open source chess engine
by
Martin Sedlak
, written in
C++
as exercise in
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
[1]
.
Cheng4
0.38, released in January 2015, is available at
GitHub
under the permissive
zlib license
[2]
.
Description
Cheng
[3]
is a
bitboard
engine using
fancy magic bitboards
to determine
sliding piece attacks
. It applies
staged move generation
.
Search
The
parallel
multi-threaded
search
performs
PVS
alpha-beta
with a
shared
transposition table
inside a
fractional ply
iterative deepening
framework with
aspiration windows
, featuring
Lazy SMP
[4]
. Search routines are instantiated at
compile time
from a
generic routine
with three boolean
template parameters
,
PV-node
,
in check
, and
null move pruning
on-off, similar
quiescence search
has four instances for on-off combinations of PV-node and check. Further
selectivity
is applied by
mate distance pruning
,
razoring
,
IID
,
futility pruning
,
check extensions
and
late move reductions
.
Move ordering
is improved by the
killer-
and
history heuristic
.
Evaluation
Evaluation
employs three further
hash tables
-
evaluation hash table
,
material hash table
and
pawn hash table
. The evaluation function determines hardware
population count
support at compile time, passed as template parameter to internal eval functions, finally adding a
tempo bonus
. Pawn and piece specific evaluators are further implemented with a color template, considering
pawn structure
,
mobility
,
king safety
and various piece pattern. Most of the gain in
Cheng4
0.38, released in January 2015, is due to
eval tuning
using the
Texel's Tuning Method
by
Peter Österlund
[5]
.
Forum Posts
2011
cheng3 uci v1.0
by
Martin Sedlak
,
CCC
, April 19, 2011
cheng3 1.03 released
by
Martin Sedlak
,
CCC
, May 27, 2011
cheng3 1.05 released
by
Martin Sedlak
,
CCC
, September 26, 2011
cheng3 1.06 released
by
Martin Sedlak
,
CCC
, November 23, 2011
2012 ...
cheng3 1.07 released
by
Martin Sedlak
,
CCC
, January 21, 2012
cheng4 0.35
by
Martin Sedlak
,
CCC
, September 24, 2013
cheng4 0.36
by
Martin Sedlak
,
CCC
, November 10, 2013
cheng4 0.36a (FRC bugfix)
by
Martin Sedlak
,
CCC
, November 15, 2013
2014 ...
cheng4 0.36c - last version
by
Martin Sedlak
,
CCC
, January 30, 2014
Tragic that Martin Sedlak has discontinued Cheng
by
User923005
,
OpenChess Forum
, January 31, 2014
Cheng: A great lost to the community
by
Frank Quisinsky
,
CCC
, January 15, 2015
cheng4 0.38 release
by
Martin Sedlak
,
CCC
, January 18, 2015
Lazy SMP in Cheng
by
Martin Sedlak
,
CCC
, February 02, 2015 »
Lazy SMP
Lazy SMP scaling Cheng0.38
by Bertil,
FishCooking
, February 24, 2015
Empirical results with Lazy SMP, YBWC, DTS
by
Kai Laskos
,
CCC
, April 16, 2015 »
Lazy SMP
,
YBWC
,
DTS
Cheng 4.39 release
by
Martin Sedlak
,
CCC
, July 20, 2015
Cheng 4.39 Android version bugfix
by
Martin Sedlak
,
CCC
, November 13, 2015
External Links
Chess Engine
GitHub - kmar/cheng4: cheng4 chess engine
Cheng chess engine
hosted by
Emil Vlasák
Index of /chess/engines/Jim Ablett/CHENG
by
Jim Ablett
hosted by
Kirill Kryukov
Cheng4 0.36a 64-bit
in
CCRL 40/40
Misc
Cheng (Disambiguation) from Wikipedia
References
^
UCI and XBoard Engines for Android
by
Aart Bik
^
GitHub - kmar/cheng4: cheng4 chess engine
^
Description based on
Cheng4
036c
^
Lazy SMP in Cheng
by
Martin Sedlak
,
CCC
, February 02, 2015
^
cheng4 0.38 release
by
Martin Sedlak
,
CCC
, January 18, 2015
What links here?
Page
Date Edited
Cheng
Jul 30, 2017
Engine releases
Apr 23, 2018
Engines
Mar 10, 2018
Gavon
Apr 30, 2018
Lazy SMP
Jan 4, 2018
Martin Sedlak
Dec 25, 2017
Parallel Search
Dec 30, 2017
Shared Hash Table
Sep 11, 2017
TCEC Season 6
Dec 2, 2014
TCEC Season 7
Jan 23, 2015
TCEC Season 8
Nov 30, 2015
Up one level
Javascript Required
You need to enable Javascript in your browser to edit pages.
help on how to format text
Turn off "Getting Started"
Home
...
Loading...
Table of Contents
Cheng,
an UCI compliant open source chess engine by Martin Sedlak, written in C++ as exercise in 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 [1]. Cheng4 0.38, released in January 2015, is available at GitHub under the permissive zlib license [2].
Description
Cheng [3] is a bitboard engine using fancy magic bitboards to determine sliding piece attacks. It applies staged move generation.Search
The parallel multi-threaded search performs PVS alpha-beta with a shared transposition table inside a fractional ply iterative deepening framework with aspiration windows, featuring Lazy SMP [4]. Search routines are instantiated at compile time from a generic routine with three boolean template parameters, PV-node, in check, and null move pruning on-off, similar quiescence search has four instances for on-off combinations of PV-node and check. Further selectivity is applied by mate distance pruning, razoring, IID, futility pruning, check extensions and late move reductions. Move ordering is improved by the killer- and history heuristic.Evaluation
Evaluation employs three further hash tables - evaluation hash table, material hash table and pawn hash table. The evaluation function determines hardware population count support at compile time, passed as template parameter to internal eval functions, finally adding a tempo bonus. Pawn and piece specific evaluators are further implemented with a color template, considering pawn structure, mobility, king safety and various piece pattern. Most of the gain in Cheng4 0.38, released in January 2015, is due to eval tuning using the Texel's Tuning Method by Peter Österlund [5].Forum Posts
2011
2012 ...
2014 ...
External Links
Chess Engine
Misc
References
What links here?
Up one level