Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Brainfish von Thomas Zipproth
1 2 3 Previous Next  
- - By Frank Brenner Date 2016-07-24 15:47 Edited 2016-07-24 15:53
Von Thomas Zipproth gibt es eine neue Schachengine namens Brainfish.

Bei Brainfish handelt es sich um die aktuelle Stockfish Beta mit einer fest ins exe File eingebaute Eröffnungsbibliothek.
Die exe Datei ist deswegen auch sehr groß.

Die Eröffnungsbibliothek wurde hierbei nicht per Hand von einem Großmeister erstellt, sondern sie wurde mit sehr viel Rechneraufwand selber berechnet.
Hierbei wurde ein Graph erstellt wo die Blattstellungen von Stockfish selber analysiert(bewertet) wurden, indem Stockfish eine bestimmte zeit an der Blattstellung gerechnet hat . Danach wurden die Bewertungen  der Blattstellungen (Stellungen aus der späten Eröffnungsphase)  mittels mini-max auf die früheren Eröffnungsstellungen bis letzlich zur Ausgangsstellung propagiert.

Wenn ich jetzt mit Stockfish gegen Brainfish spiele, so gelangt Brainfish in der Regel positiv aus der Eröffnung. Brainfish zieht hierbei solange es noch Züge in seiner fest in das EXE eingegossenen Bibliothek findet  stets sofort.

Bei Stefan Pohl hat brainfish im Bullet deutlich mehr Elo erzielt als die aktuellste Stockfish beta. (+77 Elo ).

Das Ergebniss muss man allerdings insoweit relativieren, weil Brainfish mit einem großen Buch startet welches mit deutlich mehr Rechenkraft pro Zug berechnet wurde wie Stockfish bei Stefan Pohl pro Zug Zeit hat (nur wenige Millisekunden).

Die Analysespielstärke in einer beliebigen Mittelspielstellung ist absolut identisch.

http://www.zipproth.de/
Parent - - By Patrick Jansen Date 2016-07-24 16:21 Edited 2016-07-24 16:37
Die reine Engine-Leistung ist identisch zu Stockfish, hier gibt es keinen Unterschied. BrainFish gewinnt gegen Stockfish nur durch ein "Hilfsmittel" öfter - Stockfish mit einem nicht-optimierten Allerweltsbuch gegen BrainFish mit einem optimierten, angepassten Buch. Naja, wundert mich nicht, dass BrainFish da besser aus dem Buch kommt und dadurch wohl auch mehr Partien gewinnt. Deswegen für Ranglisten und Vergleiche wenig geeignet.
Parent - By Frank Brenner Date 2016-07-24 16:46
so ist es.

In den Ranglisten (CEGT, CCRL, Ipon, und bei Stefan Pohl) spielen die Engines komplett ohne Buch.

Brainfish (also Stockfish mit dem 4,4 Mio Stellungen großen fest ins exe eingegossene Buch)  wird hier ganz sicher stets besser abschneiden als Stockfish ohne Buch.

Das Projekt ist aber trotzdem sehr interessant:

Es geht hier nicht in erster Linie um ein ins exe File gegossene Buch und auch nicht darum ob es fair oder unfair ist in den Ranglisten aufgenommen zu werden, sondern es geht darum, dass hier ein Buch erstellt wird, welches möglicherweise  in der Eröffnungsphase sogar einem mit Fernschachbedenkzeiten spielenden Stockfish ohne Buch überlegen sein könnte.

Da das Brainfish Buch offenbar mit Stockfish erstellt wurde, wäre es für mich sehr interessant zu erfahren ob diese Kombination vor allem gegen den ohne Buch spielenden Stockfish besonders gut abschneidet oder auch gegen andere Engines wie zb Shredder oder  Houdini 5 oder Komodo  und wie stark hier die Unterschiede sind.

Gegen Stockfish wird das Brianfish Buch vermutlich sehr tief bis ins entfernte Mittelspiel reichen, während andere Engines möglicherweise schneller das Buch von Brainfish verlassen.
Parent - - By Tom Paul Date 2016-07-24 16:42
Frank Brenner schrieb:

Von Thomas Zipproth gibt es eine neue Schachengine namens Brainfish.

Bei Brainfish handelt es sich um die aktuelle Stockfish Beta mit einer fest ins exe File eingebaute Eröffnungsbibliothek.
Die exe Datei ist deswegen auch sehr groß.

Die Eröffnungsbibliothek wurde hierbei nicht per Hand von einem Großmeister erstellt, sondern sie wurde mit sehr viel Rechneraufwand selber berechnet.
Hierbei wurde ein Graph erstellt wo die Blattstellungen von Stockfish selber analysiert(bewertet) wurden, indem Stockfish eine bestimmte zeit an der Blattstellung gerechnet hat . Danach wurden die Bewertungen  der Blattstellungen (Stellungen aus der späten Eröffnungsphase)  mittels mini-max auf die früheren Eröffnungsstellungen bis letzlich zur Ausgangsstellung propagiert.

Wenn ich jetzt mit Stockfish gegen Brainfish spiele, so gelangt Brainfish in der Regel positiv aus der Eröffnung. Brainfish zieht hierbei solange es noch Züge in seiner fest in das EXE eingegossenen Bibliothek findet  stets sofort.

Bei Stefan Pohl hat brainfish im Bullet deutlich mehr Elo erzielt als die aktuellste Stockfish beta. (+77 Elo ).

Das Ergebniss muss man allerdings insoweit relativieren, weil Brainfish mit einem großen Buch startet welches mit deutlich mehr Rechenkraft pro Zug berechnet wurde wie Stockfish bei Stefan Pohl pro Zug Zeit hat (nur wenige Millisekunden).

Die Analysespielstärke in einer beliebigen Mittelspielstellung ist absolut identisch.

