Page 1 of 17

Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 3:16 am
by Thomas Zipproth
Hello together,

today I released Brainfish, which realizes a new concept of a chess engine, the unification of an opening book and the engine. Brainfish ist build upon Stockfish, therefore it is of course under the GPL license and the source code is available. The additional parts are not StockFish dependant and would work in every engine.

Unification means, that the book is not created with statistics or human configuration, but is completely generated from the engine itself, like a grandmaster may think of how to play some opening lines before a game. The book is contained in the exe itself, to demonstrate the unity of both.

So when Brainfish makes a move from it's internal opening library, there is in fact still Stockfish playing, but with a much higher precision and depth than normally possible. The libray extends in many cases into the deep middlegame and also into the endgame. If Brainfish is out of his book, it plays identical to Stockfish.

Brainfish is a spinoff of a Library called Cerebellum (not yet released) for the deep Analysis of chess Positions and complete opening trees. It contains the one or two best moves per position from Cerebellum. So BrainFish can be regarded as the playing part of that Library. BrainFish can also handle transpostions and graph interactions in his library, which is one of it's main advantages. There may be some similarities with IDeA, but I don't know enough of IDeA to compare them directly.

How can BrainFish be compared to other Engines?

That's a bit difficult, because BrainFish is in fact not just another Engine or a Stockfish clone with a different playing style. It add's something new to an engine, a self generated playing book (playing book because it can handle also middle and endgames). So the increase in playing strength can be directly measured, but the difference does not mean the same as when comparing two standard engines. It's more like building the strongest possible chess playing entity, no matter how it works internally.

How does it compare to Stockfish with a good standard opening book?

Brainfish should already play better than most or perhaps any Stockfish + opening book combination, but there's not enough statistical evidence so far. The main advantage of BrainFish is that it plays better every day when adding new nodes and recalculating the graph.

The graph algorithm always recalculates the whole tree, that means adding an endgame postion can change what BrainFish plays in the first moves.

BrainFish Website: www.zipproth.de/BrainFish
Stefan Pohls Testing site: http://spcc.beepworld.de/index.htm

Thomas

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 3:24 am
by carldaman
Thomas Zipproth wrote:Hello together,

today I released BrainFish, which realizes a new concept of a chess engine, the unification of an opening book and the engine. Brainfish ist build upon Stockfish, therefore it is of course under the GPL license and the source code is available. The additional parts are not StockFish dependant and would work in every engine.

Unification means, that the book is not created with statistics or human configuration, but is completely generated from the engine itself, like a grandmaster may think of how to play some opening lines before a game. The book is contained in the exe itself, to demonstrate the unity of both.

So when Brainfish makes a move from it's internal opening library, there is in fact still Stockfish playing, but with a much higher precision and depth than normally possible. The libray extends in many cases into the deep middlegame and also into the endgame. If Brainfish is out of his book, it plays identical to Stockfish.

Brainfish is a spinoff of a Library called Cerebellum (not yet released) for the deep Analysis of chess Positions and complete opening trees. It contains the one or two best moves per position from Cerebellum. So BrainFish can be regarded as the playing part of that Library. BrainFish can also handle transpostions and graph interactions in his library, which is one of it's main advantages. There may be some similarities with IDeA, but I don't know enough of IDeA to compare them directly.

How can BrainFish be compared to other Engines?

That's a bit difficult, because BrainFish is in fact not just another Engine or a Stockfish clone with a different playing style. It add's something new to an engine, a self generated playing book (playing book because it can handle also middle and endgames). So the increase in playing strength can be directly measured, but the difference does not mean the same as when comparing two standard engines. It's more like building the strongest possible chess playing entity, no matter how it works internally.

How does it compare to Stockfish with a good standard opening book?

Brainfish should already play better than most or perhaps any Stockfish + opening book combination, but there's not enough statistical evidence so far. The main advantage of BrainFish is that it plays better every day when adding new nodes and recalculating the graph.

The graph algorithm always recalculates the whole tree, that means adding an endgame postion can change what BrainFish plays in the first moves.


