Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / BrainFish, eine neue Schach Engine
- - By Thomas Zipproth Date 2016-07-24 17:37
Verehrte Schachgemeinde,

es gibt eine neue Engine, Brainfish, die heute erschienen ist.

Brainfish ist auf Stockfish aufgebaut und verwirklicht ein neuartiges, von Stockfish unabhängiges Engine-Konzept, nämlich die Verschmelzung von Eröffnungsbuch und Engine.

Was bedeutet das?

Die klassischen Eröffnungsbücher werden normalerweise aus Partiensammlungen heraus erstellt, und spielen ihre Züge aufgrund von statistischen Information über die Anzahl von Gewinn- und Verlustpartien, oder aufgrund von manuellen Eingaben.

Es gibt aber auch einen ganz anderen Weg:

Ein Schachprogramm könnte eine eigene Eröffnungsbibliothek berechnen, indem es wie ein Mensch die gängigen Eröffnungen berechnet, und diese Informationen dann auswertet, indem es alle Positionen und deren Scores untereinander verknüpft, und so zusätzliches Wissen erzeugt.

Genau das wird in Brainfish gemacht. Die Grundlage dafür ist ein Schachbibliothek namens Cerebellum, mit Millionen von Eröffnungs-, Mittelspiel- und teilweise auch Endspielstellungen, die alle in einem großen Graphen verknüpft sind, dessen Knoten durch einen eigenen Algorithmus berechnet worden sind.

Ein grundsätzliche Erklärung der Methodik findet sich auf den Webseiten von Brainfish und Stefan Pohl.

Cerebellum ist zu einem Teil in Brainfish enthalten, nämlich in der Form des besten oder zweitbesten Zuges für jede Stellung, ohne die Score-Information. In dieser Version ist es Open Source und GPL lizensiert.

Diese Bibliothek wird momentan in Brainfish nur im Turniermodus verwendet, das heißt beim Spiel mit Zeit. Die Cerebellum Library mit Analysefunktion wird zu einem späteren Zeitpunkt erscheinen.

Während Brainfish auf Stockfish aufgebaut ist, ist die Cerebellum Library unabhängig von jeder Engine. Wenn Brainfish also eine Eröffnung spielt, ist es so, als ob Stockfish spielt, nur eben mit einer viel größeren Tiefe und Genauigkeit. Ist eine Stellung nicht in Brainfish enthalten, spielt es wie der aktuelle Stockfish.

Mein besonderer Dank gilt Stefan Pohl, für über ein Jahr des geduldigen Testens, zahlreiche Ideen und Hilfe bei der Dokumentation sowie Armin Siwy für sieben Jahre Unterstützung bei der Entwicklung und Engine-Turnieren. Ebenso meinem Bruder Stefan Zipproth für die Website sowie die Erstellung der GUI "Sirius", welche die vollständige Funktionalität von Cerebellum anbindet. Und Armin Siwy für langjährige Unterstützung bei Engine Turnieren und Tests.

Die Brainfish Website:  http://www.zipproth.de/Brainfish
Stefan Pohls Testseite mit Ergebnissen:  http://spcc.beepworld.de/index.htm

Thomas Zipproth
Parent - By Stefan Pohl Date 2016-07-24 17:42
Ich habe zu danken. Bei diesem hochspannenden, innovativen Projekt mitwirken zu dürfen, war mir eine Ehre und ein Vergnügen!

Stefan (SPCC)
Parent - - By Patrick Jansen Date 2016-07-24 19:08 Edited 2016-07-24 19:11
Hi Thomas,

ich wollte mal schnell eure Sourcen unter OS X kompilieren...funktioniert leider nicht, die Kompilierung bricht ab, da eine windows.h verwendet bzw. nicht gefunden wird.

Code:
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11  -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -flto   -c -o tt.o tt.cpp
tt.cpp:27:10: fatal error: 'windows.h' file not found
#include "windows.h"
Parent - - By Thomas Zipproth Date 2016-07-24 19:16
Ja, geht leider momentan nur unter Windows, wegen der verwendeten Windows Resource (die Datenbank).
Ich muss mal schauen, ob sich da was machen läßt, ansonsten wird es in einiger Zeit mal ein Release geben, das das Problem über einen Proxy löst.

Thomas
Parent - - By Patrick Jansen Date 2017-01-05 17:44
Hi Thomas,

hat sich hier mittlerweile etwas getan, gibt es Fortschritte oder ist es überhaupt noch geplant eine (native) Version für macOS anzubieten?
Parent - - By Thomas Zipproth Date 2017-01-06 13:36
Hallo Patrick,

