KnightCap

Last updated
KnightCap
Original author(s) Andrew Tridgell
Written in C
Platform Unix
Type Chess engine
License GNU General Public License
Website www.samba.org/KnightCap/

KnightCap is an open source computer chess engine. Its primary author is Andrew Tridgell and it was created circa 1996. Major contributions have also been made by Jon Baxter and probably minor contributions by a few others. KnightCap is free software released under the GNU General Public License (GPL).

In most ways, KnightCap is a fairly typical modern program. It uses bitboard data structures that are slightly different from those that were well known in 1996, but obvious enough and probably well known now. There is backward pruning using MTD(f) (a method approximately equivalent to Alpha-beta pruning but slightly more efficient in some settings). There is Null-move heuristic. There is a fairly complex end-node evaluation process that considers similar features to other programs.

In addition, KnightCap has support for multi-processor computers, in particular the now obsolete Fujitsu CAP computer research machines.

The most original feature of KnightCap, introduced in the late 1990s, was an experiment in temporal difference learning as applied to chess. This technique allowed KnightCap to automatically tune the weights applied to the various features in its evaluation function based on the games it played.

For a while in the 1990s, KnightCap was quite active on chess servers on the Internet, but it is now semi-retired and rarely seen. Its strength is below that of the strongest programs, but still quite good.[ citation needed ]

Related Research Articles

<span class="mw-page-title-main">Computer chess</span> Computer hardware and software capable of playing chess

Computer chess includes both hardware and software capable of playing chess. Computer chess provides opportunities for players to practice even in the absence of human opponents, and also provides opportunities for analysis, entertainment and training. Computer chess applications that play at the level of a chess grandmaster or higher are available on hardware from supercomputers to smart phones. Standalone chess-playing machines are also available. Stockfish, GNU Chess, Fruit, and other free open source applications are available for various platforms.

Alpha–beta pruning is a search algorithm that 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 combinatorial games. It stops evaluating a move when at least one possibility has been found that proves the move to be worse than a previously examined move. Such moves need not be evaluated further. When applied to a standard minimax tree, it returns the same move as minimax would, but prunes away branches that cannot possibly influence the final decision.

<span class="mw-page-title-main">Evaluation function</span> Function in a computer game-playing program that evaluates a game position

An evaluation function, also known as a heuristic evaluation function or static evaluation function, is a function used by game-playing computer programs to estimate the value or goodness of a position in a game tree. Most of the time, the value is either a real number or a quantized integer, often in nths of the value of a playing piece such as a stone in go or a pawn in chess, where n may be tenths, hundredths or other convenient fraction, but sometimes, the value is an array of three values in the unit interval, representing the win, draw, and loss percentages of the position.

<span class="mw-page-title-main">Computer Go</span> Field of artificial intelligence around Go computer programs

Computer Go is the field of artificial intelligence (AI) dedicated to creating a computer program that plays the traditional board game Go. The field is sharply divided into two eras. Before 2015, the programs of the era were weak. The best efforts of the 1980s and 1990s produced only AIs that could be defeated by beginners, and AIs of the early 2000s were intermediate level at best. Professionals could defeat these programs even given handicaps of 10+ stones in favor of the AI. Many of the algorithms such as alpha-beta minimax that performed well as AIs for checkers and chess fell apart on Go's 19x19 board, as there were too many branching possibilities to consider. Creation of a human professional quality program with the techniques and hardware of the time was out of reach. Some AI researchers speculated that the problem was unsolvable without creation of human-like AI.

A transposition table is a cache of previously seen positions, and associated evaluations, in a game tree generated by a computer game playing program. If a position recurs via a different sequence of moves, the value of the position is retrieved from the table, avoiding re-searching the game tree below that position. Transposition tables are primarily useful in perfect-information games. The usage of transposition tables is essentially memoization applied to the tree search and is a form of dynamic programming.

<span class="mw-page-title-main">Chess engine</span> Computer program for chess analysis and game

In computer chess, a chess engine is a computer program that analyzes chess or chess variant positions, and generates a move or list of moves that it regards as strongest.

<span class="mw-page-title-main">Crafty</span>

Crafty is a chess program written by UAB professor Dr. Robert Hyatt, with continual development and assistance from Michael Byrne, Tracy Riegle, and Peter Skinner. It is directly derived from Cray Blitz, winner of the 1983 and 1986 World Computer Chess Championships. Tord Romstad, the author of Stockfish, described Crafty as "arguably the most important and influential chess program ever".

<span class="mw-page-title-main">ChessV</span> Computer program designed to play chess variants

ChessV is a free computer program designed to play many chess variants. ChessV is an open-source, universal chess variant program with a graphical user-interface, sophisticated AI, support for opening books and other features of traditional chess programs. The developer of this program, Gregory Strong, has been adding more variants with each release of ChessV. Over 100 chess variants are supported, including the developer's few own variants and other exotic variants, and can be programmed to play additional variants. ChessV is designed to be able to play any game that is reasonably similar to chess. ChessV is one of only a few such programs that exist. The source code of this program is freely available for download as well as the executable program.

<span class="mw-page-title-main">Benchmark (computing)</span> Comparing the relative performance of computers by running the same program on all of them

In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it.

<span class="mw-page-title-main">Belle (chess machine)</span>

Belle was a chess computer developed by Joe Condon (hardware) and Ken Thompson (software) at Bell Labs. In 1983, it was the first machine to achieve master-level play, with a USCF rating of 2250. It won the ACM North American Computer Chess Championship five times and the 1980 World Computer Chess Championship. It was the first system to win using specialized chess hardware.

<span class="mw-page-title-main">Rybka</span> Chess engine

Rybka is a computer chess engine designed by International Master Vasik Rajlich. Around 2011, Rybka was one of the top-rated engines on chess engine rating lists and won many computer chess tournaments.

Computer bridge is the playing of the game contract bridge using computer software. After years of limited progress, since around the end of the 20th century the field of computer bridge has made major advances. In 1996 the American Contract Bridge League (ACBL) established an official World Computer-Bridge Championship, to be held annually along with a major bridge event. The first championship took place in 1997 at the North American Bridge Championships in Albuquerque. Since 1999 the event has been conducted as a joint activity of the American Contract Bridge League and the World Bridge Federation. Alvin Levy, ACBL Board member, initiated this championship and has coordinated the event annually since its inception. The event history, articles and publications, analysis, and playing records can be found at the official website.

<span class="mw-page-title-main">Alexander Brudno</span> Russian computer scientist (1918–2009)

Alexander L'vovich Brudno was a Russian computer scientist, best known for fully describing the alpha-beta pruning algorithm. From 1991 until his death he lived in Israel.

<span class="mw-page-title-main">Anti-computer tactics</span> Human methods against game-playing computers

Anti-computer tactics are methods used by humans to try to beat computer opponents at various games, most typically board games such as chess and Arimaa. They are most associated with competitions against computer AIs that are playing to their utmost to win, rather than AIs merely programmed to be an interesting challenge that can be given intentional weaknesses and quirks by the programmer. Such tactics are most associated with the era when AIs searched a game tree with an evaluation function looking for promising moves, often with Alpha–beta pruning or other minimax algorithms used to narrow the search. Against such algorithms, a common tactic is to play conservatively aiming for a long-term advantage. The theory is that this advantage will manifest slowly enough that the computer is unable to notice in its search, and the computer won't play around the threat correctly. This may result in, for example, a subtle advantage that eventually turns into a winning chess endgame with a passed pawn.

In computer science, B* is a best-first graph search algorithm that finds the least-cost path from a given initial node to any goal node. First published by Hans Berliner in 1979, it is related to the A* search algorithm.

Explanation-based learning (EBL) is a form of machine learning that exploits a very strong, or even perfect, domain theory in order to make generalizations or form concepts from training examples. It is also linked with Encoding (memory) to help with Learning.

<span class="mw-page-title-main">MChess Pro</span>

MChess Pro is the name given to a chess playing computer program written by Marty Hirsch which won the World Microcomputer Chess Championship in 1995. The program is no longer under development and is no longer commercially available and therefore has largely historical significance only.

<span class="mw-page-title-main">Computer Othello</span> Abstract strategy game

Computer Othello refers to computer architecture encompassing computer hardware and computer software capable of playing the game of Othello. It was notably included in Microsoft Windows from 1.0 to XP, where it is simply known as Reversi.

Computer Arimaa refers to the playing of the board game Arimaa by computer programs.