Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Fire 5 wohl nur ein Stockfish-Klon
- - By Stefan Pohl Date 2016-11-16 05:59
Siehe dazu den Post im Talkchess Forum:
http://www.talkchess.com/forum/viewtopic.php?t=62144

Schade. Fire 4 war ja noch ein weiterentwickelter Ippo. Fire 5 kann ich dann leider nicht gebrauchen, da ich für meine Stockfish-Testruns Gegner brauche, die nicht mit Stockfish verwandt sind. Sonst könnte ich ja gleich Selftests machen.
Aber da die Endgame-Strings im Fire-Code in der exakt gleichen Reihenfolge vorliegen, wie im Stockfish Sourcecode, kann an der Abstammung von Fire 5 meiner Meinung nach kein echter Zweifel bestehen.
Parent - - By Frank Quisinsky Date 2016-11-16 06:42 Edited 2016-11-16 07:02
Hallo Stefan,

kann ich mir nicht vorstellen.

Ein Hinweis:
Als die IPPs kamen gab es Stockfish 1.5. Stockfish stammt von Glaurung und Glaurung hatte kein Endspiel Wissen (siehe Interview mit den Stockfish Programmierern, Aussage von Tord). Glaurung war im Endspiel auch absolut hinter seinen Möglichkeiten, spielte schöne und schnelle Gewinnpartien aber ging es im Endspiel ... oh ha ... die Niederlage lag in der Luft.

Stockfish 1.5 war auch noch nicht übermächtig im Endspiel bzw. war das nach wie vor die große Schwäche, während die IPPs im Endspiel überragend spielten.

Hier mal ein Auszug aus der SWCR:
Code:

  24 RobboLito 0.09 x64             2922   16   15  1640   71%  2752   36%
  86 Stockfish 1.5.1 JA w32         2728   18   18  1000   59%  2672   43%
148 Glaurung 2.2 JA w32            2613   16   17  1260   37%  2699   36%


Woher hatten dann plötzlich die vielen Stockfish Programmierer das Endspiel Wissen erhalten?
Wurde das Rad hier wirklich neu erfunden?

Und nun muss die folgende Frage folgen ...

Wer hat die IPP Sourcen ins reine geschrieben? Das war Norman.
Wer hat alles diese Arbeit kopiert bzw. darauf wieder aufgesetzt?

Und wie viel wurde von Norman selbst in den Code gebracht weil dieser zunächst gar nicht korrekt lesbar war?

Computerschach heute ist ein Baukastenprinzip!
Wie kann ich das vorhandene Wissen am besten zusammenfügen.

Auch hier ...
Siehe Interview mit den Stockfish Programmierern.
Alle Ideen sind bekannt (Aussage von Marco).

Ganz sicher wurde nachdem mit vielen Leuten an Stockfish programmiert wurde auch neues entdeckt. Immer mehr Leute mit immer neuen Ideen. In der Anfangsphase und überwiegend heute auch nur in dem Parameter ausprobiert werden ... so rein zufällig ... was passiert wenn ich ... und tausende Blitzpartien folgen. Ganz offensichtlich funktioniert das gar.

Heute ist nicht mehr alles so sauber zu trennen wie es einst mal war.
Allessandro Damiani mit seinen Fortschritten bei den Bitboards (was dann auch wieder viele für sich beanspruchten). War der Fortress Programmierer ... wie mit so vielen Dingen. Die genialen Fruit Sourcen, die genialen Pepito Sourcen ... etc..

Das stetige "Ich Zweifel an ..."
Interessant ist immer die Frage wer zweifelt an und warum zweifelt er an.
Welche Gründe hat er ...
Nur wenige zweifeln an ohne Eigeninteresse !!

Auch ist klar, dass 100 Computerschächler 100 verschiedene Meinungen zu den diversen Themen haben.
Meist je nach Eigeninteresse wie die Erfahrung lehrt, oft fehlen Informationen (niemand kann alle haben) oder auch oft Unkenntnis bis hin zur Überschätzung.

Das sich Leute nun auf Fire, Houdini und sonst was stürzen ... glaube mir das wissen bzw. wussten die Programmierer.

Oft und lange drüber nachgedacht was der Critter Programmiere mal in TalkChess schrieb.
Er sagte ... wenn doch ein Teil von Sourcen gut ist, warum sollte ich diese nicht nutzen ... ich muss das Auto nicht immer wieder neu erfinden.
So mit meinen Worten, bzw. wie ich es verstanden habe.

