Brainfish, a new concept of a chess engine

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Thomas Zipproth
Posts: 59
Joined: Sat Jan 01, 2011 5:33 pm

Brainfish, a new concept of a chess engine

Post 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
Last edited by Thomas Zipproth on Mon Jul 25, 2016 3:24 am, edited 1 time in total.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Brainfish, a new concept of a chess engine

Post 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
Thomas Zipproth
Posts: 59
Joined: Sat Jan 01, 2011 5:33 pm

Re: Brainfish, a new concept of a chess engine

Post 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.
Nay Lin Tun
Posts: 708
Joined: Mon Jan 16, 2012 6:34 am

Re: Brainfish, a new concept of a chess engine

Post 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
supersharp77
Posts: 1242
Joined: Sat Jul 05, 2014 7:54 am
Location: Southwest USA

Re: Brainfish, a new concept of a chess engine

Post 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
Thomas Zipproth
Posts: 59
Joined: Sat Jan 01, 2011 5:33 pm

Re: Brainfish, a new concept of a chess engine

Post 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
Thomas Zipproth
Posts: 59
Joined: Sat Jan 01, 2011 5:33 pm

Re: Brainfish, a new concept of a chess engine

Post 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 :)
User avatar
pohl4711
Posts: 2433
Joined: Sat Sep 03, 2011 7:25 am
Location: Berlin, Germany
Full name: Stefan Pohl

Re: Brainfish, a new concept of a chess engine

Post 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"
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: Brainfish, a new concept of a chess engine

Post 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.
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Brainfish, a new concept of a chess engine

Post 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