<a class='urs' href='http://www.zipproth.de/'>http://www.zipproth.de/</a>


Und wenn er seinen Buchstockfish von C++ in Assembler umwandelt, dann ist diese Engine bereits 100 ELO stärker als der aktuelle Stockfish.

Wo ist jetzt der Vorteil von seinen Buchfisch?
Und was sind die Nachteile?
Man kann doch genauso gut Stockfish jedes andere selbst erstellte Eröffnungsbuch benutzen lassen oder nicht?
Entwickelt sich sein Buch im Stockfish automatisch weiter?
Bücher sind auch fehlerhaft oder nicht?
Wenn seine Engine immer den besten Buchzug spielt, denn sehen wir doch nur noch entweder 1.d4 oder nur 1.e4 oder nicht?
Welchen Zug spielt die Engine wenn mehrere Züge gleich oder beide 0.00 bewertet werden?
Hat er auch einen ELO Gewinn bei sehr langer Bedenkzeit oder vielleicht doch ein - an ELO?
Und ist das nicht wie eine IDeA Funktion aus ChessOk Aquarium?
Parent - - By Patrick Jansen Date 2016-07-24 16:49
Tom Paul schrieb:
Und wenn er seinen Buchstockfish von C++ in Assembler umwandelt, dann ist diese Engine bereits 100 ELO stärker als der aktuelle Stockfish.

Sehe ich anders, die eigentliche und reine Engine ist nämlich nicht stärker als Stockfish.

Stockfish vs. BrainFish ist wie ein Vergleich von einem Rennen zweier identischer Autos, wovon jedoch eines auf den reinen Felgen fährt.
Parent - - By Stefan Pohl Date 2016-07-24 18:19
Patrick Jansen schrieb:

Tom Paul schrieb:
Und wenn er seinen Buchstockfish von C++ in Assembler umwandelt, dann ist diese Engine bereits 100 ELO stärker als der aktuelle Stockfish.

Sehe ich anders, die eigentliche und reine Engine ist nämlich nicht stärker als Stockfish.

Stockfish vs. BrainFish ist wie ein Vergleich von einem Rennen zweier identischer Autos, wovon jedoch eines auf den reinen Felgen fährt.


Bedaure, aber das sehe ich nicht so. Stockfish hat die Ceberellum- Library selbst berechnet, sich die Library und die daraus resultierenden Vorteile gewissermaßen vorab selbst erarbeitet, so wie das auch menschliche Großmeister in der häuslichen Vorbereitung zu tun pflegen. Wenn die Library statt die Stockfish-Engine in einer Partie einen Zug macht, dann spielt ebenfalls Stockfish. Weil Stockfish alle Züge in der Library selbst generiert hat. Nur, daß die Ergebnisse dank der Rückwärtsanalyse deutlich besser sind. Und sie vorab erstellt wurden. Aber alles kommt von Stockfish. Das kann man weder mit einem x-beliebigen, herkömmlichen Eröffnungsbuch noch mit Endspieldatenbanken vergleichen.

Stefan
Parent - By Tom Paul Date 2016-07-24 18:34
Stefan Pohl schrieb:

Patrick Jansen schrieb:

Tom Paul schrieb:
Und wenn er seinen Buchstockfish von C++ in Assembler umwandelt, dann ist diese Engine bereits 100 ELO stärker als der aktuelle Stockfish.

Sehe ich anders, die eigentliche und reine Engine ist nämlich nicht stärker als Stockfish.

Stockfish vs. BrainFish ist wie ein Vergleich von einem Rennen zweier identischer Autos, wovon jedoch eines auf den reinen Felgen fährt.


Bedaure, aber das sehe ich nicht so. Stockfish hat die Ceberellum- Library selbst berechnet, sich die Library und die daraus resultierenden Vorteile gewissermaßen vorab selbst erarbeitet, so wie das auch menschliche Großmeister in der häuslichen Vorbereitung zu tun pflegen. Wenn die Library statt die Stockfish-Engine in einer Partie einen Zug macht, dann spielt ebenfalls Stockfish. Weil Stockfish alle Züge in der Library selbst generiert hat. Nur, daß die Ergebnisse dank der Rückwärtsanalyse deutlich besser sind. Und sie vorab erstellt wurden. Aber alles kommt von Stockfish. Das kann man weder mit einem x-beliebigen, herkömmlichen Eröffnungsbuch noch mit Endspieldatenbanken vergleichen.

Stefan


Dafür habe ich ja IDeA
Parent - By Patrick Jansen Date 2016-07-24 18:47
Ok, da ist was dran
Parent - - By Klaus Meier Date 2016-08-06 17:28
Klingt gut !
Gibt es irgendwo auch noch stärkere (umfangreichere)
auf gleiche Weise erzeugte Bücher als das cerebellum_Light ?
Parent - - By Stefan Pohl Date 2016-08-06 19:00
Klaus Meier schrieb:

Klingt gut !
Gibt es irgendwo auch noch stärkere (umfangreichere)
auf gleiche Weise erzeugte Bücher als das cerebellum_Light ?


Nein.
Bei Thomas Zipproth rechnen 2 Quadcore PCs permanent an der Cerebellum Library. Sie wächst also ständig weiter und wird auch häufig aktualisiert. Allein in der Woche vom 28.7 bis zum 4.8. gab es zwei Updates mit insgesamt knapp 25000 neu durchkalkulierten Stellungen. Durch die Rückwärtskalkulation in der Library kann zudem jede neu reinkalkulierte Stellung auch zu Änderungen/Verbesserungen in bereits zuvor vorhandenen Stellungen führen.
Und das nächste Update für die Library wird es wohl noch heute geben.
Die kommende Sirius GUI wird es dem Käufer zudem ermöglichen, eigene Berechnungen und Züge der Library hinzuzufügen.
Und wer meint, potentiell interessante Partien und Züge zu haben, die in die Library hineingerechnet werden sollen, kann diese per mail an Thomas Zipproth senden: Brainfish (at) zipproth.com
Parent - By Benno Hartwig Date 2016-08-07 10:56
Ich nehme an, die Güte der so ermittelten Zugbewertungen steigt in bekannter Weise mit der Tiefe, aus der diese Bewertungen geholt werden.
Wie mag hier eigentlich der Aufwand aussehen, um effektiv einen Ply tiefer zu kommen?
Mit was für einem Verzweigungsgrad muss hier effektiv gerechnet werden.