Klar, kommen andere dann um die Ecke und sagen ... dann schreibe es in die Readme.

Glaube mir, dann hätten die Stockfish Leute aber viel zu tun wenn Sie damit anfangen würden alles in die Readme zu schreiben was von Person A oder B gekommen ist. Kann doch kaum noch jemand nachvollziehen. Und wenn einer etwas für sich beansprucht kommt der nächste um die Ecke und sagt, das wusste ich schon, schon lange in meinem Programm enthalten. So die üblichen Spielereien. Und alle die direkt involviert sind glänzen dann mit ultraschlauen Kommentaren ... haben die Weisheit gefressen und stehen über alles.

Persönlich halte ich es zumindest für kritisch die starken Sourcen frei zu veröffentlichen. Weil wenn eine große Gruppe genau das macht wird diese Gruppe dazu neigen vieles für sich zu beanspruchen. Im Stockfish Team sind so einige Herren die mir nicht gefallen, hier und da schon unangenehm aufgefallen sind. Und wenn ich mir dann anhören muss was die alten Programmierhasen darüber denken ... ich möchte das gar nicht zum Besten geben. Tatsächlich ist es aber so dass Wissen entstanden ist und dieses Basiswissen haben die Pioniere mit auf dem Weg gegeben. Ständig wurde daran gearbeitet und wäre dieses Basiswissen nicht vorhanden ... kein Stockfish oder sonst irgend etwas.

Letztendlich sind das alles sehr schreckliche Diskussionen.

Verwerflich finde ich vielmehr, wenn ein Programm 1 zu 1 kopiert wird mit wirklich wenigen Änderungen. Da gab es viele die das gar öfters versuchten. Das können wir bei Norm nun wirklich ausschließen, auch wenn er lange an IPP Sourcen festgehalten hat (logischer Weise nach seiner Grundsatzarbeit) und selbst versucht hat so nach und nach alles zu ändern. Wie z. b. auch der Programmierer von GullChess oder der Programmierer von Equinox. Und ich möchte gar nicht wissen in wie vielen Programmen bekannte Sourcen eingearbeitet wurde. Wie gesagt, finde das gar OK wenn denn zu erkennen ist, dass es sich bei einem Programm um eine Entwicklung mit vielen eigenen Ideen handelt.

Tja ...
Hatte vor einer Woche noch mit 2 Leuten drauf gewettet ...
Es werden durch die Veröffentlichungen der TOP-Engines dieser Tage erneute Clone Diskussionen ausbrechen.
Jeder der länger dabei ist wandelt irgendwann auf den Spuren von Nostradamos.

Es ist bald Weihnachten und die Gemüter haben Zeit.
Grundsätzlich ein Hauptproblem ...

Gruß
Frank
Parent - - By Jörg Oster Date 2016-11-18 18:09
Frank Quisinsky schrieb:

Hallo Stefan,

kann ich mir nicht vorstellen.

Ein Hinweis:
Als die IPPs kamen gab es Stockfish 1.5. Stockfish stammt von Glaurung und Glaurung hatte kein Endspiel Wissen (siehe Interview mit den Stockfish Programmierern, Aussage von Tord). Glaurung war im Endspiel auch absolut hinter seinen Möglichkeiten, spielte schöne und schnelle Gewinnpartien aber ging es im Endspiel ... oh ha ... die Niederlage lag in der Luft.

Stockfish 1.5 war auch noch nicht übermächtig im Endspiel bzw. war das nach wie vor die große Schwäche, während die IPPs im Endspiel überragend spielten.


Wie kommst du denn auf sowas?
Glaurung enthält im Grunde schon das an Endspielwissen, was auch in Stockfish steckt.

Tord hat auch nie gesagt, dass Glaurung kein Endspielwissen hat ...
wie üblich, hat Tord in seiner bescheidenen Art etwas untertrieben.

Hier ein Auszug aus endgame.cpp von Glaurung2.2:
Code:
/// Evaluation functions

// Generic "mate lone king" eval:
KXKEvaluationFunction EvaluateKXK = KXKEvaluationFunction(WHITE);
KXKEvaluationFunction EvaluateKKX = KXKEvaluationFunction(BLACK);

