Sightly enhanced search
Evaluation function includes some bishop/pawn interaction knowledge and has been retuned.
The enhancement is modest compared to version 2.7, probably around 15 Elo.
I hope this new version to be stronger than version 2.6 by about 40 elo.
- The eval has been improved:
- take into account hanging pieces (pieces en prise), trapped pieces (pieces en prise without safe escape) and enclosed pieces (pieces without safe moves)
- better handling of pawn structures.
- king shield/storm fixed & added a feature to attract the king towards the middle of the pawns in endgame.
- Time management has been improved. Amoeba 2.7 uses more time when the search fail low and less time on some obvious moves.
Several changes has been conducted in the search part of the engine, and the following algorithms have been revisited and improved:
- transposition table.
- late move reduction (LMR)
- aspiration windows
- see pruning
- retuned weights (using more "good" games).
I hope this new version to be stronger than version 2.5 by about 20 elo.
This version should be significantly stronger than version 2.4 (by about 30 elo).
- better knowledge on rook structures.
- revisited extension / reduction
- evaluation tuned from a newer & better set of positions
The version 2.4 should be significantly stronger than the versions 2.2/2.3, with an estimated progress over 50 elo.
Both evaluation and search have been improved:
The evaluation function now takes into account the following features:
- control center
- pinned pieces
- recognize some drawish positions
The search improvements include:
- Better & faster move sorting based on insertion sort
- Enhanced history
- Late move pruning and see move pruning
The version 2.3 corrects a bug which prevented Amoeba to play under some GUI (ChessGui and Cutechess-cli).
From the command line, help display, version display and debugging output to a log file have been added.
Other changes are mostly cosmetic.
No search or eval enhancement, and the strength of this program should be the same as version 2.2 and slightly stronger than version 2.1
This release only provides a small improvement of about 10 elo (maybe less) against version 2.0.
uci.d: Bug fix in the UCI protocol (ucinewgame was not handled properly).
eval.d: Distinguish pawn push & pawn capture in pawn mobility evaluations.
search.d: Delta pruning in quiescence search.
tourney.d: the program used to test amoeba improvement finally released.
game.d: many changes to read & write pgn files.
util.d added a function "claim" to replace built-in assert. claim calls abort() and make debugging much easier.
cleaner code (spaces / comments, better function naming, etc.)
move.d add a MoveItem structure to handle move & value together.
History heuristics now in move.d
Progress is around 30 elo compared to the previous version 1.4.
Main changes focused on the evaluation function. The mobility feature takes into account safe and unsafe squares (attacked by the opponent). King safety should be better handled and also the pawn structure. All the evaluation weights have been recomputed from scratch with more games to fit. The evaluation tuner is also faster, using parallel computation.
Some small changes in other parts. Peculiarly, pawn moves to the penultimate rank are now done during quiescence searches. The UCI protocol should also be better obeyed.
The name of the program now include some information about the compilation setting. For example amoeba 2.0.w64p means version 2.0 compiled for Windows 64 bit, with hardware popcount.
In the coming versions, 2.1, 2.2, ..., I will stay focused on the evaluation function, but some search parameters concerned by the evaluation will also be re-tuned.