Sehr vieles wird wohl auch sehr früh gar nicht weiterverfolgt,
und anderes wird ja bis in wirklich ganz erhebliche Tiefen betrachtet!

Um wieviel mag der Aufwand steigen, wenn man effektiv einen Ply tiefer kommen möchte?
(Oder eben: Wieviel bringt die Rechenleistung, die jetzt noch erbracht wird?)

Benno
Parent - By Dirk Triebel Date 2016-08-07 12:15 Edited 2016-08-07 12:49
Interessante Sache die ihr da macht.

Ist davon auszugehen, dass wenn man mit einer 16 core Maschine in gleicher Tiefe analysiert mit dem Graph Algorithmus, andere Ergebnisse zu erwarten sind (da die 16 core Maschine ja viel mehr Knoten bei gleicher Tiefe berechnet) als ein Quad Core?

Und wie kann man sicher gehen, dass bei einer Rückwertskalkulation gleich viel Berechnung für die 2 möglichen darauffolgenden Zügen vorhanden ist im Hash? Z.b. man lässt den PC an einem Knoten rechnen bis Tiefe x. Jetzt gehe ich nacheinander in die 2 besten Varianten und lasse wieder bis Tiefe x rechnen. Wenn ich nun in die Ausgangsstellung zurückgehe (und erneut an dem 1. Knoten rechnen lassen möchte), wird doch sicher mehr von der letzten berechneten Variante im Hash sein als von der ersten. Wahrscheinlich auch von der Größe des Hashs abhängig. Aber wenn er voll ist, ist er nun mal voll. Aber ich gehe mal davon aus, dass es so programmiert wurde, das jede Zugvariante in einen separaten Hash läuft, der bis zur Rückwärtskalkulation auch nicht überschrieben wird.

Aber wahrscheinlich habe ich nur etwas falsch verstanden 

Dirk
Parent - - By Benno Hartwig Date 2016-07-24 17:31
Und Stockfish mit einem gute Buch ist dann wohl ungefähr gleichstark wie Brainfish, richtig?
Den einen interessiert dieses Buch-Engine-Paket, den anderen vielleicht weniger.

Und der Dritte bindet ggf. auch noch die 5-Steiner in die EXE und freut sich dass diese EXE in Events toll aussieht, in denen der Eventmanager keine Endspieldatenbanken zur Verfügung stellt.
Naja...

Benno
Parent - - By Stefan Pohl Date 2016-07-24 17:50
Benno Hartwig schrieb:

Und Stockfish mit einem gute Buch ist dann wohl ungefähr gleichstark wie Brainfish, richtig?


Nein, eben nicht. Die Ceberellum Library wurde nicht nur von Stockfish selbst berechnet, sondern - und das ist der wesentliche Punkt - rückwärts. Dadurch ist sie allen konventionellen Eröffnungsbüchern weit überlegen. Kurzer Auszug aus der Beschreibung dazu:

Was ist die Cerebellum Library?

Die Cerebellum Library ist eine Datenbank von Eröffnungsstellungen. Allerdings ist sie weit mehr, als ein klassisches Eröffnungsbuch, was einfach in die Stockfish-Engine eingefügt wurde. Und sie ist auch nicht nur eine simple Vorab-Berechnung von Stellungen mit einer Engine und das Abspeichern derselben in einer Datenbank. Deswegen spielt die Library auch tatsächlich besser als die verwendete Zugzeit und Hardware waren, und in einigen Fällen sogar besser, als es einer Engine heutzutage überhaupt möglich ist, d.h. es sind Analysen möglich, die mit einer Engine allein nicht machbar wären und es wird im praktischen Engine-Spiel eine Eloleistung erreicht, die deutlich und meßbar über die Leistung der Stockfish-Engine hinausgeht!

Nehmen wir an, man will z.B. im Fernschach über eine komplizierte Stellung die "letzte Wahrheit" erfahren, d.h. eine korrekte Bewertung und alle wichtigen Abspiele/Zugfolgen. Nun kann man irgendeine Engine lange rechnen lassen, und erhält einen Score und eine Haupvariante (im Multi-Varianten Modus auch mehrere für die besten Züge). Jetzt schaut man sich das Ergebnis an und denkt, hoppla, da kann doch was nicht stimmen, was spielt denn die Engine z.b. auf diese oder jenen Zug/Zugfolge?.Also geht man in der GUI im Stellungsbaum immer wieder vor und zurück und schaut sich an ,was die Engine zieht. Augrund der Hashtables kann das dann auch zu einer Veränderung der Bewertung der Ausgangsstellung führen. Was hat man am Ende vorliegen? Eine grosse Anzahl von analysierten Stellungen mit Bewertungen und eine Idee von möglichen besten Zugfolgen. Was man nicht hat, ist ein konsistenter Überlick über den gesamten Variantenbaum, und man hat auch keine richtige Vorstellung davon, ob diese Analyse evtl. Lücken oder Fehler aufweist.

Jetzt kommt die Library zum Zug:

Nehmen wir an, man hat eine große Zahl von Stellungsbewertungen (Score + bester Zug) in einem Variantenbaum. Was ist das Problem? Diese Bewertungen sind fast nie konsistent! Beispiel:
Ausgangsstellung: Score + 0.20, bester Zug e4.