BrainFish Website: www.zipproth.de/BrainFish
Stefan Pohls Testing site: http://spcc.beepworld.de/index.htm

Thomas
Thanks, Thomas, very interesting. Are you saying that the end user can trigger a daily recalculation of the whole built-in tree, without needing a new compile/ build?

CL

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 3:33 am
by Thomas Zipproth
carldaman wrote:
Thanks, Thomas, very interesting. Are you saying that the end user can trigger a daily recalculation of the whole built-in tree, without needing a new compile/ build?

CL
The ability to do that will be in the release of the library itself which is planned in a few month from now, but I will try to add a Brainfish update to the website as often a possible, perhaps one or two times a week for the bmi2 (haswell) and modern (popcount) Version.

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 5:52 am
by Nay Lin Tun
Really impressive idea, Thomas. I have a couple of questions.Is it based on stockfish master
or ASM fish? Is it possible to merge into SF testing framework ? Can the cellebrum or library benefit from SF testing framework?
Cheers,
Nay

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 10:57 am
by supersharp77
Thomas Zipproth wrote:
carldaman wrote:
Thanks, Thomas, very interesting. Are you saying that the end user can trigger a daily recalculation of the whole built-in tree, without needing a new compile/ build?

CL
The ability to do that will be in the release of the library itself which is planned in a few month from now, but I will try to add a Brainfish update to the website as often a possible, perhaps one or two times a week for the bmi2 (haswell) and modern (popcount) Version.
Need a w32 compile for testing.......download looks big......29mb zip file!
Thx in advance....AR :) :wink:

ps.. Aristarch with chessbrain!?!?.......Interesting

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 11:10 am
by Thomas Zipproth
Brainfish is based on the current Stockfish master. Future implementations may have a proxy exe, which can connect the library to any engine.

Regarding the SF testing framework, Brainfish can learn from played games by integrating them in it's library. But a better way to use a lot of computing power would be to use them for the calculation of the library itself, which is already possible in a distributed way.

The next step would be to implement a framework for the distributed computing of the library.

Thomas

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 11:14 am
by Thomas Zipproth
supersharp77 wrote:
Need a w32 compile for testing.......download looks big......29mb zip file!
Thx in advance....AR :) :wink:

ps.. Aristarch with chessbrain!?!?.......Interesting
I will try to upload a w32 compile next week, this week I'm on holiday :)

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 12:39 pm
by pohl4711
Thomas Zipproth wrote:
carldaman wrote:
Thanks, Thomas, very interesting. Are you saying that the end user can trigger a daily recalculation of the whole built-in tree, without needing a new compile/ build?

CL
The ability to do that will be in the release of the library itself which is planned in a few month from now, but I will try to add a Brainfish update to the website as often a possible, perhaps one or two times a week for the bmi2 (haswell) and modern (popcount) Version.
From the Brainfish-website (www.zipproth.de): "For feedback or if you have lines (for example from a lost game) that should be included in the book, you can send them to Brainfish (at) zipproth.com"

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 2:12 pm
by Michel
I must confess I don't understand the difference between BrainFish and Stockfish playing with a strong opening book.

Perhaps the book in BF acts as a hashtable so that it can also be used in search? But I don't think this would give additional strength.

Re: Brainfish, a new concept of a chess engine

Posted: Mon Jul 25, 2016 3:20 pm
by Guenther
Thomas Zipproth wrote:Brainfish is based on the current Stockfish master. Future implementations may have a proxy exe, which can connect the library to any engine.

Regarding the SF testing framework, Brainfish can learn from played games by integrating them in it's library. But a better way to use a lot of computing power would be to use them for the calculation of the library itself, which is already possible in a distributed way.

The next step would be to implement a framework for the distributed computing of the library.

Thomas
You should add the exact name of what 'current' SF master source was used, because just a few days later no one knows it w/o doing a diff, if it is just generally written in the readme.
- the current development version of Stockfish
By now (time of writing this post) the current version would be:
stockfish_16072409

Guenther