die Windows Resource, die für das Exe-Interne Buch gebraucht wurde gibt es ja inzwischen nicht mehr, weil das Buch inzwischen extern aus einer Datei geladen wird.
Insofern müßte sich jetzt eigentlich Brainfish auch unter macOS kompilieren lasssen, ich hab nur keinen Mac und auch keine Entwicklungsumgebung dafür.

Vielleicht kann es mal jemand der einen Mac + Compiler hat versuchen.

Thomas
Parent - - By Patrick Jansen Date 2017-01-06 14:37 Edited 2017-01-06 14:40
Dann werde ich mich heute nochmals daran versuchen, bin ja Mac-User.
Parent - - By Patrick Jansen Date 2017-01-06 18:34 Edited 2017-01-06 18:40
Das Kompilieren auf macOS 10.12.2 mit Apple LLVM version 8.0.0 (clang-800.0.42.1) funktioniert.

Brainfish-Kompilate für macOS findet ihr von Zeit zu Zeit hier: https://stockfishchess.de/download/macos/

@Thomas: in deinem Makefile wird

Code:
PGOBENCH = ./$(EXE) bench 16 1 1000 default time

verwendet. Im Makefile von Stockfish dies

Code:
PGOBENCH = ./$(EXE) bench

Solltest du ggf. mal angleichen - einfach nur damit es einheitlich ist.
Parent - - By Thomas Zipproth Date 2017-01-06 20:49
Der andere PGOBENCH (16 1 1000 default time) ist Absicht.

Ich verwende eine Best of 4 Selektion des Exe, ermittelt über den Stockfish Build Tester von Mike Babigian.

Und mit "16 1 1000 default time" ergibt sich eine breitere Streuung der Geschwindigkeit des Compilats, was für diese Methode gut ist.
Für das Test Framework ist es genau andersum, dort will man eine möglichst geringe Streuung,
und Tests haben wohl ergeben, das sie mit den jetzt verwendeten Zeiten am geringsten ist.

Thomas
Parent - - By Patrick Jansen Date 2017-01-06 20:56
Ah, ok, muss man nur wissen

Nebenbei, hier gibt es besagten Build Tester.
Parent - By Christoph Heilmann Date 2017-01-16 19:24
Es gibt jetzt eine neues Stockfish-Derivat namens McBrain, das Cerebellum unterstützt. Die Windows/Mac/Linux Compiles sind auf Github zu finden.
Parent - By Thomas Müller Date 2016-07-24 19:24
Dann mal ein GROSSES DANKE für die wahnsinns arbeit an alle beteiligten.
Schau mir das die nächsten tage mal an und teste rum!
Toll

gruß
thomas
Parent - - By Thorsten Czub Date 2016-07-24 21:31
Colossus Chess fällt mir dabei ein. Der hatte auch eine Bibliothek die ein großer suchbaum war und sich
Selbsttätig erweiterte.
Parent - - By Ingo Althöfer Date 2016-07-27 09:28
Thorsten Czub schrieb:

Colossus Chess fällt mir dabei ein. Der hatte auch eine Bibliothek die ein großer suchbaum war und sich
Selbsttätig erweiterte.


Jaja, neu ist die Idee wirklich nicht. Ich erinnere mich z.B.
an 1999, als Shredder ein Buchlern- und Erweiterungstool
hatte (was auch bei der WM in Paderborn aktiviert war).
Das Problem der früheren Versuche war, dass damals noch
nicht so viele gespeicherte Partien existierten wie jetzt.

Ingo Althöfer.
Parent - - By Thomas Zipproth Date 2016-07-27 12:07
Hallo Herr Althöfer,

natürlich kann jeder seine eigene Meinung über die Neuheit einer Idee haben, aber da diese Aussage hier getroffen wird ohne einen wirklichen Vergleich der beiden Konzepte will ich doch mal etwas dazu sagen. Neu ist nicht die Idee eines erweiterbaren Buchs, sondern die der darin verwendeten Technik. Genauso wie eine neue Schachengine innovativ sein kann, obwohl es doch auch nur die 1001. Schach Engine ist.

Ich poste hier mal meine Begründung für die Neuheit aus einem anderen Forum auf Englisch und würde mich über ein erneutes Feedback freuen.

Zitat:

What is the function of a Brain? Besides some other things, it creates new knowledge out of existing knowledge. That is exactly what the library does. It takes all the evaluation scores created by an engine for every position in the library, and calculates new scores out of it with it's graph algorithm. Together with that the main lines are created, and new knowledge about transistions and possible forced repetitions is found and can be displayed and used for playing.

That is the innovation, at least I don't know another product or free library that does it that way.



Thomas Zipproth
Parent - - By Ralf Mueller Date 2016-07-27 13:03
Hallo,

ist das nicht die gleiche Funktionsweise wie die IDeA-Analyse?
http://chessok.com/?p=24457
Parent - By Thomas Zipproth Date 2016-07-27 14:01
Hallo,