Stellung nach e4: Score + 0.18, bester Zug e5.
Stellung nach d4: Score + 0.22, bester Zug d5.
Stellung nach c4: Score + 0.16, bester Zug e5.
Was also jetzt? Die Bewertung im Ausgangsknoten sagt: Ziehe e4, wenn man sich aber die Nachfolgestellungen anschaut, müßte man eigentlich d4 ziehen, da das ja zur besten Bewertung führt. Und so weiter...Das heißt, das Problem stellt sich für jede Stellung im gesamten Suchbaum. Der Score nach d4 kann wieder nicht konsistent sein mit den Nachfolgestellungen von d4. Was muss man also tun, wenn man z.b. eine Million analysierte Stellungen ausgehend von der Ausgangsstellung hat? Man muss diesen Stellungsbaum ausbalancieren, d.h. jede Stellung konsistent mit allen Nachfolgestellungen machen. Und das geht prinzipiell nicht mit der normalen Baumsuche einer Engine, da es sich aufgrund der Möglichkeit von Stellungswiederholungen um ein graphentheoretisches Problem handelt. Bei dieser Ausbalancierung kann man auch nicht einfach bei einer Stellungswiederholung den Knoten auf den Score 0 setzen, das führt zu unauflösbaren Wiedersprüchen.

Im Endergebnis erhält man dann für jeden Knoten einen neuen Score und auch evtl. einen neuen besten Zug. Diese nachträgliche Neuberechnung aller Stellungen ist die eigentliche Leistung der Library. Sie führt zu einer nachträgliche Erhöhung der Suchtiefe, die durchaus manchmal +40 betragen kann.

Einfacher ausgedrückt: Eine normale Engine rechnet in einer beliebigen Stellung in die Zukunft, also nach vorne. In der Library werden diese Berechnungsergebnisse nun in die Stellungen davor, d.h. in die Vergangenheit, zurückgeholt. Das Verfahren ähnelt, wie schon erwähnt, einer manuellen Analyse einer Stellung mit einer Engine, die persistente Hahstables nutzt: Man spielt Züge, ausgehend von einer Ausgangsstellung, vor. Die Engine sieht nun dabei (spätere) Konsequenzen dieser Züge und speichert diese als Bewertung in den persistenen Hashtables ab. Nun nimmt man die Züge wieder zurück und analysiert wieder die Ausgangsstellung. Nun „weiß“ die Engine aber schon um die möglichen Konsequenzen von späteren Zügen, weil diese ja schon in den Hashtables vorliegen. Dadurch wird die Ausgangsstellung nun anders (und besser, weil vertiefter) bewertet, auch der favorisierte beste Zug kann nun ein anderer sein. Die Analyse wird dadurch also schachlich hochwertiger, als nur mit reiner Engine-Berechnung in der Ausgangsstellung. Nur sind die Daten in der Library - im Gegensatz zu manuellen Analysen mit Hilfe persistenter Hashtables – konsistent und frei von Lücken.Brainfish enthält nun aber nicht das gesamte Wissen der Library (wie z.B. die Bewertung),sondern nur den nach der Neuberechnung ermittelten besten Zug (manchmal noch den zweitbesten Zug, um die Variabilität zu erhöhen), was für das praktische Spiel aber ausreicht. Da Brainfish sowieso nicht rechnet, wenn eine Stellung auf dem Brett ist, die in der Library gespeichert ist, ist eine Stellungsbewertung auch nicht vonnöten.
Parent - By Stefan Pohl Date 2016-07-24 17:54
Parent - - By Horst Sikorsky Date 2016-07-24 18:21
(manchmal noch den zweitbesten Zug, um die Variabilität zu erhöhen)
und wenn dann der zweitbesten Zug, eigentlich der beste Zug ist ... wird es gefährlich 
Parent - - By Stefan Pohl Date 2016-07-24 18:26
Horst Sikorsky schrieb:

(manchmal noch den zweitbesten Zug, um die Variabilität zu erhöhen)
und wenn dann der zweitbesten Zug, eigentlich der beste Zug ist ... wird es gefährlich 


Das dürfte kein großes Problem sein. Diese Variabilität findet hauptsächlich in den allerersten Zügen statt. Damit auf 1.e4 z.B. nicht immer nur 1...e5, sondern auch mal 1...c5 gespielt wird.
Zudem werden die allerersten Züge in der Praxis ja etweder von einem normalen Eröffnungsbuch oder einer vorgegebenen Eröffnungstellung/Zugfolge gespielt und die Ceberellum-Library kommt erst danach zum Einsatz
Parent - - By Michael Scheidl Date 2016-07-24 18:41
Wie lange bleibt Brainfish typischerweise in diesem Buch, m.a.W. wie tief sind im allgemeinen die Varianten die es ausspielt? Und wie tief waren die zugrundeliegenden Berechnungen?

Klingt jedenfalls interessant.
Parent - - By Thomas Zipproth Date 2016-07-24 22:39
Die Variantentiefe ist sehr unterschiedlich, geht aber im Regelfall bis ins tiefere Mittelspiel, 40-60 Halbzüge kommen oft vor.
Varianten die bis ins Turmendspiel reichen gibt es aber auch.
Dadurch das das Buch mit Stockfish berechnet ist, ergibt sich auch das eine frühe Abweichung normalerweise mit einer schlechten Bewertung erkauft wird.

Gelegentlich wird das Buch gar nicht verlassen, wenn der Gegner zum Beispiel mit Weiss spielend in eine Zugwiederholung läuft.
Die zugrundeliegenden Berechnungen sind durchschnittlich Tiefe 29-32, durch die Library kommt nochmal eine zusätzliche Tiefe dazu, die in der frühen Eröffnungsphase um 25 betragen kann, d.h die Hauptvariante des Buches ist dann 50 Halbzüge lang.
Parent - - By Michael Scheidl Date 2016-07-25 18:32
Zitat:
Brainfish is a Stockfish based engine which contains a reduced Version of Cerebellum that only contains one or two best moves per position without score information.

