Crafty
Encyclopedia
Crafty is a chess program written by UAB
professor Dr. Robert Hyatt
. It is directly derived from Cray Blitz
, winner of the 1983 and 1986 World Computer Chess Championships.
Crafty recently finished in second place in the 2010 Fifth Annual ACCA Americas' Computer Chess Championships. Crafty lost only one game to the first place winner Thinker.
Crafty also finished in second place in the 2010 World Computer Rapid Chess Championships. Crafty won seven out of nine games, finishing just behind the first place winner Rybka by only ½ point.
In the World Computer Chess Championships 2004 Crafty took fourth place with the same number of points as the third place finisher, Fritz 8
, despite running on stronger hardware than all other programs. On the November 2007 SSDF
ratings list, Crafty was 34th with an estimated Elo rating
of 2608.
Crafty uses the Chess Engine Communication Protocol
and can run under the popular chess interfaces XBoard
, Winboard, and Arena.
Crafty is written in ANSI C
with assembly language routines available on some CPUs, and is very portable. The source code is available, but the software is for "personal use" only.
Crafty pioneered the use of rotated bitboard
data structures to represent the chess board, and was one of the first chess programs to support multiple processors. It also includes negascout
search, the killer move heuristic
, static exchange
evaluation, quiescence search
, alpha-beta pruning
, a transposition table
, a refutation table, an evaluation cache, selective extensions, recursive null-move search, and many other features ([ftp://ftp.cis.uab.edu/pub/hyatt/documentation/crafty.man cf manual]). Special editions of the program include enhanced features such as an opening book
, positional learning, and an endgame tablebase
.
Crafty was one of the programs included in the SPEC CPU2000
benchmark test. It is also included as an additional engine in Fritz
.
University of Alabama at Birmingham
The University of Alabama at Birmingham is a public university in Birmingham in the U.S. state of Alabama. Developing from an extension center established in 1936, the institution became an autonomous institution in 1969 and is today one of three institutions in the University of Alabama System...
professor Dr. Robert Hyatt
Robert Hyatt
Dr. Robert Hyatt is an Associate Professor of Computer science at the University of Alabama at Birmingham, in the Department of Computer and Information Sciences . He is the author of the computer chess program Crafty and the co-author of Cray Blitz, a two-time winner of the World Computer Chess...
. It is directly derived from Cray Blitz
Cray Blitz
Cray Blitz was a computer chess program written by Robert Hyatt, Harry Nelson, and Albert Gower to run on the Cray supercomputer. It was derived from "Blitz" a program that Hyatt started to work on as an undergraduate. "Blitz" played its first move in the fall of 1968, and was developed...
, winner of the 1983 and 1986 World Computer Chess Championships.
Crafty recently finished in second place in the 2010 Fifth Annual ACCA Americas' Computer Chess Championships. Crafty lost only one game to the first place winner Thinker.
Crafty also finished in second place in the 2010 World Computer Rapid Chess Championships. Crafty won seven out of nine games, finishing just behind the first place winner Rybka by only ½ point.
In the World Computer Chess Championships 2004 Crafty took fourth place with the same number of points as the third place finisher, Fritz 8
Fritz (chess)
Fritz is a German chess program developed by Frans Morsch and Mathias Feist and published by ChessBase. There is also a version called Deep Fritz that is designed for multiprocessing....
, despite running on stronger hardware than all other programs. On the November 2007 SSDF
Swedish Chess Computer Association
The Swedish Chess Computer Association is an organization that tests computer chess software by playing chess programs against one another and producing a rating list. On September 26, 2008, the list was released with Deep Rybka 3 leading with an estimated Elo rating of 3238. Rybka's listing in...
ratings list, Crafty was 34th with an estimated Elo rating
Elo rating system
The Elo rating system is a method for calculating the relative skill levels of players in two-player games such as chess. It is named after its creator Arpad Elo, a Hungarian-born American physics professor....
of 2608.
Crafty uses the Chess Engine Communication Protocol
Chess Engine Communication Protocol
The Chess Engine Communication Protocol is an open communication protocol that enables a chess engine to communicate with its user interface....
and can run under the popular chess interfaces XBoard
XBoard
XBoard and WinBoard are free graphical user interface clients. Originally developed by Tim Mann, these programs are compatible with various chess engines that support the Chess Engine Communication Protocol such as GNU Chess...
, Winboard, and Arena.
Crafty is written in ANSI C
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.-History and outlook:The first...
with assembly language routines available on some CPUs, and is very portable. The source code is available, but the software is for "personal use" only.
Crafty pioneered the use of rotated bitboard
Bitboard
A bitboard is a data structure commonly used in computer systems that play board games.A bitboard, often used for boardgames such as chess, checkers and othello, is a specialization of the bitset data structure, where each bit represents a game position or state, designed for optimization of speed...
data structures to represent the chess board, and was one of the first chess programs to support multiple processors. It also includes negascout
Negascout
NegaScout or Principal Variation Search is a negamax algorithm that can be faster than alpha-beta pruning. Like alpha-beta pruning, NegaScout is a directional search algorithm for computing the minimax value of a node in a tree...
search, the killer move heuristic
Killer heuristic
In competitive two-player games, the killer heuristic is a technique for improving the efficiency of alpha-beta pruning, which in turn improves the efficiency of the minimax algorithm. This algorithm has an exponential search time to find the optimal next move, so general methods for speeding it...
, static exchange
Exchange (chess)
In the tactics and strategy in the board game of chess, an exchange or trade of chess pieces is series of closely related moves, typically sequential, in which the two players capture each others pieces. Any types of pieces except the kings may possibly be exchanged, i. e. captured in an...
evaluation, quiescence search
Quiescence search
Quiescence search is an algorithm typically used to evaluate minimax game trees in game-playing computer programs. It is a remedy for the horizon problem faced by AI engines for various games like chess and Go.-The horizon effect:...
, alpha-beta pruning
Alpha-beta pruning
Alpha-beta pruning is a search algorithm which seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree. It is an adversarial search algorithm used commonly for machine playing of two-player games...
, a transposition table
Transposition table
In computer chess and other computer games, transposition tables are used to speed up the search of the game tree. Transposition tables are primarily useful in perfect information games, meaning the entire state of the game is known to all players at all times....
, a refutation table, an evaluation cache, selective extensions, recursive null-move search, and many other features ([ftp://ftp.cis.uab.edu/pub/hyatt/documentation/crafty.man cf manual]). Special editions of the program include enhanced features such as an opening book
Opening book
Chess opening book refers either to a book on chess openings, or to a database of chess openings used by chess programs.-Literature:Opening books, which discuss chess openings, are by far the most common type of literature on Chess play...
, positional learning, and an endgame tablebase
Endgame tablebase
An endgame tablebase is a computerized database that contains precalculated exhaustive analysis of a chess endgame position. It is typically used by a computer chess engine during play, or by a human or computer that is retrospectively analysing a game that has already been played.The tablebase...
.
Crafty was one of the programs included in the SPEC CPU2000
Standard Performance Evaluation Corporation
The Standard Performance Evaluation Corporation is a non-profit organization that aims to "produce, establish, maintain and endorse a standardized set" of performance benchmarks for computers....
benchmark test. It is also included as an additional engine in Fritz
Fritz (chess)
Fritz is a German chess program developed by Frans Morsch and Mathias Feist and published by ChessBase. There is also a version called Deep Fritz that is designed for multiprocessing....
.
External links
- Dr. Robert Hyatt's home page
- [ftp://ftp.cis.uab.edu/pub/hyatt/ Crafty on ftp server]
- rpm file for linux
- Crafty Command Documentation
- Crafty Chess page (Latest Version Downloads)
- Graphics suitable for Crafty's annotateh command
- Play against Crafty in your browser
- Interactive Online Version of Crafty Chess Engine