// KBN vs K:
KBNKEvaluationFunction EvaluateKBNK = KBNKEvaluationFunction(WHITE);
KBNKEvaluationFunction EvaluateKKBN = KBNKEvaluationFunction(BLACK);

// KP vs K:
KPKEvaluationFunction EvaluateKPK = KPKEvaluationFunction(WHITE);
KPKEvaluationFunction EvaluateKKP = KPKEvaluationFunction(BLACK);

// KR vs KP:
KRKPEvaluationFunction EvaluateKRKP = KRKPEvaluationFunction(WHITE);
KRKPEvaluationFunction EvaluateKPKR = KRKPEvaluationFunction(BLACK);

// KR vs KB:
KRKBEvaluationFunction EvaluateKRKB = KRKBEvaluationFunction(WHITE);
KRKBEvaluationFunction EvaluateKBKR = KRKBEvaluationFunction(BLACK);

// KR vs KN:
KRKNEvaluationFunction EvaluateKRKN = KRKNEvaluationFunction(WHITE);
KRKNEvaluationFunction EvaluateKNKR = KRKNEvaluationFunction(BLACK);

// KQ vs KR:
KQKREvaluationFunction EvaluateKQKR = KQKREvaluationFunction(WHITE);
KQKREvaluationFunction EvaluateKRKQ = KQKREvaluationFunction(BLACK);

// KBB vs KN:
KBBKNEvaluationFunction EvaluateKBBKN = KBBKNEvaluationFunction(WHITE);
KBBKNEvaluationFunction EvaluateKNKBB = KBBKNEvaluationFunction(BLACK);

// K and two minors vs K and one or two minors:
KmmKmEvaluationFunction EvaluateKmmKm = KmmKmEvaluationFunction(WHITE);

/// Scaling functions

// KBP vs K:
KBPKScalingFunction ScaleKBPK = KBPKScalingFunction(WHITE);
KBPKScalingFunction ScaleKKBP = KBPKScalingFunction(BLACK);

// KQ vs KRP:
KQKRPScalingFunction ScaleKQKRP = KQKRPScalingFunction(WHITE);
KQKRPScalingFunction ScaleKRPKQ = KQKRPScalingFunction(BLACK);

// KRP vs KR:
KRPKRScalingFunction ScaleKRPKR = KRPKRScalingFunction(WHITE);
KRPKRScalingFunction ScaleKRKRP = KRPKRScalingFunction(BLACK);

// KRPP vs KRP:
KRPPKRPScalingFunction ScaleKRPPKRP = KRPPKRPScalingFunction(WHITE);
KRPPKRPScalingFunction ScaleKRPKRPP = KRPPKRPScalingFunction(BLACK);

// King and pawns vs king:
KPsKScalingFunction ScaleKPsK = KPsKScalingFunction(WHITE);
KPsKScalingFunction ScaleKKPs = KPsKScalingFunction(BLACK);

// KBP vs KB:
KBPKBScalingFunction ScaleKBPKB = KBPKBScalingFunction(WHITE);
KBPKBScalingFunction ScaleKBKBP = KBPKBScalingFunction(BLACK);

// KBP vs KN:
KBPKNScalingFunction ScaleKBPKN = KBPKNScalingFunction(WHITE);
KBPKNScalingFunction ScaleKNKBP = KBPKNScalingFunction(BLACK);

// KNP vs K:
KNPKScalingFunction ScaleKNPK = KNPKScalingFunction(WHITE);
KNPKScalingFunction ScaleKKNP = KNPKScalingFunction(BLACK);

// KPKP
KPKPScalingFunction ScaleKPKPw = KPKPScalingFunction(WHITE);
KPKPScalingFunction ScaleKPKPb = KPKPScalingFunction(BLACK);
Parent - - By Frank Quisinsky Date 2016-11-18 18:33
Stockfish Interview...  Lese hier zu Frage 4. Findest du auf den Schach Welt Webseiten.
Parent - - By Jörg Oster Date 2016-11-18 18:51
Frank Quisinsky schrieb:

Stockfish Interview...  Lese hier zu Frage 4. Findest du auf den Schach Welt Webseiten.

Ja Frank, ich kenne das Interview.