da besteht natürlich eine Ähnlichkeit, allerdings sind die internen Algorithmen und die Vorgehenweise bei der Berechnung doch recht unterschiedlich, auch die am Ende zur Verfügung stehenden Informationen und Möglichkeiten unterscheiden sich. Die Cerebellum Library ist eher darauf ausgelegt aus gespielten Partien zu lernen und den Zug-Graphen möglichst flexibel zu erweitern. Ein Idea Tree kann meines Wissens nach auch nicht direkt zum Spielen eingesetzt werden.

Zusätzlich ist mir unklar wie Idea von einem Tree sprechen kann. Schach ist kein Tree sondern ein Graph, da die Möglichkeit von Zugwiederholungen besteht. Dies spielt bei Engines kein so große Rolle, obwohl es da auch Graph Interaktions Probleme geben kann. Bei der Berechnung des Eröffnungs Graphen spielt es allerdings eine große Rolle.

Aber letztlich ist klar, es wird zu allem immer etwas Ähnliches geben, wie bei Engines auch, und jeder wird das dann auch unterschiedlich für sich bewerten.
Parent - - By Ingo Althöfer Date 2016-07-28 12:52
Lieber Herr Zipproth,

danke für die ausführlichen Erklärungen.

Thomas Zipproth schrieb:
...Ich poste hier mal meine Begründung für die Neuheit
aus einem anderen Forum auf Englisch und würde mich über ein
erneutes Feedback freuen...

Jetzt habe ich dort im Forum auch ein bisschen gelesen.

* Aus meiner Sicht besonders interessant die Frage(n) von
Harm Geert Muller. Er ist nicht nur Schachprogrammierer-
Urgestein (seit 1976), sondern auch einer der führenden Köpfe
bei der Programmierung von Mini-Shogi (auf 5x5-Brett).
Bei der Computer-Olympiade 2016 hat sein Programm die
Goldmedaille gewonnen. Ihr Konzept könnte bei der Gestaltung
eines SEHR starken 5x5-Shogi-Programms helfen.

* Für die Computer-Go-Community könnte Ihr Konzept für
praktisches 9x9-Go interessant sein - und auch für Versuche
zum vollständigen Durchrechnen des Go-Spiels auf 6x6-Brett.

* Vor wenigen Jahren wurde ein 5x5-Schach von zwei
Franzosen komplett "durchgerechnet", allerdings interaktiv
mit gewissen Lücken. Dabei wurde auch ein angepasster
Stockfish verwandt. Mit Versionen Ihres Eröffnungsbuches
(und Stockfish als Engine) könnte man sich an einen
vollautomatischen Beweis für diese Schachvariante wagen.

Freundliche Grüsse,
Ingo Althöfer.
Parent - By Ralf Mueller Date 2016-07-28 13:07
Zitat:
* Für die Computer-Go-Community könnte Ihr Konzept für
praktisches 9x9-Go interessant sein - und auch für Versuche
zum vollständigen Durchrechnen des Go-Spiels auf 6x6-Brett.

* Vor wenigen Jahren wurde ein 5x5-Schach von zwei
Franzosen komplett "durchgerechnet", allerdings interaktiv
mit gewissen Lücken. Dabei wurde auch ein angepasster
Stockfish verwandt. Mit Versionen Ihres Eröffnungsbuches
(und Stockfish als Engine) könnte man sich an einen
vollautomatischen Beweis für diese Schachvariante wagen.

Müsste man dazu nicht alle Pruning-Mechanismen aus Stockfish entfernen, damit es beweisfähig ist?
Parent - By Peter Martan Date 2016-07-24 23:11 Edited 2016-07-24 23:43
Danke, Thomas!
Für die Arbeit, die Idee und ihre Umsetzung, auch an deinen Bruder, Armin Siwy und Stefan Pohl für die Mithilfe.
Bin sehr neugierig, was das praktisch in bestimmten Stellungen bringt.
Man wird für Cerebellum Analysen beitragen können, und wenn ja, wie?
Edit: Sorry, die Frage hat sich durch dein Posting
http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=102187#pid102187
Zitat:
Das heist das Brainfish Buch wird jeden Tag durch das Hinzukommen neuer Knoten besser, die dann wiederum zu einem neuen und leistungsfähigeren Schach - Graphen verrechnet werden. Momentan ist dafür noch ein Update von Brainfish nötig, es wird allerdings in einiger Zeit ein Version erscheinen (die eigentliche Cerebellum Library), in der man dann alles selbst machen kann, auch die Updates der Library.

