Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What has happened with Crafty?

Author: Bertil Eklund

Date: 16:19:20 03/24/00

Go up one level in this thread


On March 24, 2000 at 19:11:35, Dann Corbit wrote:

>On March 24, 2000 at 18:51:27, Bertil Eklund wrote:
>>I have followed Crafty for some years now even if Crafty has been a good program
>>it has always been a bit after "the best professionals" but now from version
>>17.x (not 17.01 that in some games played suicidal-chess according
>>king-security, castling right in to an ongoing attack against its king)
>>I think the latest versions is on "par" with a lot of the better commercial
>>programs. I want to know what is the difference between Crafty from today and
>>the earlier versions? What is the reasons for the improved play? I understand
>>that Crafty plays better with the tuned books from Chessbase-engines but this is
>>only a little part of Craftys better play. Craftys play with Tablebases is
>>excellent, but I guess it must be a lot of other improvements as well.
>>
>>This is written before I know the results from our testings, but I think Craftys
>>results are going to surprise many people. I have been busy with the excellent
>>program Shredder4.
>>
>>Remember also that Crafty dislikes Amd K6-2, a K6-2 450 is about equal to a
>>Pentium 333(for Crafty). The difference is about 30-35 %clockwise.
>
>It is never a mystery.  Bob tells exactly what has happened from generation to
>generation.  Here is the history from 17.0 forward:
>
>17.0    connected passed pawn scoring modified so that connected passers
>        don't get any sort of bonus, except for those cases where the
>        opponent has a rook or more.  this will avoid liking positions
>        where crafty has two connected passers on the d/e files, and the
>        opponent has passers on the b/g files.  the split passers win if
>        all pieces are traded, while the connected passers are better
>        when pieces are present.  a new scoring term evaluates the
>        "split" passers similar to outside passers, this at the request
>        (make that demand) of GM Roman Dzindzichashvili. Book() now finds
>        the most popular move as the move to ponder.  this eliminated all
>        'puzzling' searches which result in clearing the hash tables two
>        times for every book move, which can slow it down when a large
>        hash table is used.  new book option for playing against computer
>        opponents was written for this version.  Crafty now supports two
>        "books.bin" type files, books.bin and bookc.bin (the bookc create
>        command can be used to make bookc.bin).  bookc will only be used
>        when crafty is playing a computer.  this is supplied by xboard or
>        winboard when playing on a server, or can be included int the
>        crafty.rc/.craftyrc file when playing directly.  bookc.bin will
>        be used when playing a computer only, and should be used to avoid
>        unsound lines that are fine against humans, but not against other
>        computers.  if you don't use a bookc.bin, it will use the normal
>        books.bin as always.  if you use both, it will only use bookc.bin
>        in games that have been started and then given the 'computer'
>        command.  minor adjustment to EGTB probe code so that it will
>        always probe TBs at ply=2 (if the right number of pieces are on
>        the board) but won't probe beyond ply=2 unless the move at the
>        previous ply was a capture/promotion and the total pieces drops
>        into the proper range for TB probes.  this makes the 6 piece
>        files far more efficient as before it would continuously probe
>        after reaching 6 piece endings, even if it didn't have the right
>        file.  Now after the capture that takes us to a 6 piece ending
>        we probe one time...  and if there is no hit we don't probe at
>        the next node (or any successors) unless there is another capture
>        or promotion that might take us to a database we have.  the book
>        (binary) format has once again been modified, meaning that to use
>        16.20 and beyond the book.bin/books.bin files must be re-built
>        from the raw PGN input.  this new format includes an entry for
>        the CAP project score, so that deep searches can be used to guide
>        opening book lines.  a new weight (bookw CAP) controls how much
>        this affects book move ordering/selection.  a new import command
>        will take the raw CAPS data and merge it into the book.bin after
>        the file has been built.  serious bug in SetBoard() would leave
>        old EP status set in test suites.  this has been fixed.  outpost
>        knight code was modified so that a knight in a hole is good, a
>        knight in a hole supported by a pawn is better, supported by two
>        pawns is still better, and if the opponent has no knights or a
>        bishop that can attack this knight it is even better.  the out-
>        post bonus for a bishop was removed.  a pretty serious parallel
>        search bug surfaced.  in non-parallel searches, Crafty _always_
>        completed the current ply=1 move after the time limit is reached,
>        just to be sure that this move isn't going to become a new best
>        move.  however, when parallel searching, this was broken, and at
>        the moment time runs out, the search would be stopped if the
>        parallel split was done at the root of the tree, which means that
>        where the search would normally find a new best move, it would
>        not.  this has been fixed.  new "store <val>" command can be used
>        to make "position learning" remember the current position and the
>        score (val) you supply.  this is useful in analyze mode to move
>        into the game, then let crafty know that the current position is
>        either lost or won (with a specific score).
>
>17.1    book structure fixed, since compilers can't quite agree on how
>        structures ought to be aligned, for reasons not clear to me.  a
>        serious eval bug that could produce gross scores when one side
>        had two queens was fixed.
>
>17.2    isolated pawn scoring tweaked a bit, plus a couple of bugs in the
>        way EvaluateDevelopment() was called were fixed.
>
>17.3    passed pawn scores increased somewhat to improve endgame play.
>
>17.4    minor bug with "black" command (extra line from unknown origin)
>        would make "black" command fail to do anything.  minor tweaks to
>        passed pawn scoring again...  and a slight performance improve-
>        ment in how EvaluateKingSafety() is called.  code for "bk"
>        from xboard was somehow lost.  it now provides a book hint.
>
>17.4    minor bug with "black" command (extra line from unknown origin)
>        would make "black" command fail to do anything.  minor tweaks to
>        passed pawn scoring again...  and a slight performance improve-
>
>17.5    rewrite of outside passed pawn/pawn majority code.  it is now
>        much faster by using pre-computed bitmaps to recognize the right
>        patterns.
>
>17.6    minor fix in interupt.c, which screwed up handling some commands
>        while pondering.  minor fix to score for weak back rank.  score
>        was in units of 'defects' but should have been in units of
>        "centipawns".   minor bug in "drawn.c" could mis-classify some
>        positions as drawn when they were not.
>
>17.7    repair to DrawScore() logic to stop the occasional backward sign
>        that could create some funny-looking scores (-20 and +20 for
>        example).  minor fix to majority code to recognize the advantage
>        of having a majority when the opponent has no passers or majority
>        even if the candidate in the majority is not an 'outside' passer
>        candidate.  minor change to passed pawns so that a protected
>        passed pawn is not considered a winning advantage if the
>        opponent has two or more passed pawns.  but in input_status
>        would cause an infinite loop if you reset a game to a position
>        that was in book, after searching a position that was not in
>        the book.  bug in position learning fixed also.  this was caused
>        by the new hashing scheme Tim Mann introduced to avoid locking
>        the hash table.  I completed the changes he suggested, but forgot
>        about how it might affect the position learning since it is also
>        hash-based.  needless to say, I broke it quite nicely, thank you.
>
>17.8    this is the version used in the first ICC computer chess
>        tournament.  Crafty won with a score of 7.0/8.0 which included
>        only 2 draws and no losses.  changes are minimal except for a few
>        non-engine syntax changes to eliminate warnings and fix a bad bug
>        in 'bench.c' that would crash if there was no books.bin file.
>
>17.9    LearnPosition() called with wrong arguments from main() which
>        effectively disabled position learning.  this was broken in 17.7
>        but is now fixed.
>
>17.10   minor change to "threat" extension now only extends if the null-
>        move search returns "mated in 1" and not "mated in N".  this
>        tends to shrink the trees a bit with no noticable effect in
>        tactical strength.  EvaluatePawns() was not doing a reasonable
>        job of recognizing blocked pawns and candidate passers.  it did
>        not do well in recognizing that the pawn supporting a candidate
>        could not advance far enough to help make a real passed pawn.
>        minor change to RepetitionCheck() to not count two-fold repeats
>        as draws in the first two plies, which prevents some odd-looking
>        repeats at the expense of a little inefficiency.  Ugly repetition
>        bug fixed.  rephead was off by one for whatever side crafty was
>        playing which would screw up repetition detection in some cases.
>        minor bug in main() that would report stalemate on some mates
>        when the ponder score was forgotten.

Thank you very much for the detailed information!

Bertil



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.