Golch
Golch,
an experimental chess engine by Artem Pyatakov. Initially written in early 2001 [2] during his freshman year at Princeton University, it was a conventional chess program written in C, using a 0x88 board representation [3], alpha-beta, iterative deepening, transposition table [4], killer- and history heuristic, along with all the domain dependent tricks in move ordering (i.e searching captures first), selectivity and evaluation. In 2001, Golch was active at ICC [5]. The program was later used as test-bed for Pyatakov's senior thesis Improving Computer Chess through Machine Learning [6] under advisor Robert Schapire [7]. The aim was to narrow the claimed gap between artificial intelligence methods and computer chess methods and tricks, manifested as human-generated, domain dependent ideas that happened to work without a good theoretical justification and cannot be easily generalized to other games [8].
Contents
Perceptron
The online-learning approach to replace classical evaluation by a single layer perceptron, combining a feature vector, representing the board, with a set of adjustable weights, trained by supervised move adaption with some test-positions such as the Bratko-Kopec Test produced slightly disappointing results. The feature-vector used had 64 binary elements of an occupied bitboard, and a 16x16 attack map [9], which hopefully distinguished attacked but sufficiently defended pieces or pawns from pieces or pawns en prise.
History Heuristic
More promising results was due to an advanced implementaion of history heuristic, where a table was not only indexed by its [from][to] coordinates of a move, but a much larger table with additional context of the moving piece along with a bitmask of pieces attacking the from square, which was reported to work about 3% better than the pure history heuristic in terms of node counts on the Bratko-Kopec problems [10]:
history[piece][from][to][attack_bit_vector] += (1 << depth);
See also
Publications
- Artem Pyatakov (2004). Improving Computer Chess through Machine Learning. Senior thesis, Princeton University, advisor Robert Schapire [11]
Forum Posts
- Fastest Conversion from 0x88 board to 8x8 board representation by Artem Pyatakov, CCC, July 06, 2001 » 0x88
- Question about Gerbil by Artem Pyatakov, CCC, July 11, 2001
- Bitfields and Crafty by Artem Pyatakov, CCC, July 11, 2001
- Artificial Intelligence in Computer Chess by Artem Pyatakov, CCC, March 28, 2004 » Artificial Intelligence
- Re: Artificial Intelligence in Computer Chess - *DETAILS* as promised by Artem Pyatakov, CCC, March 28, 2004 » History Heuristic
- Killer modifications reduced tree size by 8% (with identical results) by Artem Pyatakov, CCC, March 31, 2004 » Killer Heuristic
External Links
References
- ↑ The appropriate weights are applied to the inputs, and the resulting weighted sum passed to a function that produces the output y, image created by mat_the_w, based on raster image Perceptron.gif by 'Paskari', using Inkscape 0.46 for OSX, Wikimedia Commons, Perceptron from Wikipedia
- ↑ Question about Gerbil by Artem Pyatakov, CCC, July 11, 2001
- ↑ Fastest Conversion from 0x88 board to 8x8 board representation by Artem Pyatakov, CCC, July 06, 2001
- ↑ Question about Gerbil by Artem Pyatakov, CCC, July 11, 2001
- ↑ Finger golch at Internet Chess Club
- ↑ Artificial Intelligence in Computer Chess by Artem Pyatakov, CCC, March 28, 2004
- ↑ Princeton - Independent Project Presentation Schedule
- ↑ Artificial Intelligence in Computer Chess by Artem Pyatakov, CCC, March 28, 2004
- ↑ Re: Artificial Intelligence in Computer Chess - *DETAILS* as promised by Artem Pyatakov, CCC, March 28, 2004
- ↑ Re: Artificial Intelligence in Computer Chess - *DETAILS* as promised by Artem Pyatakov, CCC, March 28, 2004
- ↑ Artificial Intelligence in Computer Chess by Artem Pyatakov, CCC, March 28, 2004