Das heißt ich spiel 1.e4 und Brainfish kennt nur c5 und e5? Oder (noch schlimmer) Brainfish eröffnet 1.e4 und ist nach 1.d5,c6,e6, usw.usf. aus dem Buch?
Parent - - By Thomas Zipproth Date 2016-07-25 19:10
Nein, das ist möglicherweise leicht mißverständlich formuliert.

Es bedeutet, das BrainFish pro Stellung nur den besten und evtl. zweitbesten Zug gespeichert hat, aber keine Score Information und deswegen auch nicht eine sortierte Liste mit den Bewertungen aller möglichen in der Library vorhanden Züge ausgeben kann. (wie das aussehen würde kann man in dem Demo Tab der BrainFish Website sehen, laden dauert etwas)

Das heißt, in der Grundstellung weiß Brainfish z.b. bester Zug 1. e4 und zweitbester 2. d4. Es weiß dagegen nicht ob 1.f3 oder 1.g4 der schlechteste Eröffnungszug ist, weiß aber dann sehr wohl wieder den besten Gegenzug auf einen dieser Züge, da diese Position natürlich im Buch vorhanden ist.
Parent - - By Thomas Müller Date 2016-07-25 19:33
Hallo Thomas,

auf dem demo-tab....was bedeuten die werte in spalte depht 26+28 bei e4 oder 28+35 bei d4 z.B.?
Also depth von was ?
Bin total fasziniert, weil ich was ähnliches auch mal im kopf hatte...ein durch eine engine erstelles buch.
Top! Und vor allem was da noch dazu kommt i nächster zeit.
Bin begeistert!

gruß
thomas
Parent - By Thomas Zipproth Date 2016-07-25 19:47
Hallo Thomas,

danke für das Lob

28+35 bedeutet, das die Position von der Engine in der Tiefe 28 berechnet worden ist, durch die Neuberechnung mit dem Graph Algorithmus aber nochmal eine Tiefe von 35 hinzugekommen ist, so das diese Stellungsbewertung in etwa der einer Engine Berechnung mit der Tiefe 63 entspricht.

Eine Sonderstellung hat der depth Wert xx+99 mit dem Score 0. Das bedeutet das während der Neuberechnung eine nicht auflösbare Schleife gefunden wurde (ausser durch einen schlechten Zug), und damit eine Stellungswiederholung vorliegt.

Thomas
Parent - By Stefan Pohl Date 2016-07-25 04:22
Michael Scheidl schrieb:

Wie lange bleibt Brainfish typischerweise in diesem Buch, m.a.W. wie tief sind im allgemeinen die Varianten die es ausspielt? Und wie tief waren die zugrundeliegenden Berechnungen?

Klingt jedenfalls interessant.


In meinem Endless RoundRobin Turnier (25'+5'', alle 4 cores für jede Engine) lasse ich ja mittlerweile Brainfish gegen Komodo spielen. Und damit die Cerebellum Library nicht gezielt auf bestimmte Eröffnungsvorgabestellungen "getuned" werden kann, wird dort jetzt ein 7 Vollzüge tiefes Eröffnungsbuch (aus IM/GM Partien erstellt) benutzt, sodaß unvorhersehbar ist, welche Eröffnungen gespielt werden. Dort spielt Brainfish üblicherweise bis zu Zug 10-20 aus der Cerebellum Library.,Normal ist so ca. Zug 15. Also 15-7 (Eröffnungsbuch geht ja bis Zug 7) = ca. um 8 Züge aus der Library. Das klingt nicht viel, macht aber schon einen großen Unterschied. Weil die Züge durch die Rückwärtsberechnung der Library schachlich weit hochwertiger sind und (auch wichtig) einiges an Bedenkzeit eingespart wird, weil ja Komodo während dieser 8 Züge schon normal rechnet, Brainfish aber gar keine Zeit verbraucht.
Parent - By Tom Paul Date 2016-07-24 18:32
Und wo ist der Unterschied zu Large Pages?
Parent - - By Benno Hartwig Date 2016-07-24 19:00
Thanx für die umfangreiche Erklärung, die ich mir aber noch mal in Ruhe durchlesen muss.

Zwei Dinge also:

1.)
Ja, und so ist Brainfish dann tatsächlich stärker als SF mit einem beliebigen (!?) anderen Buch. (Richtig?)
Und das wohl bei kurzen und bei langen Zeiten?
Das macht die Engine dann doch wieder sehr interessant!

2.) (mal so spontan)
Kann solch ein Vorgehen dann nicht prinzipiell auch bei der ganz normalen Suche nach dem besten Zug sinnvoll sein?

Benno
Parent - - By Ralf Mueller Date 2016-07-24 19:30
Zitat:

1.)
Ja, und so ist Brainfish dann tatsächlich stärker als SF mit einem beliebigen (!?) anderen Buch. (Richtig?)
Und das wohl bei kurzen und bei langen Zeiten?
Das macht die Engine dann doch wieder sehr interessant!

So wie ich das verstehe nicht. Man könnte das intern gecodete Brainfish-Buch auch als normales Buch abspeichern, dann wäre Stockfish mit diesem Buch doch praktisch genauso stark wie Brainfish, oder?
Parent - - By Thomas Zipproth Date 2016-07-24 19:46
Hi,

das trifft zwar für den einmaligen Fall zu, aber im Gegensatz zu dem Brainfish Buch ist dieses "normale Buch" ja nicht mehr automatisch verbesserbar.

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.