Hier das Zitat:
Zitat:
Tord Romstad
Actually, there isn't a tremendous amount of endgame knowledge in Stockfish, apart from a few specialized evaluation functions for basic endgames that mostly serve as a crude replacement for bitbases. Stockfish's endgame strength is somewhat mysterious even to me, but I think the explanation must be that our search is particularly efficient in the endgame. By the way, it is worth noting that the endgame seems to be Stockfish's weakest stage of the game on the iPhone, where the search speed is very low.

The specialized endgame evaluation functions are not taken from any specific source, but the knowledge contained in them is just the type of information you can find in any basic endgame book for beginning human players. It's basic stuff like the necessity of driving the king to a corner of the bishop's color in KBN vs K endgames, or Philidor's third-rank defense in KRP vs KR endgames.


Wie vorhin schon geschrieben, Tord neigt zu Untertreibungen in seiner bescheidenen Art.

Nochmal, grundsätzlich verfügte Glaurung schon über das Wissen, welches auch in Stockfish steckt.
Es gab hier und da ein paar kleine Ergänzungen oder Verfeinerungen, aber nichts Entscheidendes.
Parent - By Frank Quisinsky Date 2016-11-20 21:45 Edited 2016-11-20 21:47
Hallo Jörg,

ja, das ist natürlich richtig.
Tord ist immer sehr bescheiden in seiner Art.
Schrieb ja im Interview auch das es auffällig ist das Glaurung eigentlich ein sehr gutes Endspiel hat.

Grundsätzlich sehe ich hier auch bei Stockfish im Vergleich zu Komodo und Houdini Verbesserungsmöglichkeiten trotz der enorm hohen Spielstärke die Stockfish schon erreicht hat.

Fand das nur sehr komisch zu sagen Fire ist eine Kopie von Stockfish und mit Endspielwissen dies zu untermauern wenn das Endspiel in den Programmen von Norm schon ca. 200-300 Elo stärker waren zu Stockfish 1.51 und Glaurung 2.2 im Vergleich. Genauso der gleiche Irrsinn wenn behauptet wird Fire ist eine Kopie von Houdini, wo eigentlich klar ist das es geanau umgekehrt so war. Aber jeder hat so seine eigene Wahrheiten damit das eigene Bild zu A oder B nicht durch Farbklekse ruiniert wird. Das passt nicht. Denke der gute Programmierer der vorwirft will seine offene Rechnung mit Norman noch begleichen und dachte sich, dass wäre doch ein guter Aufhänger.

Schön ist das Fire nun auch bei der CEGT getestet wird.

Immerhin entstand aus der enormen Arbeit die der Fire Programmierer geleistet hat auch Houdini und so manches andere wurde von den offenen Fire 2.2 Sourcen in andere Programme übernommen. Könnte jetzt auf Anhieb 8 seinerzeitige IPPs aufzählen die ganz auf Fire aufgesetzt haben.

Viele Grüße
Frank

Starte in ein paar Stunden dann Stockfish 8 ... dann sind die TOP-5 Updates bei mir durch.
Parent - - By Benno Hartwig Date 2016-11-16 07:01 Edited 2016-11-16 07:03
Bei TCEC war Fire 5 aber ein ganz stattliches Stück weniger erfolgreich als Stockfish.
Fire5 als Clone eines auch nur leidlich aktuellen SF erscheint mir da kaum vorstellbar.
Und falls irgendwelche Teile übernommen wurden, dann entsteht dadurch noch kein Clone.

Benno
Parent - - By Frank Quisinsky Date 2016-11-16 07:04
Benno,

was willst Du denn anhand von ein paar TCEC Partien sehen?
Das werden 50 Partien gespielt oder hier und da auch ein paar mehr.

Du bist es der sich gerne bei Statistik Fragen einbringt.
Und schiebst TCEC ins Gefecht ... passt nicht!

Gruß
Frank
Parent - - By Benno Hartwig Date 2016-11-16 09:53 Edited 2016-11-16 10:30
Auch wenn du mit den wenigen Partien sicher Recht hast:
Ich mag mich im Gegensatz zu dir nicht der Hoffnung hingeben, dass F5 doch schon gleichstark wie SF8 ist, dass nur der Zufall und die kleine Partienzahl zu dem deutlich schlechteren Abschneiden geführt hat.
Ich halte für deutlich wahrscheinlicher, das "Clone" hier einfach ein völlig unpassender Begriff ist.

