From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * AICE

AICE Logo [1]

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


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…” [3]. 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 extensions or reductions [4].


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.

Forum Posts

External Links

Chess Engine



Up one Level