Home * Engines * AICE

a free Chess Engine Communication Protocol and UCI compliant chess engine, written by Anastasios Milikas in C++ using the Standard Template Library, with Windows and Linux binaries available [1]. AICE is an Arena partner engine [2], and able to play Chess960, participated at the two open Livingston Chess960 Computer World Championships, the Chess960CWC 2005 and the Chess960CWC 2006.
AICE Logo [3]


AICE stands for Artificially Intelligent Chess Engine, as explained by Anastasios, who also remarked "This is probably not a good name, since the engine is not intelligent! But I am working on it…” [4]. Anastasios initial intention with AICE was to use neural networks and genetic algorithms in order to optimize its evaluation weights, but he found that this was not productive and suitable for a chess evaluation function. They might be useful in time management, or controlling extentions or reductions [5].


AICE is a bitboard based PV searcher with adaptive null move pruning in none PV-Nodes, using SEE, history- and killer heuristic to improve move ordering, and fractional extensions and non recursive reductions based on evaluation and history. In version 0.73, fail-high reductions were implemented in addition to null move pruning, but removed in in 0.97. Beside the transposition table and a smaller hash table for the quiescence search, AICE maintains a pawn hash table to cache once calculated pawn structure related data.

See also

Forum Posts

External Links

Chess Engine



  1. ^ milix AICE chess engine for both UCI and Winboard
  2. ^ Arena Chess GUI 3.0 - Aice
  3. ^ milix AICE chess engine for both UCI and Winboard
  4. ^ Portrait of Anastasios Mikilas, author of the Chess960 engine AICE by Mark Vogelgesang, July 21, 2005
  5. ^ Interview with the programmer of AICE by Alexander Schmidt and Frank Quisinsky, Arena Chess GUI 3.0 - Archive 8, 118, April 27, 2005

What links here?

Up one Level