für mich beantwortet.
Viel Erfolg!
Parent - - By Stefan Pohl Date 2016-07-27 04:32
Zur Info: Da einige Leute Thomas Zipproth eine Verletzung der GPL Lizenz vorgeworfen haben, weil sie die Library in Brainfish nicht verändern können, was absoluter Unfug ist, da Thomas das selbst auch nicht kann, da es sich nur um eine riesige Menge an Hashcodes handelt, aber nicht um Programmcode, hat Thomas den Brainfish-Download gestoppt.
Er erarbeitet nun eine Brainfishversion, die auf ein externes Libraryfile per Pfadangabe zugreifen wird.
Voraussichtlich am Freitag wird diese zum Download bereitstehen.

Hier sein Statement aus talkchess dazu:

So the next version will load the book from an external file which is not GPL licensed, and everyone should be happy.

The download of Brainfish ist stopped until this Version arrives around Friday
Parent - - By Benno Hartwig Date 2016-07-27 07:00
Toll reagiert von Thomas!!
und hoffentlich werden solche neuen Ideen nicht doch dauerhaft durch überkritische Reaktionen torpediert.
Benno
Parent - By Stefan Pohl Date 2016-07-27 07:29 Upvotes 2
Benno Hartwig schrieb:

Toll reagiert von Thomas!!
und hoffentlich werden solche neuen Ideen nicht doch dauerhaft durch überkritische Reaktionen torpediert.
Benno


Thomas verbindet hier das Angenehme mit dem Nützlichen...Er hatte das sowieso geplant, da er beabsichtigt, die Library sehr häufig mit Updates zu versehen. Da Brainfish ja auch fürs Online-Engine Schach gedacht ist und dort muß man wohl seine Bücher (und somit auch die Library) teilweise im 24-Stunden-Rhythmus aktualisieren, wenn man dort im oberen Bereich mitspielen will,,hab ich mir sagen lassen. Und so schnelle Updates sind schlicht unmöglich,,wenn man jedes Mal 3 Compiles machen muß. Und bald soll es ja auch noch Linux und Mac-Versionen geben. Und auch eine 32bit-Windoofs Version.
Wenn die Library erst mal extern ist, kann man alle paar Wochen einen neuen Brainfish, basierend auf den neusten Stockfish-Sourcen, compilieren und die Library separat jederzeit erweitern und als Download bereitstellen. Das ist insofern eine sehr viel praktikablere Lösung.
Daß diese Lösung zusätzlich die haltlosen Vorwürfe einer GPL-Lizenz Verletzung ad acta legt, ist natürlich eine gute Sache.
Parent - - By Ingo Althöfer Date 2016-07-27 09:31
Hallo Herr Pohl, hallo Herr Zipproth,

danke für die Informationen.

Stefan Pohl schrieb:
...Er erarbeitet nun eine Brainfishversion, die auf ein externes
Libraryfile per Pfadangabe zugreifen wird. Voraussichtlich am Freitag wird diese
zum Download bereitstehen.
...
The download of Brainfish ist stopped until this Version arrives around Friday

Ich bin nach wie vor nicht glücklich mit dem Namen "Brainfish",
weil er etwas nicht Vorhandenes suggeriert. Der angekündigte
Neustart würde (auch) die Gelegenheit zu einem Namenswechsel
bieten.

Freundliche Grüsse,
Ingo Althöfer.
Parent - By Peter Martan Date 2016-07-27 09:48 Edited 2016-07-27 09:56
Ingo Althöfer schrieb:

Ich bin nach wie vor nicht glücklich mit dem Namen "Brainfish",
weil er etwas nicht Vorhandenes suggeriert. Der angekündigte
Neustart würde (auch) die Gelegenheit zu einem Namenswechsel
bieten.

Ja, M(N)emofish war wirklich sehr lustig, Herr Professor.

Ich glaube nur, dass sich wegen der Puristen und Historiker unter uns, das Projekt des hirnigen (zum Unterschied vom hirnlosen ) Fisches ohnehin schon wieder erledigt haben wird, nämlich halt für die große glückliche Familie der Ranglisten- (Hinter-)Listigen.

Die Library finde ich (und schon auch gerade in Verbindung mit der engine, mit der sie evaluiert wurde) hingegen nach wie vor ein sehr interessantes Thema, eigene Cerebellum- Versionen für Kommoden, Zauberer und solche, die es werden wollen, werden zeigen, was möglich ist.
Natürlich nicht fürs Fernschach, aber unser allseits vielgeliebtes Kind der allein Blitz- und Nichtganzblitz- und vielleicht sogar "Turnier"- Schach spielenden engine hat sicher bald wieder viel neues Spielzeug...