Du hast oben mit "Baukastenprinzip" auch schon ganz richtig darauf hingewiesen, dass Ideen, Tabellen oder ggf. auch mal (wo es denn tatsächlich so passt) konkreter Code übernommen wird.
Was soll's, spätestens seit Fruit da ist, mögen viele irgendwo abgeguckt haben. War ja z.B. von Fabien wohl auch so gewollt.
Die Scene hat heute vielleicht sehr viel mehr Austausch als früher.
Und der eine sagt offen, woher er was bekam, der andere hällt seine Sourcen geheim, und auch womit und von wem er sich "inspirieren" ließ.

Benno
Parent - By Frank Quisinsky Date 2016-11-16 11:38
Hi Benno,

habe nicht geschrieben dass Fire 5 die gleiche Spielstärke als Stockfish 8 hat.
Sicherlich liegen ausreichend Partien bei TCEC vor um sagen zu können Fire wird wahrscheinlich nicht diese hohe Spielstärke haben.

Bei Komodo / Stockfish und Houdini wird der Zufall allerdings enorm hoch sein ein solches Turnier dann letztendlich zu gewinnen!

Viele Grüße
Frank
Parent - - By Stefan Pohl Date 2016-11-16 09:01
Benno Hartwig schrieb:

Bei [url]TCEC [/url]war Fire 5 aber ein ganz stattliches Stück weniger erfolgreich als Stockfish.
Fire5 als Clone eines auch nur leidlich aktuellen SF erscheint mir da kaum vorstellbar.
Und falls irgendwelche Teile übernommen wurden, dann entsteht dadurch noch kein Clone.

Benno


Der Sim-Test deutet auf irgendwas in der Gegend von Stockfish 6. Wohl um keinen zu verdächtig großen Elozuwachs zu Fire 4 zu haben, nehme ich an...
Ein 100% Klon ist Fire 5 sicher nicht, dafür sind die Übereinstimmungen im sim-Test nicht groß genug. Man kann Fire 5 also durchaus auch nutzen/testen. Nur für meine Stockfish-Testruns taugt Fire 5 nicht als Gegner, weil ich da keine Stockfish-Derivate als Gegner gebrauchen kann. Da bleibe ich also notgedrungen bei Fire 4.
Parent - - By Peter Schneider Date 2016-11-16 21:22
Zitat:
Der Sim-Test


Was ist der Sim-Test genau?

Der Output und die Bewertungen zwischen Stockfish 8, oder Stockfish 6 unterscheiden sich schon sehr von Fire5...
Lg
Peter
Parent - By Thomas Müller Date 2016-11-16 21:47
similar test....
vergleicht engines auf ihre ähnlichkeit....also clone oder nicht clone kurz gesagt
z.B.
http://www.ipmanchess.yolasite.com/similar-test.php
http://www.chess2u.com/t5591-similary-tester-test-the-similarity-of-any-two-uci-chess-engines

gibt bestimmt ncoh mehr bzw auch eine grafik...find ich grad nicht
kommt evtl. noch von jemand anders genaueres

gruß
thomas
- - By Guenter Stertenbrink Date 2016-11-16 14:07 Edited 2016-11-16 14:09
Fire 5 in TCEC fiel doch in erster Linie durch die hohe Remisquote auf.
Hielt meistens locker Remis gegen Stockfish,Komodo,Houdini,
konnte allerdings auch gegen schwaechere Gegner nicht so oft gewinnen.

Die evals waren eher bescheiden.

http://magictour.free.fr/TCEC9C1.GIF

(Fi=Fire 5)
Parent - By Frank Quisinsky Date 2016-11-20 21:53
Hallo Günther,

Fire spielt bei Contempt = 15 mit einem um 10-12 Züge höheren Zügedurchschnitt als Stockfish, Komodo und Shredder. Die Remisquote ist in der Tat sehr hoch für die Elo die erreicht wird. Wahrscheinlich dann ca. ein Plus von 45 Punkten zu Fire 4.

So, dann bin ich mal gespannt was Stockfish 8 noch zu der 40 Tage älteren Version drauflegen kann die ich in meiner Liste habe.

Schätze mal ...
2-3 Elo an Zuwachs für die 40 Tage und vielleicht 5 Elo durch das Ändern von Contempt 10 auf 15.
Maximal also 10 Elo mehr werden dabei herauskommen ...

Gruß
Frank
Up Topic Hauptforen / CSS-Forum / Fire 5 wohl nur ein Stockfish-Klon

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill