Amundsen
Amundsen, (Jonte)
a Chess Engine Communication Protocol compliant open source chess engine by John Bergbom, written in C and licensed under the GPL.
Started as college course project at the Department of Numerical Analysis and Computing Science, Royal Institute of Technology, Stockholm [3], a name change from Jonte to Amundsen took place between version 0.25 and 0.3, since the initial name was already used at FICS [4].
Amundsen was first released in May 2004, as announced by Dann Corbit in Winboard Forum [5].
Contents
Description
Board Representation
Amundsen is a bitboard engine and applies rotated bitboards using the classical 1/2 MiB lookup tables, indexed by 8-bit line occupancy to determine sliding piece attacks, ignoring the possible fourfold reduction excluding the redundant outer squares. Population count, bitscan forward and reverse further use three 16-bit indexed, 64K lookup tables of double word integers, which is another 3/4 MiB of memory [6].
int bits_in_16bits[65536]; int first_bit_in_16bits[65536]; int last_bit_in_16bits[65536]; /* This function returns the number of the first set bit in an int64. The search is done from LSB to MSB. */ int get_first_bitpos(int64 n) { if (first_bit_in_16bits[n & 0xffff] >= 0) return first_bit_in_16bits[n & 0xffff]; if (first_bit_in_16bits[(n >> 16) & 0xffff] >= 0) return first_bit_in_16bits[(n >> 16) & 0xffff] + 16; if (first_bit_in_16bits[(n >> 32) & 0xffff] >= 0) return first_bit_in_16bits[(n >> 32) & 0xffff] + 32; if (first_bit_in_16bits[(n >> 48) & 0xffff] >= 0) return first_bit_in_16bits[(n >> 48) & 0xffff] + 48; return -1; }
Search
The search is PVS alpha-beta with transposition and refutation table inside an iterative deepening framework with aspiration windows, further using AEL-pruning à la Heinz, as well as LMR and IID in case of a missing hash move at PV-nodes. Checks, pawn moves to the 7th rank, and mate threatening moves are extended, killer- and history heuristic help to order moves, and a SEE swap routine is used to determine winning captures.
Evaluation
Amundsen's evaluation with a pawn structure cache features piece-square tables, and further considers mobility, passed pawns and hidden passed pawns, king safety through king piece tropism, and various features and defects such as outposts, rook on open file, seventh rank and behind passers, and bad bishop to name a few, and knows to trade pieces when ahead, but pawns when behind.
See also
Publications
- John Bergbom (2004). Schackprogrammet Amundsen. (2D1464 Större avancerad individuell kurs i datalogi) pdf (Swedish) [7]
Forum Posts
- A new chess program by Dann Corbit, Winboard Forum, May 22, 2004
- Amundsen 0.3 and his book : problem ? by Claude Dubois, Winboard Forum, May 24, 2004
- Amundsen 0.35 exe by Jim Ablett, Winboard Forum, August 25, 2004
- Amundsen 05 Windows binaries by Jim Ablett, Winboard Forum, September 14, 2005
- Amundsen 0.65 (released on January 11th 2008) by Denis P. Mendoza, Winboard Forum, January 15, 2008
- Amundsen 0.65.1 Windows builds available by Jim Ablett, Winboard Forum, February 23, 2008
- Amundsen_075JA with illegal moves by Günther Simon, Winboard Forum, January 18, 2009
External Links
Chess Engine
Misc
References
- ↑ Roald Amundsen - Wikiquote
- ↑ Photo by Ludwik Szacinski, in Roald Amundsen (1908). Roald Amundsen's The North West Passage: Being a Record of a Voyage of Exploration of the ship Gjøa, 1903-1907. Dutton, New York City; National Library of Canada, Wikimedia Commons, see also Roald Amundsen - Northwest Passage (1903–1906) from Wikipedia, Gjøa from Wikipedia
- ↑ Master of Science - Nada, KTH
- ↑ Amundsen chess program
- ↑ A new chess program by Dann Corbit, Winboard Forum, May 22, 2004
- ↑ amundsen-0.80.tar.gz, bitboards.c
- ↑ Amundsen chess program (old page)