Cerebellum finde ich als Namen überhaupt auch gut, ist halt nur eine kleines Hirn, beim Menschen aber bekanntlich auch sehr wichtig, weniger fürs Gscheidreden, aber z.B. fürs Gleichgewichthalten.
Parent - - By Stefan Pohl Date 2016-07-27 10:05 Edited 2016-07-27 10:17
Ingo Althöfer schrieb:

Hallo Herr Pohl, hallo Herr Zipproth,

danke für die Informationen.

Stefan Pohl schrieb:
...Er erarbeitet nun eine Brainfishversion, die auf ein externes
Libraryfile per Pfadangabe zugreifen wird. Voraussichtlich am Freitag wird diese
zum Download bereitstehen.
...
The download of Brainfish ist stopped until this Version arrives around Friday

Ich bin nach wie vor nicht glücklich mit dem Namen "Brainfish",
weil er etwas nicht Vorhandenes suggeriert. Der angekündigte
Neustart würde (auch) die Gelegenheit zu einem Namenswechsel
bieten.

Freundliche Grüsse,
Ingo Althöfer.


Nur der Autor, Thomas Zipproth, könnte den Namen ändern. Ich bin nur testend und beratend bei diesem Projekt dabei.
Ich persönlich bin mit dem Namen auch nicht sooo glücklich. Ich hatte vor einigen Monaten mal BaseFish vorgeschlagen. Aber dann würde wahrscheinlich die Firma ChessBase klagen...
Den Namen MemoFish finde ich persönlich sehr gut (treffend und lustig). Aber es ist, wie erwähnt, nicht meine Entscheidung.

Vermutlich ist die Intention beim Namen BrainFish, explizit darauf hinzuweisen, daß die verwendete Ceberellum Library keine gewöhnliche Datenbank und kein gewöhnliches Eröffnungsbuch ist, sondern komplett errechnet wurde und auch dynamisch weiterberechnet werden und so ständig weiterentwickelt werden soll. Und die Engineberechnungen und das intelligente (Rückwärts-)verarbeiten dieser Berechnungen könnte man ja durchaus als "denken" bezeichnen. Mit etwas gutem Willen zumindest. Insofern ist der jetzige Name nun auch nicht komplett abwegig. Meine ich.
Parent - - By Ingo Althöfer Date 2016-07-27 10:29 Edited 2016-07-27 10:32
Lieber Herr Pohl,

danke für die Rückmeldung.

Stefan Pohl schrieb:
Nur der Autor, Thomas Zipproth, könnte den Namen ändern. Ich
bin nur testend und beratend bei diesem Projekt dabei.

Meine Anrede war so gemeint, dass ich in erster Linie Ihnen
für die Infos danken wollte und Herrm Zipproth (noch einmal)
meine Bedenken zu dem Namen erklären wollte.

Zitat:
... Ich hatte vor einigen Monaten mal BaseFish vorgeschlagen.

BaseFish fände ich auch angenehm.
Was mögliche Bedenken von ChessBase angeht, könnte
man das ja mit einer Frage-Email an Herrn Wüllenweber
eruieren.

Zitat:
Den Namen MemoFish finde ich persönlich sehr gut (treffend und lustig)...

Der Vorschlag war auch ein bisschen mit dem "lustig" als Intention gemeint,
weil ich das Projekt an sich für sehr interessant halte und deshalb nicht
einfach nur madig machen wollte, indem ich den bisherigen Namen kritisiere.

MemoFish hat halt das (kleine) Problem, dass es eine Silbe mehr und deshalb
nicht ganz so griffig ist.

Zitat:
Ceberellum Library ...

Ein Freudscher Versprecher?

Bis unser im besten Sinn klassisch gebildeter Kollege Martan auf die Bedeutung
Cerebellum = Kleinhirn hingewiesen hat (vielen ehrlich gemeinten Dank dafür!),
war mir der Zusammenhang auch nicht klar.

*******************************************
Ich erklär noch mal, warum ich (zunächst wohl unbewusst) direkt auf die
Namensgebung angesprungen war. Mitte der 1980er Jahre hatte ich ja
das 3-Hirn eingeführt. Relativ bald kam jemand anderes auf mich zu und
meinte: "Dieser Name 3-Hirn wird nur Leute verschrecken. Du musst
es 'Superhirn' nennen."
Habe ich damals nicht gemacht, weil 'Superhirn' meinem Gefühl für
Namensehrlichkeit widersprach.

Viele Grüsse,
Ingo Althöfer.
Parent - By Stefan Pohl Date 2016-07-27 10:55
Freudscher Versprecher. Genau. Ich hab den Begriff Cerebellum in den letzten Tagen so oft getippt, da lief das heute irgendwie quer...
Ich kann nur empfehlen, daß Sie sich mit Thomas Zipproth direkt in Verbindung setzen. Entweder per PM hier im Forum oder per mail : brainfish(at)zipproth.com.