Thomas
Parent - By Ralf Mueller Date 2016-07-24 20:27
Danke für die Klarstellung. Wie wird denn entschieden, welche Zugfolge abgespeichert wird? Alles bis Zugnummer 20? Wird die exe dann nicht unglaublich groß werden?
Parent - By Benno Hartwig Date 2016-07-24 20:11
Ja gibt es denn überhaupt ein Buch, welches so stark ist (oder für SF so prima passt) wiedeses in Brainfish enthaltene Buch?
Zunächst mal steckt es ja nun im Brainfish und ist nicht anderswo verfügbar.

Benno
Parent - - By Thomas Zipproth Date 2016-07-24 20:02
Hi, ich versuche mal das näher zu beschreiben:

Zu 1.)

Ja, BrainFish sollte stärker sein als Stockfish mit einem beliebigen anderen Buch.
Darum geht es ja letztlich auch, die stärkste "Schach-Entität" zu schaffen, unabhängig von der verwendeten Technik.
Und BrainFish wurde auf nur zwei Quadcores berechnet, wenn einmal mehrere Personen an der Berechnung teilnehmen, wird die Library entsprechend schneller stärker.

Es gibt einen Unterschied zu den normalen besten verfügbaren Eröffnungsbüchern:

Diese legen oft nur Fehler von anderen Eröffnungsbüchern offen, während Brainfish sozusagen mehr auf der Suche nach der "absoluten Wahrheit" ist, wie in einer tiefen Analyse.
Deswegen könnte Brainfish evtl. eine etwas höhere Draw-Rate haben (es fehlt noch statistische Material), spielt aber auch entsprechend sicherer.

Zu 2.)

Ja, das war die ursprüngliche Intention der Library: Ein möglichst starkes Analyse Werkzeug zu schaffen.
Inzwischen ist ein kleines Demo davon auf dem "Demo" Tab der BrainFish Seite zu sehen (Laden dauert etwas).
BrainFish ist sozusagen die spielende Variante dieser Analyse Library, die noch nicht allgemein verfügbar ist..

Thomas
Parent - By Benno Hartwig Date 2016-07-24 21:30
Thanx für eine wirklich sehr interessante Idee
und eben auch gleich eine sehr überzeugende Realisierung. (samt Sourcen)


Benno
Parent - - By Patrick Götz Date 2016-07-24 22:41
Thomas Zipproth schrieb:


Und BrainFish wurde auf nur zwei Quadcores berechnet, wenn einmal mehrere Personen an der Berechnung teilnehmen, wird die Library entsprechend schneller stärker.



I like BrainFish
Wie wäre es wohl erst mit einem "verteiltes Rechnen" Projekt wie beim Stockfish Testing für BrainFish?
Ich könnte mir vorstellen dass man der "Wahrheit" schon ziemlich nahe kommen könnte wenn wie beim Stockfish Testing mit mehereren hunder Kernen ein paar Monate/Jahre ein Positionen durchgerechnet, bewertet und gespeichert werden.
Kann ich meine Rechenpower schon jetzt in irgendeiner Form für BrainFish stiften?

Grüße
Patrick
Parent - - By Stefan Pohl Date 2016-07-25 06:50
Patrick Götz schrieb:

Thomas Zipproth schrieb:


Und BrainFish wurde auf nur zwei Quadcores berechnet, wenn einmal mehrere Personen an der Berechnung teilnehmen, wird die Library entsprechend schneller stärker.



I like BrainFish
Wie wäre es wohl erst mit einem "verteiltes Rechnen" Projekt wie beim Stockfish Testing für BrainFish?
Ich könnte mir vorstellen dass man der "Wahrheit" schon ziemlich nahe kommen könnte wenn wie beim Stockfish Testing mit mehereren hunder Kernen ein paar Monate/Jahre ein Positionen durchgerechnet, bewertet und gespeichert werden.
Kann ich meine Rechenpower schon jetzt in irgendeiner Form für BrainFish stiften?

Grüße
Patrick


Das hatten Thomas und ich auch schon mal erörtert. Bisher ist ein solches Framework nicht geplant. Aber der kommerzielle Release wird ja später jedem User ermöglichen, die Library eigenständig zu erweitern. Dann könnte es eine Alternative geben, nämlich, daß die User ihre selbst generierten Library-Erweiterungen an Thomas schicken und er sie dann in die "Library für alle" fest einbaut, so daß jeder von diesen Erweiterungen profitieren kann.
Parent - - By Patrick Götz Date 2016-07-25 09:49
Das hört sich gut an, müsste nur etwas komfortabler/automatisierter gehen, so mit Häkchen setzten bei "Ergebnisse automatisch übermitteln",  damit daraus irgendwann ein wirklich starker und mächtiger Baum entstehen kann, an dem man sich selbst auf Fernschachniveau noch bis zum 15. oder  20. Zug orientieren kann.

Beste Grüße
Patrick
Parent - By Stefan Pohl Date 2016-07-25 11:50 Upvotes 1
Patrick Götz schrieb:

Das hört sich gut an, müsste nur etwas komfortabler/automatisierter gehen, so mit Häkchen setzten bei "Ergebnisse automatisch übermitteln",  damit daraus irgendwann ein wirklich starker und mächtiger Baum entstehen kann, an dem man sich selbst auf Fernschachniveau noch bis zum 15. oder  20. Zug orientieren kann.

Beste Grüße
Patrick


Vielleicht kommt ja noch ein echtes Framework, wo cpu-Zeit gestiftet werden kann.
Thomas hat gerade auf talkchess gepostet, daß das durchaus noch kommen könnte...
In der Zwischenzeit kann man potentiell interessante bzw. verbesserungswürdige Partieverläufe schon an Thomas senden.
Siehe dazu auf seiner Website: 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

