Change Log
---------------------- 2008/02/01 version 4.4 ----------------------
Chess:
* Several minor chess knowledge changes/additions
* Improved many weak/bad opening book lines
New Features:
* Elo weakening (adjustable from Elo 1000 -> full strength)
* Search options can be disabled (for weaker play vs. humans)
* ICS support for on-line play
* Egtb cache size is configurable
* Opening book styles: wide, best, deep, and tourney
* Displaying config values in console mode for validation checking
Internal:
* Move-ordering somewhat follows Ed Schroeder website advice
* Matekiller/killer/history logic improved
* Null-move made more aggressive
* Fewer adaptive razoring reductions, but ply reductions made deeper
* Reduced size of hash entries, fitting more of them into hash
* Asymmetric search window based on even/odd search depth
* Replaced all assembly language with C code
* Using 5 different compilers at maximum warning levels to tease out
possible coding errors
Optimizations:
* Egtbs not probed until late endgame
* Hash table code optimized
* Improved code/data alignment, and some dead code/data removal
Bugfixes:
* Candidate passed pawn scoring was wrong (removed)
* Egtb probe scoring for ep capture situations was wrong
* Egtb probe scoring for mates was sometimes wrong
* Null-move mate threat extension was wrong occasionally
* Null-move verification search was wrong in many ways
* IID search was blind to 50-move-rule draws
* In match mode was claiming a draw from previous game
* Sign of king shelter scoring occasionally wrapped-around
* Internal Epd test suite was misidentifying some correct solutions
* Resign threshold was set too low
---------------------- 2005/12/06 version 4.3 ----------------------
Chess:
* Playing strength now scales better with longer time controls
* Time usage extended for problematic positions
* Opening book improved by manually removing blunder moves and poor
lines, and manually adding some selected missing lines -- some of
these lines go quite deep
Internal:
* Hash replacement logic changed
* Hash aging changed
* Fewer compiler warnings
Optimizations:
* Search speed increased up to 2x faster (move ordering improvements)
Features:
* Removed fail-high/ fail-low indicators from score (illegal according
to the Winboard specification although they didn't seem to cause any
problems) and added the indicators to pv instead where they are more
visible
Bugfixes:
* Fixed time-loss bug
* Fixed bug causing random moves during long time-control games
---------------------- 2005/09/08 version 4.2 ----------------------
Chess:
* Potential passed pawn recognition added
* Thinking time extended for "interesting" positions
* Rooks now discouraged from the center early in the game
* Thinking less for forced recaptures
Internal:
* Move ordering improved
* Forward pruning made less aggressive
* Ponder has been disabled until further notice
* Much reworking of code for clarity
Bugfixes:
* Search instability causing bad moves and lost games corrected.
* 50-move-rule and 3-ply repetition code corrected
* Move generation for ep captures corrected
* Hashtable logic changed to prevent overwriting current best move:
passed on change to Beowulf team
* Corrected eval bug confusing black rooks with black bishops (see 3.3
change log)
* Scoring of missing/advanced guard pawn in king safety corrected in
several places
* When rushed: using a small amount of time instead of none at all and
not extending time for any reason
* Draw offers from opponents no longer considered as illegal moves
---------------------- 2003/07/16 version 4.1 ----------------------
Chess:
* New book
Internal:
* Extensive reworking of code for clarity
Optimizations:
* Improved population count; more macros
* Generating fewer moves that block check
* Using some pre-computed values and avoiding some behind-the-scenes
compiler casting in the move generator
Features:
* Column headers for DOS-mode analysis added
Bugfixes:
* All WinBoard-announced won/lost/drawn games while Horizon is busy
thinking corrected
* 50-move rule code corrected
* Promotion moves now SAN correct (ie: e8=Q, instead of e8q)
* Rook mobility corrected
* Capturing of rook on h8 no longer wrongly resetting Black castling
rights
---------------------- 2003/01/21 version 4.0.2 ----------------------
Bugfixes:
* Base move in the hash was occasionally getting overwritten
* On rare occasions the engine would hang
---------------------- 2003/01/17 version 4.0.1 ----------------------
Bugfixes:
* Pawn hash size was 10 times larger than requested
---------------------- 2003/01/17 version 4.0 ----------------------
Chess:
* Pawn evaluation code totally rewritten
* Some passed pawn recognition/scoring revamped
* King safety shuts off sooner and king-to-the-center bonuses start
sooner as well
* Rebalanced the values of 8th rank blockade penalties
* Thinking longer just after leaving the book
Internal:
* Pawn hashing implemented
* Forcing hash move first in quiescent move ordering
* Moved all initialization code into the initialization section
* Book-reader and some WinBoard messaging improved
Optimizations:
* Search is faster
Bugfixes:
* In positions with more than 128 legal moves, memory was getting
overwritten, so0 increased legal move limit to 192
* Trojan attack code was wrong for Black bishops
* White 7th rank pawns with opposing pieces in front of them were
scored incorrectly
* Early queen penalty was wrong and could cause a crash under certain
circumstances
---------------------- 2002/10/14 version 3.31 ----------------------
Bugfixes:
* Corrected the occasional misplaying of the last move(s) listed in
opening book
---------------------- 2002/10/09 version 3.3 ----------------------
Chess:
* Added reward for hanging onto queen when opposing king position is
compromised
Features:
* Changed hash setting in Horizon.cfg file from mysterious
power-of-two values to MB units
Optimizations:
* Search is slightly faster
Bugfixes:
* Black bishops were being counted as Black rooks! This affected all
the Black rook code as well as peripheral dependencies like
calculation of scaling factors for center control and king attacks.
Not all of this confusion has been corrected, but it is well
on its way towards being fixed
* Rook-behind-passed-pawn logic was wrong
* Queen support/attack of passed and candidate pawns was wrong
* Attackability of outpost squares by opposing pawns was incorrect
* Penalty for having no pawns was being assessed twice
* Removed spurious "Missing personality file" message at initial
launching in DOS-mode
---------------------- 2002/07/01 version 3.2 ----------------------
Chess:
* Trade-down code totally rewritten
Internal:
* Size of hash signature increased from 40 bits to 64 bits to
eliminate hash collisions once and for all
* Added some hand-coded assembly routines
* Lazy eval tweaked
Optimizations:
* Search is faster
---------------------- 2002/05/10 version 3.1 ----------------------
Chess:
* Re-wrote outpost coding
* Introduced a fairly large penalty for blockading 7th rank passed pawns
* Removed side-to-move bonus as well as a small penalty for blocked
pawns
* Rook-behind-passed-pawn bonus has been boosted
* In the endgame the king becomes active a little sooner
* The opening book has been reworked again
---------------------- 2002/03/30 version 3.0 ----------------------
Chess:
* Weak pawn logic added
* Center control has been reworked
* Pawn blockading bonuses added
* Knight/bishop outposts now rewarded
* Rook/queen on 8th rank now given a bonus
* Rook mobility added
* More fianchettoed logic added
* Thinking 1.5 times as long on first move out of book
* The repertoire opening book has been replaced
Internal:
* Knight, rook and queen square tables added
Optimizations:
* Faster search
Bugfixes:
* Pawn islands and open files were not recognized properly
* Doubled pawns were being scored twice as harshly as intended
* Weak back rank penalty was sometimes wrong
* Endgame logic wasn't kicking in when it was supposed to
* Configuration file comments were "live"
---------------------- 2002/01/29 version 2.01 ----------------------
Chess:
* Some king safety and development tweaks added
* Thinking twice as long on first move out of book
Bugfixes:
* Wrong center control table was used in version 2.0, replaced it
---------------------- 2002/01/28 version 2.0 ----------------------
Chess:
* Pawn structure code totally rewritten
* Much work done on fianchettoed-bishop / pawn-structure relationships
* Center control totally reworked
* King safety is now more aggressive, resulting in a 50% to 75%
search-depth speedup for tactically sharp positions
* Opening book lines further refined and new lines added
Internal:
* Uncoupled all non-pawn logic from pawn code in preparation for pawn
hashing
* Piece-pawn relationships (ie: doubled rooks on fully-open or
half-open files) moved into appropriate piece code section and
rewritten
Optimizations:
* For the opening stage of a game, searches are now 2 to 5 times
faster(!!!)
---------------------- 2002/01/13 version 1.3 ----------------------
Chess:
* Modified center control
* Simplified pawn structure code
* Improved king safety when fianchettoed
* New opening book by Jim Monaghan
Internal:
* Replaced compiler 16-bit pseudo-random number generator with a full
64-bit type and added more bits to hash signature to prevent random
moves caused by hash collisions. Passed on improvement to Beowulf
team.
* Reduced the size of hash entries so 36% more positions can now be
stored in the same amount of memory. Passed on improvement to Beowulf
team.
Optimizations:
* Search about 30% faster
---------------------- 2001/12/06 version 1.2 ----------------------
Chess:
* Pawn structure code made more elaborate
* Base of pawn chains is examined in more detail for weaknesses and
possible attack
* Weak, shielded pawns are not penalized as much as unshielded ones
* Pawn distortion is now penalized
* Added small bonus for pushing pawns
* Prevented rash advancement of king shield pawns
* Pawn islands added to scoring
* Adjusted bishop vs knight in endgame code
* Center control adjusted
* Rooks and queens on 7th rank removed from endgame considerations
* Early queen detection modified
* Reduced connected passed pawn bonus and corrected a bad error in
recognizing connected-ness
* Castled king now slightly discouraged from moving into corner square
* Mobility scoring now continues throughout the endgame
* Made many small adjustments to bonus/penalty values.
---------------------- 2001/11/1 version 1.1 ----------------------
Bugfixes:
* Beowulf time-control code causes time-losses when playing a
conventional clock. Reverted back to original time-control code
---------------------- 2001/11/1 version 1.0 ----------------------
Chess:
* Changed doubled rooks reward: only given when on semi- or fully-open
files
* Pumped up king safety slightly and made uncastled offense/defense
better
* Added reward for connected passed pawns
Features:
* New time control supports conventional time-control as well as Blitz
Bugfixes:
* Horizon thought it was always playing the opening! That's why
mid-game and endgame play was so mysteriously weak. This bug was
introduced back in version 0.5
* Infrastructure problem where hash was always set to 16MB is now fixed
* Rooks on h-file were not recognized previously
---------------------- 2001/10/25 version 0.6 ----------------------
General:
* First publicly released version. There is no meaningful change from 0.5.
---------------------- 2001/10/16 version 0.5 ----------------------
Chess:
* Toned down king safety so other positional factors have more
influence
* Added penalty for having no escape squares for king
* Added penalty if king is threatened and queen is on other side of the
board
* Center control now has much more importance
Optimizations:
* Tweaked search params for 10-15% speedup
* Made pawn structure code more efficient
* Noticeable increase in kNps, depth of search, and playing strength
Bugfixes:
* Fixed trapped bishop bug
---------------------- 2001/10/11 version 0.4 ----------------------
Chess:
* Rewrote king safety again and pumped it up
* Added fianchettoed bishops to control-of-center code
* Added mobility scores for knights and bishops
Optimizations:
* Minor tweaks for efficiency
Bugfixes:
* Found a couple of errors in Beowulf passed pawn code. Passed this
knowledge on to Beowulf team and folded in resulting Beowulf passed
pawn code
---------------------- 2001/9/20 version 0.3 ----------------------
Chess:
* Incorporated some ideas from Crafty regarding Trojan attacks and bad
trades
* King safety was awful, rewrote it and now it's merely bad
* Rewrote pawn structure code - this part is much improved
* Added reward for pawns blocking opposing bishops
Optimizations:
* Finally gave up on detecting pins and lost pieces. It just takes too
much time
---------------------- 2001/8/22 version 0.2 ----------------------
General:
* Replacing old, slow code with more traditional evaluation
* Not much to distinguish Horizon from Beowulf at this point
---------------------- 2001/7/1 version 0.1 ----------------------
General:
* My first attempt
* The engine is not very strong
* I've broken almost all the rules of chess common wisdom and my ideas
don't work
* The search depth is dismal