
Deuterium
by Ferdinand Mosca
Deuterium is a winboard engine that is based on TSCP or Tom's Simple Chess Program by Tom Kerrigan.
https://sites.google.com/site/deuteriumengine/home
Code:
Version 14.2.33.276 (21June2014)
1. Evaluation
a. Remove redundant piece evaluation
b. Re-write pawn storm and pawn king shelter code, this includes hashing for speed
c. Tune pieces mobilities
d. Tune material value and piece square tables via deuterium eval auto-tuner
e. Improve material imbalance scores
f. Improve pawn passer penalties, these are passers that are blocked by own and opp pieces
g. Added bonus score for knights that block enemy isolated pawn
h. Tune bishop pin evaluation
i. Added candidate passer
j. Added hidden passer
k. Fixed a two-bishop bonus, there should be at least 1 light and 1 dark bishop
l. Fixed rook behind own pawn
m. Tune combination attacks to opp king
n. More accurate determination of knight outpost feature
2. Search
a. Added qsearch delta pruning
b. Modify main search futility prunning, equal captures are now not pruned and reduced
c. Do not prune and reduce when the move checks opponent's king in main search
d. Added iteration pruning in main search
e. Do not generate minor promotions except in root nodes
f. Tune late move reductions
g. Do not extend check moves in non-pv nodes
h. Modify time management for TC without increment and move control periods
i. Improve pondering
j. Fixed pawn push to 7th rank extension
k. Allow killer moves to be pruned
l. Added counter move heuristics
m. In move ordering non-capture moves that allows to be captured are penalized
3. Others
a. Disable support of xboard/winboard protocol
b. Implemented uci protocol
c. Some uci options implemented
* Hash
* Ponder
* OwnBook
* MultiPV
* UCI_ShowCurrLine
* UCI_ShowRefutations
* UCI_LimitStrength
* UCI_Elo
* UCI_AnalyseMode
* UCI_Opponent
* UCI_EngineAbout
d. Additional engine options
* EvalHash
* Pawnhash
* Resign
* Log
* DeuteriumRating - for auto calculation of contempt, together with UCI_Opponent info
* Scorpio Egbb options, such as use, cache size, path, load type, and others
* BookFile
* MidGameMobilitypecent
* EndGameMobilitypecent
* LateMoveReduction
* FutilityPruning
* NullMove
* EndingExtension, PawnTo7thRankExtension, and RecaptureExtension
e. Commands from gui supported
* uci, isready, setoption, ucinewgame, position, fen, startpos
* go, searchmoves, ponder, depth, movetime, wtime, btime, winc, binc, movestogo, mate, infinite
* stop, ponderhit, quit
f. Info supported for gui
* depth, seldepth, time, nodes, pv, multipv, hashfull
* score, cp, mate, lowerbound, upperbound
* currmove, currmovenumber
* nps, tbhits, string
* refutation, currline, option
g. New egbb probe code to support for up to 6-men scorpio egbb. This is not fully tested, I will update the engine
once I get the full set of 6-men egbb.
h. Done some minor optimizations, and bug fixes
i. When Uci_LimitStregth is set, the engine will also play inferior moves from the book. As the
Uci_Elo is increased the weight or quality of moves selected also gets higher. In actual play the engine will not move
quickly when moves are from the book to avoid the user getting intimidated. Another feature is when the engine has a remaining time
below 1 minute the time pressure feature is activated and the engine will make (90% probability) more inferior moves.
Under Arena gui you can set engine elo by going to Levels -> Limit Playing Strength to Elo. Under winboard gui, install the engine
as uci, then Engine -> Engine #1 Settings then check the Uci_LimitStrength and adjust elo in Uci_Elo, minimum elo = 1000
and maximum elo = 2800. The weakening algo is based from multipv, and blunder threshold depending on how far the uci elo value
is set from 2800. As the uci elo is decreased the multipv is increased and the most inferior move will be played.
j. When using scorpio egbb, the newly generated egbb should be used. Download link from here. http://shawul.olympuschess.com/egbb/
Deuterium 64bit will use egbbdll64.dll file while for 32bit, it will use egbbdll.dll. Better is put these two files where egbb files
are located. It should be EgbbProbe 4.1.
|
|