Ansonsten sag ich mal: abwarten! Alles auf einmal geht halt nicht. Thomas und sein Bruder stemmen den Programmieraufwand ganz alleine. Warten wir doch erst mal den Release der kommerziellen SiriusGUI ab, mit der die Cerebellum Library vom Käufer eingesehen und bearbeitet werden kann.
Parent - By Frank Brenner Date 2016-07-25 02:37

> Deswegen könnte Brainfish evtl. eine etwas höhere Draw-Rate haben


Ich finde Brainfish und die Idee sehr gut, obwohl ich glaube dass Chessbase in der Zeit von Fritz  6  - Fritz 8  auch einmal so was gemacht hat mit einem so generierten Buch welches zurückpropagiert wurde. Hab aber dazu keine Quellen mehr.

Um die Remis-Rate zu verkleinern, sollte meiner Meinung nach die Blattbewertungen von Stockfish in einer nachfolgenden Iteration justiert werden:

Zb könnten  Blattstellungen wo viele Figuren (insbes. die Dame)  während der Eröffnung abgetauscht wurden deutlich kleiner bewertet werden als die Bewertung von Stockfish behauptet.

Also wenn Stockfish eine Mittelspielposition nach der Eröffnung zb +0,29 berechnet, wobei das Brett  nur noch sehr wenige Schwerfiguren hat könnte man die Bewertung auf  +0,00 oder +0,09 bewerten. Eine Bewertung von +0,60 könnte auf +0,30 verkleinert werden.
Lautet die SF Bewertung dagegen +1,27 so sollte man auch bei Figurenarmug von der 1,27 keinen punkt von abziehen, da die Stellung vermutlich gewonnen ist.

Wenn du die Stockfish Analyse bis tiefe 30 durchführst, würde ich auch alles speichern, d.h. jede Bewertung jeder Iteration und die jeweilige HV....
Auch hier kann man kandidaten für  Remisstellungen identifizieren, wenn zb die Bewertungen der letzten n Iterationen sich nicht mehr ändert.

Auf diese Weise kann man jedenfalls möglichst vermeiden dass Brainfish in Figurenarme Mittelspielstellungen abwickelt.

Dies dürfte ja sehr schnell zu berechnen sein, auch Nachträglich, denn du hast sicher noch die Ausgangsblattstellungen mit der Analysebewertung von SF gespeichert. Kurz darüberfliegen und die SF Bewertungen automatisch  bei Figurenarmut mit einer kleinen Formel (hier kann man noch die Formel optimieren)   herabsetzen und dann nochmal zurückpropagieren (das ja recht  schnell sein sollte).

Anschließend mit Littleblitzer ein paar hundert Bulletspiele spielen und schauen wie sich die Draw-Rate und die ELO Zahl ändert.

Das Vermeiden von Remis ist meiner Meinung nach ein zentraler Punkt für die Zukunft des Computerschachs.
Parent - By Frank Brenner Date 2016-07-25 00:35

> Und Stockfish mit einem gute Buch ist dann wohl ungefähr gleichstark wie Brainfish, richtig?


Vielleicht.

Das müsste halt noch überprüft werden wie spielstark das neue Brainfish Buch bzw die Cerebellum Bibliothek von Thomas Zipproth ist im Vergleich zu existierenden Büchern.

Der Ansatz, so wie das Buch berechnet wurde ist jedenfalls zunächst vielversprechend. Zumindestnes viel interessanter als von Hand gekochte Bücher.

Ich habe aber bereits schon schwache Abwicklungen im Brainfish buch  gefunden die nur auf beiden Seiten mit 2 Türmen und einer Leichttfigur  enden, die praktisch tot Remis sind auf heutigem Niveau.
Solche toten Remispfade sollten absolut vermieden werden. Stockfischs Bewertung liegt am ende noch bei +0,33 - diese irrtümliche Bewertung ist der Grund wieso dieser Pfad es in die Datenbank geschafft hat.

Nach meiner Meinung nach sollten heutige Eröffnungsbücher rein algorithmisch errechnet werden. Mit genau diesem Algorithmus durch bloßes Rückpropagieren der Blattbewertungen wahrscheinlich nicht. Aber für den Anfang ist das schon mal ein Ansatz.

Eine genau so wichtige Komponente ist das Aufrechterhalten der potentiellen Komplexität einer Stellung, die hier überhaupt nicht berücksichtigt wird.
Parent - - By Benno Hartwig Date 2016-07-24 21:11
Faszinierend, dass SF nicht nur so viele Leute an der Top-engine-Entwicklung teilhaben lässt,
dass es Spielwiese und Übungsfeld für Entwickler bietet,
dass wohl auch vieles sehr befruchtend auf andere Entwicklungen wirkt,
es kommen wirklich überraschende Dinge hinzu:
- erst die gelungene asm-Portierung (unabhängig davon, wie beharrlich diese Linie weiterbetrieben werden kann)
- und nun dieser Brainfish

Thanx an das SF-Team
und eben alle die, die die SF-Sourcen aufnehmen und dann in eine ganz eigene Richtung entwickeln.
(Nein, ich habe noch nicht viele Sätze mit drei "die" hintereinander fabriziert.)

Die Engines werden nicht nur immer noch in großem Tempo stärker,
es passieren wirklich auch heute noch neue und überraschende Dinge im Computerschach!

Benno
Parent - - By Tom Paul Date 2016-07-24 21:43
Das zeigt aber wieder:
Hätte Stockfish eine Eröffnungsphase im Code, dann wäre er mindestens 100 ELO stärker!

Aber die Stockfish Entwickler trauen sich nicht an das heiße Eisen ran.
Parent - By Benno Hartwig Date 2016-07-24 22:50
Code für eine sehr gute Behandlung der Eröffnungsphase sollte SF gern haben.
Ein eigenes Buch, und sei es noch so raffiniert gefertigt, sollte die Schach-Engine aber nicht enthalten.

