Skip to content

Latest commit

 

History

History
133 lines (123 loc) · 6.64 KB

CHANGELOG.md

File metadata and controls

133 lines (123 loc) · 6.64 KB

Changelog

2017-07-30: Version 1.12 (Maven Port)

  • Reuploaded the project on GitHub as an Eclipse Maven Project.
  • Applied cleanup.
  • Set required Java version to 1.8.

2011-10-24: Version 1.12 (ELO: m=61 s=1.6)

  • Don't use aspiration window when mate score has been found.
  • Optimized the legal move generator. This has minimal effect on playing strength, but improves perft speed a lot.
  • Added bishop back rank penalty.
  • Don't LMR reduce captures more than one ply.
  • Avoid array index out of bounds exception if the engine is asked to search a position where there are no legal moves.
  • Optimized piece values using CLOP.
  • Store razoring results in the transposition table.
  • Use SEE sign and MVV/LVA to order moves in non-q-search nodes.
  • Try equal captures before non-captures in non-q-search nodes.
  • Update killer moves when a transposition table hit gives a beta cutoff.
  • Implemented signSEE function that can be used when only the sign of SEE is needed.
  • Ignore squares attacked by enemy pawns when computing mobility.
  • Added evaluation of KRKP end games, based on statistics gathered from EGTB information.
  • Skip null-move search if the static score is below beta.
  • Update hash entry "generation" value after a transposition table hit.
  • Optimized bishop pair bonus using CLOP.
  • Optimized futility margins using CLOP.

2011-06-12: Version 1.11 (ELO: m=47 s=4.8)

  • Do extended futility pruning also on depth 4.
  • Implemented razoring.
  • Added support for fractional ply extensions.
  • Use MVV/LVA ordering (but SEE pruning) in the q-search.
  • Some speed optimizations.
  • Use IID also at non-PV nodes.
  • Made aspiration window a bit smaller.
  • More aggressive futility pruning.
  • Increase beta in two steps when a root move fails high.
  • More accurate evaluation of end games with insufficient mating material.

2011-04-23: Version 1.10 (ELO: m=13 s=2.9)

  • More aggressive futility pruning.
  • Increased passed pawn bonus a little.
  • Added small penalty for non-developed bishops.
  • Implemented adjustable playing strength.

2011-03-16: Version 1.09

  • Speeded up the SEE function by using bitboard techniques.
  • Use a lookup table to speed up castle bonus calculations.
  • Implemented specialized move generator function for check evasions.
  • Some speed optimizations.
  • Implemented specialized make/unmake move functions used by SEE.
  • Allow more time to resolve fail lows at the root.
  • Bug fix. Reset en passant square when making a null move.
  • Don't allow too much time to resolve a fail low if too close to the next time control.
  • Stop searching immediately after a ponder hit if only one legal move.
  • Store successful null-move prunings in the transposition table.
  • Give extra bonus to passed pawns if enemy king is outside "the square".
  • Only try two hash slots when inserting in the transposition table.
  • Try harder to keep PV nodes in the transposition table.
  • Use a hash table to speed up king safety evaluation.
  • Adjusted the knight piece square tables.
  • Added code to dump the search tree to a binary file, and code to browse and search the dump file.

2011-01-30: Version 1.08

  • Modified the bishop piece square table.
  • Added penalty for bishop trapped behind pawn on a2/a7/h2/h7.
  • Added isolated pawn penalty.
  • Fixed race condition in UCI mode with quick ponder misses.
  • Added backward pawn penalty.
  • Modified the history heuristic calculations.

2011-01-18: Version 1.07

  • Speed optimizations.
  • Only apply the "drawish factor" for opposite colored bishops if the non-pawn material is balanced.
  • Added evaluation of KQKP end games.
  • Added evaluation term for two rooks on the 7th rank.
  • Implemented delta pruning in the q-search.
  • Improved reduction logic. Don't allow reduction of hash moves and killer moves, but allow larger reductions for other moves.
  • Fixed bug related to stalemate traps and the 50-move rule.
  • Allow null moves and LMR also in PV nodes.
  • Don't do futility pruning and LMR for passed pawn pushes to the 6th and 7th ranks.
  • Added bonus in end games for having king close to opponents passed pawn promotions squares.
  • Don't allow null moves when side to move doesn't have pawns. This fixes problems in KQKR end games.
  • Extend the search one ply when going into a pawn end game.
  • Reduced queen mobility bonus.
  • Increased the passed pawn bonus and made it non-linear.
  • King safety adjustment.
  • Added a threat bonus evaluation term.
  • Penalize unmoved d/e pawns.
  • Undo LMR if the threat move slides through the LMR move "from square". Idea from Stockfish.
  • Ponder even if there is only one valid move.
  • Allow LMR also at the root.

2010-12-31: Version 1.06

  • Speed optimizations.
  • Implemented non-linear mobility scores.
  • Fixed bad interaction of futility pruning/hashing/fail soft.
  • Tweaked rook piece square table a little.
  • Order root moves according to search tree size on previous ply.
  • Don't trust mate scores from null move searches.
  • Increased the bishop pair bonus.
  • Tweaked king safety a bit.
  • Removed mate threat extension.
  • Only extend recaptures if the recapture is reasonable according to SEE.
  • Use a built-in bitbase for KPK evaluation.
  • Reduced the aspiration window to 25 centipawns.
  • Prune checking moves with negative SEE score in q-search.
  • Allow reductions and pruning of losing (according to SEE) captures.
  • Added end game evaluation of rook pawn and wrong-colored bishop.
  • Added penalty for rook trapped behind non-castled king.
  • Don't allow double null moves.
  • Allow null move search to go directly into q-search.
  • More depth reduction in IID at large depths.
  • Implemented null move threat detection, to be able to undo unsafe LMR reductions. Idea from Stockfish.
  • Don't overwrite a transposition table hash entry with inferior information for the same position. Could happen in IID.
  • Added evaluation of unstoppable passed pawns in pawn end games.
  • Include attacked squares close to the king in king safety evaluation.
  • Implemented magic bitboard move generator.
  • Use bitboard techniques for evaluation.
  • Created specialized move generator functions to generate checks.
  • Correctly handle pseudo-legal but not legal en passant squares.

2010-07-04: Version 1.05

  • Speed optimizations.
  • Avoid dynamic memory allocations during search.
  • Don't do mate threat extensions too deep down in the search tree. Fixes search tree explosion in WAC 21.
  • Incremental update of material scores.
  • Created specialized move generator functions to generate captures.
  • Created a function givesCheck that decides if making a move gives check to the opponent.
  • Implemented a pawn hash table.
  • Store static evaluation scores in the transposition table.
  • If there is only one legal move at the root, make that move immediately.

2010-06-12: Version 1.04