631.deepsjeng_s
Gian-Carlo Pascutto <gcp [at] sjeng.org>
Artificial Intelligence (alpha-beta tree search & pattern recognition)
631.deepsjeng_s is based on Deep Sjeng WC2008, the 2008 World Computer Speed-Chess Champion. Deep Sjeng is a rewrite of the older Sjeng-Free program, focused on obtaining the highest possible playing strength.
It attempts to find the best move via a combination of alpha-beta tree searching, advanced move ordering, ositional evaluation and heuristic forward pruning. Practically, it will explore the tree of variations resulting from a given position to a given base depth, extending interesting variations but discarding doubtful or irrelevant ones. From this tree the optimal line of play for both players ("principal variation") is determined, as well as a score reflecting the balance of power between the two.
Specific advances since the previous version include the use of bitboards based on Kindergarten/Magic attack calculators, an evaluation function with much deeper positional understanding, and a search function that is significantly better at discarding irrelevant subtrees. The overall program structure has been optimized for speed as well, dropping support for everything besides classical chess.
The rate version of the benchmark is compiled with SMALL_MEMORY. It was observed to require around 700 MiB of memory during pre-release testing on one of SPEC's Linux systems.
The speed version is compiled with BIG_MEMORY, and uses around 10x as much memory as the rate version. Having more memory allows more information to be stored about every position, notably if there are threats, or if there is only one good move. This information then causes some positions to be investigated deeper, which means it will take longer to reach the same search depth, but the result will be more accurate.
Both the rate and speed versions use the same inputs, a textfile containing alternations of:
The output consists, per position, of some side information (textual display of the chessboard, phase of the game, used parameters...) followed by the output from the tree searching module as it progresses. This is formatted as follows:
The output is validated against a SPEC-supplied set of expected outputs. Note that the expected output differs between the rate and speed versions.
C++
None.
Deep Sjeng (which became 631.deepsjeng_s) is licensed directly to SPEC by the author, Gian-Carlo Pascutto.
Copyright © 2017-2019 Standard Performance Evaluation Corporation (SPEC®)