Deshalb darf aber sehr gern(!) trotzdem eine Schachsoftware wie Brainfish entstehen, die eine gute Realisierung (ggf. auch eine ganz besonders gute Realisierung) für Engine+Buch-Gespanne darstellt.

Benno
Parent - - By Stefan Pohl Date 2016-07-25 04:35
Benno Hartwig schrieb:

Faszinierend, dass SF nicht nur so viele Leute an der Top-engine-Entwicklung teilhaben lässt,
dass es Spielwiese und Übungsfeld für Entwickler bietet,
dass wohl auch vieles sehr befruchtend auf andere Entwicklungen wirkt,
es kommen wirklich überraschende Dinge hinzu:
- erst die gelungene asm-Portierung (unabhängig davon, wie beharrlich diese Linie weiterbetrieben werden kann)
- und nun dieser Brainfish

Thanx an das SF-Team
und eben alle die, die die SF-Sourcen aufnehmen und dann in eine ganz eigene Richtung entwickeln.
(Nein, ich habe noch nicht viele Sätze mit drei "die" hintereinander fabriziert.)

Die Engines werden nicht nur immer noch in großem Tempo stärker,
es passieren wirklich auch heute noch neue und überraschende Dinge im Computerschach!

Benno


Sehr gut gesagt, Benno. Ganz meine Meinung. Deswegen war ich auch sehr begeistert, als Thomas Zipproth mich fragte, ob ich nicht mal einige private Testruns für Brainfish machen könnte. Und daß habe ich dann auch mehr als ein Jahr lang gemacht. Und einen Teil der Dokumentation verfaßt.Und viel mit Thomas gefachsimpelt. War toll.
Und Brainfish ist ja erst die erste Ausbaustufe dieses faszinierenden Projekts. Später wird es in dem kommerziellen Release ja möglich sein, selbst die Library zu erweitern, sie damit auf eigene Bücher oder Eröffnungsvarianten hin zu optimieren. Und sie mit einer GUI auch einsehen zu können. Das wird Hammer!
Parent - - By Peter Martan Date 2016-07-25 07:46
Stefan Pohl schrieb:

Und Brainfish ist ja erst die erste Ausbaustufe dieses faszinierenden Projekts. Später wird es in dem kommerziellen Release ja möglich sein, selbst die Library zu erweitern, sie damit auf eigene Bücher oder Eröffnungsvarianten hin zu optimieren. Und sie mit einer GUI auch einsehen zu können. Das wird Hammer!


Ja, das klingt nach echt großer Spielwiese!
Parent - By Stefan Pohl Date 2016-07-25 09:21
Peter Martan schrieb:

Stefan Pohl schrieb:

Und Brainfish ist ja erst die erste Ausbaustufe dieses faszinierenden Projekts. Später wird es in dem kommerziellen Release ja möglich sein, selbst die Library zu erweitern, sie damit auf eigene Bücher oder Eröffnungsvarianten hin zu optimieren. Und sie mit einer GUI auch einsehen zu können. Das wird Hammer!


Ja, das klingt nach echt großer Spielwiese!



Bei Zukunftsprognosen bin ich normalerweise eher zurückhaltend, aber die Ceberellum Library könnte die Analyse und auch dieWeiterentwicklung der Schach-Eröffnungstheorie revolutionieren. Und wer Engineschach online spielt (playchess, infinitychess etc.) wird an Cerebellum nicht vorbeikommen. Mit der kommerziellen Vollversion kann man eigene Berechnungen in die Cerebellum Library einarbeiten und sie so aufs eigene Eröffnungsbuch abstimmen.
Später wird es Cerebellum auch als Proxy-Version geben, will heißen, man kann dann jede beliebige Engine (nicht nur Stockfish) an die Cerebellum Library anbinden. Dann wirds also auch möglich sein, einen "BrainKomodo" oder "BrainHoudini" zu nutzen.
Viele tolle Möglichkeiten!
Parent - - By Ingo Althöfer Date 2016-07-25 16:58
Hallo allerseits,

Frank Brenner schrieb:

Von Thomas Zipproth gibt es eine neue Schachengine namens Brainfish.
...
http://www.zipproth.de

Jetzt habe ich einmal quer durch den Thread geblättert und bin zu einer Frage gekommen:
Wäre nicht Memofish statt Brainfish ein passenderer Name für die Engine?

Ingo Althöfer.
Parent - - By Frank Brenner Date 2016-07-25 17:21
Ich würde Bookfish vorschlagen.
Parent - By Ingo Althöfer Date 2016-07-25 17:39
Frank Brenner schrieb:
Ich würde Bookfish vorschlagen.

Bookfish wäre in der Tat auch sehr passend.

Auf Memofish war ich gekommen, wegen des Filmes "Rettet Nemo".
Ingo Althöfer.
Parent - By Patrick Jansen Date 2016-07-25 17:44
+1
Parent - By Benno Hartwig Date 2016-07-26 20:09 Edited 2016-07-26 20:57

> Wäre nicht Memofish statt Brainfish ein passenderer Name für die Engine?


Aber das Baby ist doch bereits getauft, oder??
Benno
Parent - - By Jens Hartmann Date 2016-07-26 17:55
Und wenn ich nun ein Match Brainfish-Stockfish spielen lasse mit sehr sehr langer Bedenkzeit? Also länger und famit tiefer als jene Berechnungen, die dem Eröffnungsbuch von Brainfish zugrunde liegen? Müsste dann nicht wieder Stockfish besser spielen, weil Brainfish stereotyp aus dem Buch spielt, Stockfish aber tiefer rechnet als die Basis der Buchzüge von Brainfish war?
Up Topic Hauptforen / CSS-Forum / Brainfish von Thomas Zipproth
1 2 3 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill