-
Notifications
You must be signed in to change notification settings - Fork 9
/
Barbarossa-NB.tex
47 lines (39 loc) · 2 KB
/
Barbarossa-NB.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
% Barbarossa-NB.tex
\begin{hcarentry}{Barbarossa}
\report{Nicu Ionita}%05/18
\status{actively developed}
\makeheader
Barbarossa is a UCI chess engine written completely in Haskell. UCI is one of
the two most used protocols used in the computer chess scene to communicate
between a chess GUI and a chess engine. This way it is possible to write just
the chess engine, which then works with any chess GUI.
I started in 2009 to write a chess engine under the name Abulafia. In 2012 I
decided to rewrite the evaluation and search parts of the engine under the new
name, Barbarossa.
My motivation was to demonstrate that even in a domain in which the raw speed
of a program is very important, as it is in computer chess, it is possible to
write competitive software with Haskell. The speed of Barbarossa (measured in
searched nodes per second) is still far behind comparable engines written in C
or C++. Nevertheless Barbarossa can compete with many engines - as it can be
seen on the CCRL rating lists, where is it currently listed with a strength
of more than 2300 ELO (the last release version, see below).
Barbarossa uses a few techniques which are well known in the computer chess
scene:
\begin{compactitem}
\item in evaluation: material, king safety, piece mobility, pawn structures,
tapped evaluation and a few other less important features
\item in search: principal variation search, transposition table, null move
pruning, killer moves, futility pruning, late move reduction, internal
iterative deepening.
\end{compactitem}
I still have a lot of ideas which could improve the strength of the engine,
some of which address a higher speed of the calculations, and some, new
chess related features, which may reduce the search tree.
The engine is open source and is published on github. The last released
version is Barbarossa v0.4.0 from December 2016.
\FurtherReading
\begin{compactitem}
\item\url{https://github.com/nionita/Barbarossa/releases}
\item\url{http://www.computerchess.org.uk/ccrl/404/}
\end{compactitem}
\end{hcarentry}