Die besten Grüße aus Berlin - Stefan Pohl (SPCC)
Parent - By Tom Paul Date 2016-07-27 11:09
Stefan Pohl schrieb:

Vermutlich ist die Intention beim Namen BrainFish, explizit darauf hinzuweisen, daß die verwendete Ceberellum Library keine gewöhnliche Datenbank und kein gewöhnliches Eröffnungsbuch ist, sondern komplett errechnet wurde und auch dynamisch weiterberechnet werden und so ständig weiterentwickelt werden soll. Und die Engineberechnungen und das intelligente (Rückwärts-)verarbeiten dieser Berechnungen könnte man ja durchaus als "denken" bezeichnen.


Das ist das gleiche wie die IDeA Analyse.
Parent - By Frank Brenner Date 2016-07-27 10:21 Edited 2016-07-27 10:33
Wenn die Eröffnungsbibliothek zuknünftig aus dem Brainfish.exe ausgelagert wird könnte man sogar noch einen Schritt weiter gehen:

Auch den Zugriffscode auf das Buch  inklusive Pfadparameter auf das Buch   kann man in einem Universalen Port.exe auslagern.


Dann ist es möglich jede beliebige Schach  Engine  (auch asmfish.exe oder komodo,exe)  mit Hilfe von Port.exe und eine dazupassende  Ini datei zu  einer  neuen Schachengine Port.exe zu kapseln.
Port.exe wäre dann aus der Sicht der  GUI eine ganz normale UCI Schach Engine in der das Buch eingegossen ist.

Der riesen Vorteil: Thomas Zipproth bräuchte dann noch gar nicht mal mehr den Stockfish code zu compilieren und es wären auch überhaupt keine Änderungen am Stockfish Code nötig.

Stockfish würde dann weiterhin Stockfish heißen.  

Nur das Port.exe könnte einen eigenen Namen bekommen.

So was ähnliches gibt es schon lange:

Ed Schröders Rebel Buch von Noomen ist im "BIN" Format.   Die  Engine Stockfish.exe  kann auf Bücher im BIN Format  so weit ich das bisher herausgefunden habe  nicht direkt zugreifen

Es gibt aber ein Programm namens Polyglott.exe, welches  ein beliebiges BIN Buch und eine beliebige UCI Engine  zu einer neuen Engine verblombt .... die dann aber zu einer Winboard Engine wird.

Diese Winboard Engine lässt sich dann mit Arena einsetzen.
Parent - - By Patrick Jansen Date 2016-07-31 11:03 Edited 2016-07-31 11:06
Thomas, ein paar Einträge in der FAQ stimmen mittlerweile nicht mehr:

Zitat:
How is Brainfish related to Stockfish?
Brainfish is a standard Stockfish chess engine extended by Cerebellum, which is an innovative chess opening book. Brainfish combines the following into a single executable

Zitat:
How does Brainfish differ from Stockfish?
Brainfish is the current development Version of Stockfish combined with a reduced Version of the Cerebellum Library, which only contains one or two best moves per Position without the scores, so that it small enough to fit into the exe.

Zitat:
Will updates for the internal Library of Stockfish appear?
Yes, the internal Library of Brain Fish will be updated from time to time, which means a new exe containing the updated Library.
Parent - - By Thomas Zipproth Date 2016-07-31 15:30
Hallo Patrick,

Danke, ich korrigiere das.
Ein neues Buch ist auch da, und ich habe die Download Sektion etwas überarbeitet.

Thomas
Parent - - By Patrick Jansen Date 2016-07-31 16:48
Test mit dem neuen Buch vom 31.07. läuft bereits, https://stockfishchess.de/match/

Engines: Brainfish 280716-modern, Stockfish 240716-modern (ultimaiq)
Engine-Parameter: beide Engines mit Contempt=8
Partien, Bedenkzeit: 50 Partien á 30 Minuten pro Engine, kein Inkrement
Threads: 1
Ponder: ja
Hash: 512 MB pro Engine
Eröffnungsbuch: 25 Vorgabestellungen
Tablebases: nein

GUI: Deep Shredder 12
Aufgeben und Remis anbieten: ja
Zeitüberschreitung reklamieren: ja
Parent - - By Patrick Jansen Date 2016-08-02 14:37
Ihr konntet die Partien ja verfolgen:

Brainfish 280716-modern - Stockfish 240716-modern (ultimaiq)   26.5 - 23.5   (+4, =45, -1)

SF durfte also auch mal eine Partien gewinnen.
Parent - - By Stefan Pohl Date 2016-08-03 06:44
Patrick Jansen schrieb:

Ihr konntet die Partien ja verfolgen:

