Skip to content
Modification of the Grapefruit chess engine using backpropagation neural network for evaluation.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
Makefile
README.org
attack.cpp
attack.h
board.cpp
board.h
book.cpp
book.h
bpn.cpp
bpn.h
bpnlayer.cpp
bpnlayer.h
colour.h
copying.txt
eval.cpp
eval.h
fen.cpp
fen.h
grape.bpn
hash.cpp
hash.h
list.cpp
list.h
main.cpp
material.cpp
material.h
move.cpp
move.h
move_check.cpp
move_check.h
move_do.cpp
move_do.h
move_evasion.cpp
move_evasion.h
move_gen.cpp
move_gen.h
move_legal.cpp
move_legal.h
option.cpp
option.h
pawn.cpp
pawn.h
piece.cpp
piece.h
polyglot.ini
posix.cpp
posix.h
probe.cpp
probe.h
protocol.cpp
protocol.h
pst.cpp
pst.h
pv.cpp
pv.h
random.cpp
random.h
recog.cpp
recog.h
search.cpp
search.h
search_full.cpp
search_full.h
see.cpp
see.h
sort.cpp
sort.h
square.cpp
square.h
trans.cpp
trans.h
util.cpp
util.h
value.cpp
value.h
vector.cpp
vector.h

README.org

Introduction

neuroGrape is a free UCI chess engine based on Grapefruit 1.0[fn:1] which is based on Toga II 1.4 beta5c[fn:2]. neuroGrape is an attempt to integrate a backpropagation neural network as an evaluation function.

Usage

The engine has 4 modes of play, controlled by the “Mode” UCI parameter:

0 - original Grapefruit eval is logged to files. There has to be a `logs’ directory along the neuroGrape executable. These log files can be processed by the neuroChessTrainer[fn:3] program to train and test networks. This mode can work correctly only on single thread so be sure to specify “Threads” UCI parameter as 1.

1 - online training. The original Grapefruit eval is used to train the network specified by the “Neural Network File” UCI parameter whose evaluation is actually used for playing. This mode is the slowest but the most interesting as the engine is supposed to improve somewhat with every move (in fact, with every thought)! The neural network file format can be found at [fn:3] (not fully specified network is also allowed). If the file is missing, new network is created and will be freshly initialized. Newly trained network is saved to the same file when engine is unloaded. For this mode a single engine thread is also mandatory but there is additional “Training Threads” UCI parameter which specifies number of threads within the neural network.

2 - neural network specified by “Neural Network File” UCI parameter is used for evaluation (again not fully specified network or missing network file is also allowed but it will be freshly initialized and thus playing randomly). Multiple threads specified by the “Threads” UCI parameter are allowed.

3 - original Grapefruit playing.

MISC

neuroGrape is developed and thus far only tested on GNU/Linux. To build from source invoke `make’ in the source directory.

Disclaimer

neuroGrape is an experiment (more like meta-engine) and in combination with neuroChessTrainer[fn:3] supposed to be testing platform for different backpropagation neural networks. There are no expectations for engine strength and as far as hardly trained, it plays like a novice drunkard.

Footnotes

[fn:1] http://sourceforge.net/projects/grapefruitchess [fn:2] http://www.computerchess.info/tdbb/phpBB3/viewforum.php?f=9 [fn:3] https://github.com/m00natic/neuroChessTrainer

You can’t perform that action at this time.