Crafty 4.x Version History
- 4.5
- book move selection algorithm replaced. Crafty now counts the number of
times each book move was played as the book file is created. since these
moves come (typically) from GM games, the more frequently a move appears,
the more likely it is to lead to a sound position. Crafty then enumerates
all possible book moves for the current position, computes a probability
distribution for each move so that Crafty will select a move proportional to
the number of times it was played in GM games (for example, if e4 was played
55% of the time, then Crafty will play e4 55% of the time) although the
special case of moves played too infrequently is handled by letting the
operator set a minimum threshold (say 5) Crafty won't play moves that are
not popular (or are outright blunders as the case may be.) pushing a passed
pawn to the 7th rank in the basic search [Search() module] now extends the
search by two plies unless we have extended this ply already (usually a
check evasion) or unless we have extended the whole line to more than twice
the nominal iteration depth.
- 4.4
- piece/square tables simplified, king tropism scoring moved to Evaluate()
where it is computed dynamically now as it should be.
- 4.3
- hash scoring "repaired." as the piece/square tables changed, the
transposition table (positional evaluation component) along with the pawn
and king-safety hash tables prevented the changes from affecting the score,
since the hashed scores were based on the old piece/square table values.
now, when any piece/square table is modified, the affected hash tables are
cleared fo evaluation information.
- 4.2
- extension search modified. fixed a problem where successive passed-pawn
pushes were not extended correctly by extend() code. threat-extension margin
was wrong after changing the value of a pawn to 1000, it is now back to 1.5
pawns.
- 4.1
- extension search modified. it now "tracks" the basic iteration search
depth up to some user-set limit (default=6). for shallow depths, this speeds
things up, while at deeper depths it lets the program analyze forcing moves
somewhat deeper.
- 4.0
- evaluation units changed to "millipawns" where a pawn is now 1000 rather
than the prior 100 units. this provides more "resolution" in the evaluation
and will let Crafty have large positional bonuses for significant things,
without having the small positional advantages add up and cause problems.
V3.8 exhibited a propensity to "sac the exchange" frequently because of
this. it is hoped that this is a thing of the past now. also, the "one legal
reply to check" algorithm is now being used. in short, if one side has only
one legal reply to a checking move then the other side is free to check
again on the next ply. this only applies in the "extension" search, and
allows some checks that extend() would normally not follow.
Lim Unlimited / 24 Jul 1996