Brainfish 280716-modern - Stockfish 240716-modern (ultimaiq)   26.5 - 23.5   (+4, =45, -1)

SF durfte also auch mal eine Partien gewinnen.


Stockfish gegen Stockfish produziert einfach zu viele Remisen. Vielleicht wäre es erhellender ein Gauntlet zu machen, bei dem Komodo gegen Stockfish und Brainfish spielt.
Parent - By Patrick Jansen Date 2016-08-03 08:55
Scheint so. Ging eigentlich um einen direkten Vergleich, aber wie man sieht ist das eher unspektakulär.
Parent - - By Klaus Meier Date 2016-08-03 19:57
Gibt es den brainfish auch für Windows-32Bit-Betriebssystem ?
Fsalls JA wo ist download möglich ?

Grüße
K.M.
Parent - By Patrick Jansen Date 2016-08-03 20:07
Aktuell noch nicht, siehe http://www.zipproth.de/#Brainfish_download
- - By 2phil4u Date 2016-08-15 17:31
Klingt sehr interessant.
Der genaue Algorythmus würde mich mal interessieren.
Es ist ja zeitlich nicht möglich alle Möglichkeiten durchzurechnen, auch ist es schwer in einer Stellung wirklich zu sagen, wie oft man gewinnt bei gleich starkem Gegner und hier ist auch schon ein weiteres Problem.
Angenommen man hätte einen Superscomputer und würde Fernschach spielen.
Ich würde dann so vorgehen, das ich immer bsp den einen Gegner mit der 8 fachen Zeit rechnen lasse und Remis stark unterbewerte.
Das wäre dann quasi ein Buch, welches immer gewinnen will.
Aber der Aufwand sollte extrem sein wenn man das systemathis macht für die ersten Züge, man könnte dann innerhalb der Fernpartie so etwas machen.
Ein Algorythmus muss also versuchen mit Wahrscheinlichkeiten zu arbeiten, sprich wenn er 2 mal mit einem Zug gewonnen hat dann benutzt er den solange bis er nicht mehr so gut ist, ob dann der Zug eins vorher geändert wird oder nicht, keine Ahnung.
Ein weiterer Weg wäre es mit einem Supercomputer 1000 Partien geichzeitig laufen zu lassen im Multivariantenmodus, die ersten paar Züge sind alle ausgerechnet und dann bekommt die engine eine gewisse Zeit wenn die Stellung neu ist.
Falls sich innerhalb dieser Berechnung etwas ändert, wird es auf die Bewertungen ein Zug vorher überschrieben, der Zug kann immer noch der beste Sein in Zuga-1 aber wird jetzt anders bewertet.
Wenn die Stellung dann wieder auftritt wird erst im Zug a+1 gerchnet, ändert sich hier was werden wieder alle Bewertungen der vorherigen Züge geändert (das sind einfach Bewertungstabellen).
Man könnte auch so vorgehen, das prinzipiell 1 Sekunde pro Zug aber immer an dem Zug a wo sich etwas neues befindet wird dann z.B. 15 Sekunden bei Zug 15 gerechnet, die Bewertungen werden wieder nach hinten geschrieben.
Kommen auf diese Weise sehr viele PArtien zustande muss es dazu kommen das eine Stellung die anders bewertet wird als sie eigentlich ist, also zu schecht oder zu gut durch die Bewertungen später und das Zurückschreiben anders bewertet wird.
Ich weiss nicht welcher Weg hier gegangen wird, ich tipp auf einen guten Mix, es wird einfch veruscht mithilfe von Schätzungen und Verknüpfungen Zeit zu sparen beim Erstellen so das sich aber gelegentliche Fehler irgendwann mal bemerkbar machen (Bsp ein Zug der eigentlich nicht gut ist aber 4 mal gewonne hat) wird irgendwann nicht mehr gewinnen oder negativ scoren.
Interessant ist auch die Art wie man die Bewertung baut, man könnte hier durchaus ganz anders bewerten, man könnte auch einen weiteren parameter, die Gewinnwahrscheinlichkeit dazunehmen.
Das man Grossmeisterpartien als Buchansatz nimmt ist natürlich total outdatet, so sollte es besser sein, aber anders als durch superschnelle matches auf 1000 Computer sehe ich hier kaum Möglichkeiten, wenn die engine 1 Sekunde pro Zug hat können auch Stellungen ganz anders ausgeen als mit mehr ZEit.
Ich werd mich noch bischen informieren, es gibt ja diese Fritz Datenbank aber ich finde die Idee gut Berechnungen nicht jedes Mal neu zu machen, inwiefern das auch bei sehr langen Bedenkzeiten was bringt weiss ich nicht, aber bei Blitzpartien natürlich sehr viel, sind ja fast 100 Elo mehr.
Parent - By Guenter Stertenbrink Date 2017-01-07 06:19 Edited 2017-01-07 06:30
ich wuerde mal systematisch nach Varianten suchen, wo sich die Bewertung von (hoher) Stufe n auf
Stufe n+1 stark aendert. Ich hoffe dann, dass der Gegner die gleiche Engine benutzt und nur
bis Stufe n rechnet.
"Die besten Computerfallen" sozusagen. Gibt's das bereits ?

z.B. in https://www.iccf.com/game?id=794148
asmfishL_2016-12-11 zeigt 0.00d31 nach 22....Bb4, aber dann +1.27d32
- - By Patrick Jansen Date 2017-06-23 18:44
Zur allgemeinen Information:

BrainFish_170609 lässt sich noch auf macOS kompilieren, die aktuelle BrainFish_170622 nicht mehr:

Code:
make: [.depend] Error 1 (ignored)
make: [.depend] Error 1 (ignored)

...

clang++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-instr-generate  -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -flto -mdynamic-no-pic -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT   -c -o uci.o uci.cpp
tt.cpp:27:10: fatal error: 'windows.h' file not found
#include "windows.h"
         ^
1 error generated.
make[2]: *** [tt.o] Error 1
Parent - - By Guenter Stertenbrink Date 2017-06-24 09:38
sowie ich das verstehe, gibt es die Scores zu den Zuegen (vielleicht...) irgendwann
gegen Geld mit so einer Art copyright ?
Parent - - By Peter Martan Date 2017-06-24 10:20
Du meinst die Performances im Sinne von Statistiken relativ zur Zahl der komplett ausgespielten Partien, wie das sonst so bei Büchern üblich ist?

Wäre bei der Art der Bucherstellung, wie ich sie verstehe, nicht unmittelbar zu erwarten bzw. sinnvoll, glaube ich, weil ja die Reihung und die Ausspielwahrscheinlichkeiten nicht direkt aus eingespeisten Partiebeispielen erstellt werden, sondern von der Engine nach ihrer Forward- Backward- Bewertung, von Aussagekraft wären da noch eher Evals, wie wir sie vom Output kennen.

Aber was Sirius- Cerebellum wirklich alles bieten wird, bin ich wirklich auch schon sehr gespannt, ich fürchte nur ein bisschen, ja länger man darauf wartet, umso größer werden die Träume werden und umso größer vermutlich logischer Weise die Enttäuschungen, was dann praktisch außer einem weiteren GUI mit einem weiteren Buch herauskommen wird können.

Und dass das Buch zu einem noch stärker überwiegenden Teil Remisvarianten anbieten wird, als das bei guten ausgewogenen Büchern so schon der Fall ist, befürchte ich eigentlich schon auch mehr und mehr, je mehr ich Cerebellum_Light.bin- Lines anschaue.

Was soll die Engine, gerade mit raffiniertem und Zeit und Rechenarbeit sparendem Forward- Backward- Algorithmus auch sonst höher bewerten, wenn er für beide Seiten gleichermaßen funktionieren soll, als diejenigen Züge und Varianten mit der größten Remiswahrscheinlichkeit?

So gesehen wären "Scores", wenn ich dich da richtig verstehe, am höchsten bei den niedrigsten Evals, jedenfalls nach dem Forward, wenn's gut funktioniert also auch nach dem Backward, oder?

Thomas Zipproth vielleicht gerade in der Nähe?
Und wann wird's denn mal diesbezüglich was zu sehen geben?
Noch nicht einmal ein Betaversion vom GUI in Sicht?
Die könnte man ja sonst schon mal mit Cerebellum_Light probieren...

Parent - - By Guenter Stertenbrink Date 2017-06-24 11:59
scores=evals
Parent - By Peter Martan Date 2017-06-24 14:00
Und bei denen (den Evals) dann die von Stockfish oder einer anderen Engine, die ja in der Kaufversion beliebig austauschbar sein soll?
Und wenn von Stockfish, dann mit welcher Version (welchem Branch) der Engine und mit welcher Version der Cerebellum- Datenbank?
Parent - - By Thomas Zipproth Date 2017-06-24 12:28
Danke für den Hinweis.
Einfach tt.cpp und tt.h aus der vorigen Version nehmen.
Ich hab die korrigierten Sourcen hochgeladen.

Die Unix / MacOS Version unterscheidet sich in ucioption.cpp, tt.cpp und tt.h.
tt.cpp und tt.h sind offenbar versehentlich aus der Windows Version in die Linux Version geraten.
Parent - By Patrick Jansen Date 2017-06-24 14:12
Mit den neuen Sourcen funktioniert es wieder.
Up Topic Hauptforen / CSS-Forum / BrainFish, eine neue Schach Engine

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill