Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / 50 Züge Regel - Fehler in Little Blitzer oder Stockfish
- - By Thomas Zipproth Date 2014-02-15 17:28 Edited 2014-02-15 17:32
In dieser Partie, gespielt mit LS Ranglisten Einstellungen, findet im 42. Zug von Schwarz der letzte Schlagzug statt.
Im 92. Zug stellt Schwarz frohen Mutes den Turm ein, offenbar in der Meinung,
das mit diesem Zug die 50-Züge Regel erfüllt ist und Little Blitzer auf Remis entscheiden sollte.
Er tut es aber nicht. (!)

Jetzt bin ich mir nicht sicher, wo der Fehler liegt.
Entweder entscheidet Little Blitzer immer einen Halbzug zu spät auf Remis, oder Stockfish hat hier ein Problem.
Es schaut aber eher nach Little Blitzer aus, da mit dem 92. Zug von Schwarz genau 100 Halbzüge ohne Schlagzug oder Bauernzug erfolgt sind.

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board
Parent - - By Michael Scheidl Date 2014-02-15 18:08
Zitat:
Es schaut aber eher nach Little Blitzer aus, da mit dem 92. Zug von Schwarz genau 100 Halbzüge ohne Schlagzug oder Bauernzug erfolgt sind.

Das sehe ich genauso. 92.Ta1 - ein witziger Zug - hat de fakto remisiert und das Interface hat Schwarz den Sieg weggenommen. Warum würde Schwarz Ta1 ziehen wenn er nicht felsenfest - und richtigerweise - sicher war daß das ein 50er-Remis herbeiführt...?
Parent - By Michael Scheidl Date 2014-02-16 08:16
Zitat:
...Schwarz den Sieg weggenommen.

Öha richtig ist natürlich: Das Remis verwehrt.
Parent - - By Stefan Pohl Date 2014-02-15 18:27
Na Mahlzeit. Da es sich offensichtlich um einen Bug der LittleBlitzerGUI handelt, kann ich damit wohl meine gesamte LS-Rangliste einstampfen. Denn dieser Fehler ist ergebnisverzerrend, wie Thomas' gepostete Partie ganz klar beweist.
Naja, da ich auch gerade meine letzjährige Stromrechnung erhalten habe, und diese dank der Dauertesterei gar nicht komisch war, stelle ich mir sowieso gerade die Sinnfrage...
Werde das erst mal ein paar Tage sacken lassen, aber weiter wie bisher kann es nach dieser Bug-Entdeckung wohl nicht gehen.
Und eine andere wirklich brauchbare TestGUI gibt es nicht...Außer cutechess-cli und da kann ich keine Zwischenresultate sehen, was ich extrem unschön finde. Arena traue ich nicht, FritzGUI ist hübsch lackierter Müll und die Shredder GUi erlaubt keine Inkrements unter einer Sekunde...
MannOMann.

Stefan
Parent - - By Michael Scheidl Date 2014-02-15 18:45
Der Einfluß dieses Bugs dürfte allerdings nur mikroskopisch sein: Nur wenn eine Engine im 100. Halbzug einen Verlustzug spielt.
Parent - - By Stefan Pohl Date 2014-02-15 19:00
Michael Scheidl schrieb:

Der Einfluß dieses Bugs dürfte allerdings nur mikroskopisch sein: Nur wenn eine Engine im 100. Halbzug einen Verlustzug spielt.


Nicht unbedingt. Es könnte sein, daß die LittleblitzerGUI generell erst nach 101 Halbzügen remis gibt. Das wäre schon sehr unschön. Denkbar wäre anhand dieser Partie aber auch, daß die LBG evt. erst bei einer geringeren Zahl von Figuren auf dem Brett überhaupt mitzählt (bzgl. der 50 Züge Regel). Das wäre noch unschöner...

Ich werde mal ein bißchen in meiner Datenbank stöbern, aber das geht nur manuell und wird schwierig werden! Denn ich müßte alle relativ langen Gewinn- bzw. Verlustpartien durchsuchen, ob da irgendwo ein 50 Züge Remis hätte gegeben werden müssen.

Stefan
Parent - - By Thomas Zipproth Date 2014-02-15 19:12
Wenn es dir hilft, ich könnte sicherlich mit wenig Aufwand ein kleines Commandline Tool schreiben, das diese Suche automatisch macht.
D.h. finde alle Partien, die nach Inkrafttreten der 50 Züge Regel noch entschieden wurden.

Ich weiß, wie ärgerlich es ist, wenn man nach langer Zeit so einen Fehler findet.
Aber vielleicht tritt er ja wirklich nur sehr selten auf.

Ich hab zur Sicherheit nochmal Littlerblitzer bei mir kontrolliert:
Version 2.74
Die 50 Züge Regel kann man ja nicht explizit ausschalten, ergäbe ja auch keinen Sinn.
Andere relevante Einstellungen:
AdjudicateMateScore: 9000
AdjudicateMateMoves: 50
AdjudicateDrawMoves: 500

Thomas
Parent - - By Stefan Pohl Date 2014-02-15 19:56
Thomas Zipproth schrieb:

Wenn es dir hilft, ich könnte sicherlich mit wenig Aufwand ein kleines Commandline Tool schreiben, das diese Suche automatisch macht.
D.h. finde alle Partien, die nach Inkrafttreten der 50 Züge Regel noch entschieden wurden.

Ich weiß, wie ärgerlich es ist, wenn man nach langer Zeit so einen Fehler findet.
Aber vielleicht tritt er ja wirklich nur sehr selten auf.

Ich hab zur Sicherheit nochmal Littlerblitzer bei mir kontrolliert:
Version 2.74
Die 50 Züge Regel kann man ja nicht explizit ausschalten, ergäbe ja auch keinen Sinn.
Andere relevante Einstellungen:
AdjudicateMateScore: 9000
AdjudicateMateMoves: 50
AdjudicateDrawMoves: 500

Thomas


Wenn du so ein Tool schreiben könntest, wäre das natürlich super.
Deine email habe ich noch, ich würde dir dann in den nächsten Tagen (im Moment viel Arbeit...) mal meine LS-top10-tournament Partien zumailen. Das sind 55000 Partien, damit kannst du das schon mal antesten. Wenn du mir dann das Tool schickst, lasse ich es dann natürlich umgehend über meine komplette Datenbank mit 642000 Partien laufen...

Stefan
Parent - - By Thomas Zipproth Date 2014-02-15 20:32
Ok, dann werd ich mich mal an die Arbeit machen, das Ergebnis betrifft mich ja auch, weil ich auch mit LittleBlitzer teste.
Ich habe noch eine ls_best.pgn vom 08.05.2013, die sollte ausreichend sein.

Thomas
Parent - - By Stefan Pohl Date 2014-02-15 20:50
Thomas Zipproth schrieb:

Ok, dann werd ich mich mal an die Arbeit machen, das Ergebnis betrifft mich ja auch, weil ich auch mit LittleBlitzer teste.
Ich habe noch eine ls_best.pgn vom 08.05.2013, die sollte ausreichend sein.

Thomas


Ja, diese ältere Datenbank geht natürlich auch, auch die enthält ja 55000 Partien.
Wenn so ein Tool erst mal existiert, wäre es sicher auch interessant zu prüfen, ob andere GUIs in dieser Hinsicht bugfrei sind, oder nicht...

Meine email-adresse hast du ja hoffentlich noch? Ich schicke dir sicherheitshalber trotzdem demnächst noch mal die aktuelle ls-best.pgn, dann hast du noch mehr Partienmaterial und auch noch mal meine email als Absendeadresse...

Stefan
Parent - - By Thomas Zipproth Date 2014-02-16 14:19
Das Tool ist in einer Rohfassung fertig, und ls_best.pgn vom 08.05.2013 bereits ausgewertet.

Wie gut/schlimm die Ergebnisse aus Ranglistensicht sind, wage ich selber nicht zu beurteilen, aber eines ist klar:
Die aktuelle Version von LittleBlitzer hat sich damit erledigt.

ls_best.pgn:

55000  Anzahl Spiele.
  4397  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch einen Zug weitergespielt wurden.
   496  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch mehr als einen Zug weitergespielt wurden.
   259  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch entschieden (gewonnen oder verloren) wurden.

So sieht es Spiel für Spiel aus (Spiel Nr., Züge nach Remis, Draw oder Entschieden):

Code:
16540    1   Draw
16557    1   Draw
16558   65   Draw
16605    1   Draw
16612   23   1
16614    1   Draw
16618    1   Draw
16637    1   Draw
16644   47   1
16654    1   Draw
16662    1   Draw
16680    1   Draw
16692   25   1
16698    1   Draw
16741    1   Draw


Deine Email Adresse habe ich noch.

Thomas
Parent - - By Stefan Pohl Date 2014-02-16 14:30
Thomas Zipproth schrieb:

Das Tool ist in einer Rohfassung fertig, und ls_best.pgn vom 08.05.2013 bereits ausgewertet.

Wie gut/schlimm die Ergebnisse aus Ranglistensicht sind, wage ich selber nicht zu beurteilen, aber eines ist klar:
Die aktuelle Version von LittleBlitzer hat sich damit erledigt.

ls_best.pgn:

55000  Anzahl Spiele.
  4397  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch einen Zug weitergespielt wurden.
   496  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch mehr als einen Zug weitergespielt wurden.
   259  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch entschieden (gewonnen oder verloren) wurden.

So sieht es Spiel für Spiel aus (Spiel Nr., Züge nach Remis, Draw oder Entschieden):

Code:
16540    1   Draw
16557    1   Draw
16558   65   Draw
16605    1   Draw
16612   23   1
16614    1   Draw
16618    1   Draw
16637    1   Draw
16644   47   1
16654    1   Draw
16662    1   Draw
16680    1   Draw
16692   25   1
16698    1   Draw
16741    1   Draw


Deine Email Adresse habe ich noch.

Thomas


Das ging ja schnell!!!
Also eine Ergebnisverzerrungsqoute von 0.47% aller Partien (259 von 55000 Partien endeten nicht so, wie sie es hätten müssen, nämlich Remis). Allerdings "wirken" die zu unrecht verlorenen und die zu unrecht gewonnenen Partien in die entgegengesetzte Richtung auf die Fehlerquote (in Punkten gerechnet) ein, sodaß der Effekt in der Punkteverschiebung in den Ergebnissen sich eigentlich sehr verringern müßte und somit deutlich unter 0.47% liegen müßte...Wäre zumindest logisch. Kannst du das bestätigen?

Stefan
Parent - - By Stefan Pohl Date 2014-02-16 14:37
Stefan Pohl schrieb:


Also eine Ergebnisverzerrungsqoute von 0.47% aller Partien (259 von 55000 Partien endeten nicht so, wie sie es hätten müssen, nämlich Remis). Allerdings "wirken" die zu unrecht verlorenen und die zu unrecht gewonnenen Partien in die entgegengesetzte Richtung auf die Fehlerquote (in Punkten gerechnet) ein, sodaß der Effekt in der Punkteverschiebung in den Ergebnissen sich eigentlich sehr verringern müßte und somit deutlich unter 0.47% liegen müßte...Wäre zumindest logisch. Kannst du das bestätigen?

Stefan


Gedankenexperiment dazu: Wenn wir annehmen, daß es gleichwahrscheinlich ist, daß Weiß und Schwarzsiege zu unrecht erfolgen (durch diesen Bug), dann müßte sich der Effekt (in den Ergebnis-Punkten) theoretisch bei einer unendlich großen Partienzahl komplett verflüchtigen und bei großen, aber realen Partienzahlen mit hoher Wahrscheinlichkeit gegen Null bewegen. Es sei denn, bestimmte Engines sind überproportional oft betroffen...Kannst du dazu was sagen?

Stefan
Parent - By Stefan Pohl Date 2014-02-16 14:47
Stefan Pohl schrieb:

Stefan Pohl schrieb:


Also eine Ergebnisverzerrungsqoute von 0.47% aller Partien (259 von 55000 Partien endeten nicht so, wie sie es hätten müssen, nämlich Remis). Allerdings "wirken" die zu unrecht verlorenen und die zu unrecht gewonnenen Partien in die entgegengesetzte Richtung auf die Fehlerquote (in Punkten gerechnet) ein, sodaß der Effekt in der Punkteverschiebung in den Ergebnissen sich eigentlich sehr verringern müßte und somit deutlich unter 0.47% liegen müßte...Wäre zumindest logisch. Kannst du das bestätigen?

Stefan


Gedankenexperiment dazu: Wenn wir annehmen, daß es gleichwahrscheinlich ist, daß Weiß und Schwarzsiege zu unrecht erfolgen (durch diesen Bug), dann müßte sich der Effekt (in den Ergebnis-Punkten) theoretisch bei einer unendlich großen Partienzahl komplett verflüchtigen und bei großen, aber realen Partienzahlen mit hoher Wahrscheinlichkeit gegen Null bewegen. Es sei denn, bestimmte Engines sind überproportional oft betroffen...Kannst du dazu was sagen?

Stefan


Worst Case Szenario (in Elo) mal durchgerechnet: Eine Engine aus meinem LS-top-10-tournament wird maximal benachteiligt (oder bevorzugt), indem wir annehmen, daß sie alle zu unrecht nicht gegebenen 50-Züge-Remisen verliert. D.h. sie verliert pro Bug-Auftreten einen halben Punkt. Bei 10000 Partien mit einer Bugwahrscheinlichkeit von 0.47% sind das 10000*0.0047=47 /2 = 23.5 Punkte ungerechtfertigter Verlust. Also 0.235% Abweichung (auf 10000 Partien). Das sind ca. 1.6 Elo-Punkte...
Das ist nicht wirklich viel, meine ich, zumal das das Worst-Case-Szenario ist und die Realität wahrscheinlich deutlich weniger schlimm ausfallen wird.
Dennoch steige ich ab sofort auf cutechess-cli um, sofern der Black Mamba 2 Testrun ein Ergebnis hat, daß dem Testrun unter gleichen Bedingungen mit der LittleBlitzerGUI sehr nahe kommt...In 3.5 Tagen weiß ich mehr.

Stefan
Parent - - By Thomas Zipproth Date 2014-02-16 15:02
Stefan Pohl schrieb:


Gedankenexperiment dazu: Wenn wir annehmen, daß es gleichwahrscheinlich ist, daß Weiß und Schwarzsiege zu unrecht erfolgen (durch diesen Bug), dann müßte sich der Effekt (in den Ergebnis-Punkten) theoretisch bei einer unendlich großen Partienzahl komplett verflüchtigen und bei großen, aber realen Partienzahlen mit hoher Wahrscheinlichkeit gegen Null bewegen. Es sei denn, bestimmte Engines sind überproportional oft betroffen...Kannst du dazu was sagen?

Stefan


Das sehe ich eigentlich auch so.

Es gibt ja keinen Grund anzunehmen, das die Ergebnisverzerrung nicht symmetrisch ist.
Damit sollte sich das Ergebnis bei einer großen Anzahl von Partien dem mit korrekter Auswertung annähern.
Ich denke, das die Ranglisten Ergebnisse damit auch weiterhin ziemlich genau sind.

Theoretisch wäre es schon möglich, das einzelne Engines sich leicht unterschiedlich verhalten, je nachdem wie sie ziehen, wenn aus ihrer Sicht jeder Zug aufgrund der 50-Züge Regel gleichwertig ist.
Ich versuche mal das in die Auswertung mit aufzunehmen, allerdings ist das etwas komplizierter zu realisieren.

Anbei noch die Auswertung der neuesten ls_best.pgn:

ls_best.pgn 11.02.2014:

55000  Anzahl Spiele.
  4315  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch einen Zug weitergespielt wurden.
   517  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch mehr als einen Zug weitergespielt wurden.
   271  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch entschieden (gewonnen oder verloren) wurden.

Thomas
Parent - - By Stefan Pohl Date 2014-02-16 15:29
Thomas Zipproth schrieb:

Stefan Pohl schrieb:


Gedankenexperiment dazu: Wenn wir annehmen, daß es gleichwahrscheinlich ist, daß Weiß und Schwarzsiege zu unrecht erfolgen (durch diesen Bug), dann müßte sich der Effekt (in den Ergebnis-Punkten) theoretisch bei einer unendlich großen Partienzahl komplett verflüchtigen und bei großen, aber realen Partienzahlen mit hoher Wahrscheinlichkeit gegen Null bewegen. Es sei denn, bestimmte Engines sind überproportional oft betroffen...Kannst du dazu was sagen?

Stefan


Das sehe ich eigentlich auch so.

Es gibt ja keinen Grund anzunehmen, das die Ergebnisverzerrung nicht symmetrisch ist.
Damit sollte sich das Ergebnis bei einer großen Anzahl von Partien dem mit korrekter Auswertung annähern.
Ich denke, das die Ranglisten Ergebnisse damit auch weiterhin ziemlich genau sind.

Theoretisch wäre es schon möglich, das einzelne Engines sich leicht unterschiedlich verhalten, je nachdem wie sie ziehen, wenn aus ihrer Sicht jeder Zug aufgrund der 50-Züge Regel gleichwertig ist.
Ich versuche mal das in die Auswertung mit aufzunehmen, allerdings ist das etwas komplizierter zu realisieren.

Anbei noch die Auswertung der neuesten ls_best.pgn:

ls_best.pgn 11.02.2014:

55000  Anzahl Spiele.
  4315  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch einen Zug weitergespielt wurden.
   517  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch mehr als einen Zug weitergespielt wurden.
   271  Anzahl Spiele, die nach Eintritt der 50 Züge Regel noch entschieden (gewonnen oder verloren) wurden.

Thomas


Wie zu erwarten war: Bei einer ausreichend großen Partienzahl bekommt man eigentlich immer die (fast) gleichen Ergebnisse...Großes Volumen generiert Reproduzierbarkeit.

Jetzt bleiben 2 Fragen, nämlich
1) Sind einzelne Engines überproportional oft betroffen?
2) Tritt dieser Fehler nur bei der LittleBlitzerGUI auf? Oder gibt es auch in anderen GUIs diesen oder einen ähnlichen Bug?

Stefan

P.S: Jemand, der besser Englisch kann als ich, müßte das Problem mal auf talkchess kundtun. Larry Kaufman testet seine Komodo-Developmentversionen nämlich auch mit der LittleBlitzerGUI...
Parent - - By Thomas Zipproth Date 2014-02-16 21:29
Stefan Pohl schrieb:

Jetzt bleiben 2 Fragen, nämlich
1) Sind einzelne Engines überproportional oft betroffen?
2) Tritt dieser Fehler nur bei der LittleBlitzerGUI auf? Oder gibt es auch in anderen GUIs diesen oder einen ähnlichen Bug?


Nach einigem Nachdenken ist mir doch noch eine einfache Lösung zur Ermittlung der Engine Statistiken eingefallen.
Hier die Werte, die Zahl ist ingesamt doppelt so hoch (271*2), da ja bei jedem Spiel 2 Engines betroffen sind.
Übrigens durchaus überraschende Werte, wie ich finde (Anzahl - gewonnen - verloren).

Code:
count  win lost name

95 -  18   77 - DON 1.0b x64s
73 -  18   55 - Stockfish 140129 x64s
50 -  48    2 - Strelka 5.5 x64
50 -  17   33 - Robbolito 0.085g3 x64
47 -  27   20 - Komodo TCECr x64
47 -  25   22 - Mars 1 avx
46 -  39    7 - Gull 2.8 x64
44 -  24   20 - PanChess 00.537 x64
38 -  17   21 - Fire 3 x64s
33 -  25    8 - Houdini 4 x64
19 -  13    6 - Critter 1.6a x64


CuteChess habe ich noch überprüft, dort tritt dieser Fehler nicht auf.

Thomas
Parent - By Stefan Pohl Date 2014-02-17 05:19
Thomas Zipproth schrieb:

Stefan Pohl schrieb:

Jetzt bleiben 2 Fragen, nämlich
1) Sind einzelne Engines überproportional oft betroffen?
2) Tritt dieser Fehler nur bei der LittleBlitzerGUI auf? Oder gibt es auch in anderen GUIs diesen oder einen ähnlichen Bug?


Nach einigem Nachdenken ist mir doch noch eine einfache Lösung zur Ermittlung der Engine Statistiken eingefallen.
Hier die Werte, die Zahl ist ingesamt doppelt so hoch (271*2), da ja bei jedem Spiel 2 Engines betroffen sind.
Übrigens durchaus überraschende Werte, wie ich finde (Anzahl - gewonnen - verloren).

Code:
count  win lost name

95 -  18   77 - DON 1.0b x64s
73 -  18   55 - Stockfish 140129 x64s
50 -  48    2 - Strelka 5.5 x64
50 -  17   33 - Robbolito 0.085g3 x64
47 -  27   20 - Komodo TCECr x64
47 -  25   22 - Mars 1 avx
46 -  39    7 - Gull 2.8 x64
44 -  24   20 - PanChess 00.537 x64
38 -  17   21 - Fire 3 x64s
33 -  25    8 - Houdini 4 x64
19 -  13    6 - Critter 1.6a x64


CuteChess habe ich noch überprüft, dort tritt dieser Fehler nicht auf.

Thomas


Super! Vielen Dank für deine Auswertungen.
Am schlimmsten ist es also bei DON. Don verliert auf 10000 Partien 29.5 Punkte (59 Punkte Verlust, die eigentlich Remisen hätten sein sollen, also (77-18)/2) - ca. 2 Elo. Strelka gewinnt ca. 1.6 Elo dazu. Bei den anderen Engines ist der Effekt deutlich geringer und liegt im +/-1 Elo Bereich.
Damit kann (und muß) ich wohl leben...Ab sofort nutze ich CuteChess. Der Probetestlauf von Black Mamba 2 läuft bisher sehr zufriedenstellend. Nach 2200 Partien ist der Score fast identisch zu dem Endergebnis von Black Mamba 2 unter der LittleBlitzerGUI. Auch die gelegentlichen Crashes von Black Mamba 2 treten bei Cutechess ebenso auf, stören aber auch CuteChess nicht (ebenso wenig wie die LBG).

Stefan
Parent - - By Wolfram Bernhardt Date 2014-02-16 11:03
Hi!

Der oder die Autoren von LittleBlitzer freuen sich bestimmt auch über einen entsprechenden Hinweis.
Parent - By Stefan Pohl Date 2014-02-16 11:12
Wolfram Bernhardt schrieb:

Hi!

Der oder die Autoren von LittleBlitzer freuen sich bestimmt auch über einen entsprechenden Hinweis.


Schön wärs!
Den Bug mit den nicht verschwundenen En-passant-Bauern habe ich dem Autor auf seiner Website mitgeteilt. Vor Monaten. Keinerlei Reaktion. Geschweige denn ein BugFix.

Stefan
Parent - By Stefan Pohl Date 2014-02-15 19:59
Stefan Pohl schrieb:

Es könnte sein, daß die LittleblitzerGUI generell erst nach 101 Halbzügen remis gibt. Das wäre schon sehr unschön. Denkbar wäre anhand dieser Partie aber auch, daß die LBG evt. erst bei einer geringeren Zahl von Figuren auf dem Brett überhaupt mitzählt (bzgl. der 50 Züge Regel). Das wäre noch unschöner...


Denkbar wäre aufgrund dieser einen Partie auch, daß Königsschlagzüge den 50Zug-Zähler nicht auf Null setzen. Wäre auch sehr übel.

Stefan
Parent - - By Jörg Oster Date 2014-02-15 20:00
Stefan Pohl schrieb:

Na Mahlzeit. Da es sich offensichtlich um einen Bug der LittleBlitzerGUI handelt, kann ich damit wohl meine gesamte LS-Rangliste einstampfen. Denn dieser Fehler ist ergebnisverzerrend, wie Thomas' gepostete Partie ganz klar beweist.
Naja, da ich auch gerade meine letzjährige Stromrechnung erhalten habe, und diese dank der Dauertesterei gar nicht komisch war, stelle ich mir sowieso gerade die Sinnfrage...
Werde das erst mal ein paar Tage sacken lassen, aber weiter wie bisher kann es nach dieser Bug-Entdeckung wohl nicht gehen.
Und eine andere wirklich brauchbare TestGUI gibt es nicht...Außer cutechess-cli und da kann ich keine Zwischenresultate sehen, was ich extrem unschön finde. Arena traue ich nicht, FritzGUI ist hübsch lackierter Müll und die Shredder GUi erlaubt keine Inkrements unter einer Sekunde...
MannOMann.

Stefan

Zwischenresultate kannst du dir in cutechess-cli mit der Option
Code:
-ratinginterval 10

anzeigen lassen. Ich lasse mir hier alle 10 Partien das Zwischenresultat anzeigen.
Oder meinst du was anderes?
Parent - - By Stefan Pohl Date 2014-02-15 20:03
Jörg Oster schrieb:

Stefan Pohl schrieb:

Na Mahlzeit. Da es sich offensichtlich um einen Bug der LittleBlitzerGUI handelt, kann ich damit wohl meine gesamte LS-Rangliste einstampfen. Denn dieser Fehler ist ergebnisverzerrend, wie Thomas' gepostete Partie ganz klar beweist.
Naja, da ich auch gerade meine letzjährige Stromrechnung erhalten habe, und diese dank der Dauertesterei gar nicht komisch war, stelle ich mir sowieso gerade die Sinnfrage...
Werde das erst mal ein paar Tage sacken lassen, aber weiter wie bisher kann es nach dieser Bug-Entdeckung wohl nicht gehen.
Und eine andere wirklich brauchbare TestGUI gibt es nicht...Außer cutechess-cli und da kann ich keine Zwischenresultate sehen, was ich extrem unschön finde. Arena traue ich nicht, FritzGUI ist hübsch lackierter Müll und die Shredder GUi erlaubt keine Inkrements unter einer Sekunde...
MannOMann.

Stefan

Zwischenresultate kannst du dir in cutechess-cli mit der Option
Code:
-ratinginterval 10

anzeigen lassen. Ich lasse mir hier alle 10 Partien das Zwischenresultat anzeigen.
Oder meinst du was anderes?


Echt? Welche cutechess-cli Version ist denn das? Ich hatte vor ca. einem Jahr eine Version ausprobiert, da ging das entweder nicht, oder es war ein nicht-dokumentierter Befehl, von dem ich nichts wußte.

Stefan
Parent - - By Jörg Oster Date 2014-02-15 20:57
Das ist die 0.6.0.
Ich meine, diese Option wäre aber schon länger verfügbar. Kann mich aber auch irren.
Keinesfalls solltest du jedoch die Engine-Option 'whitepov' verwenden. Da hat cutechess-cli wohl noch einen Bug.
Ich hatte diese Option eine Zeit lang eingesetzt, um einen korrekten Partiebewertungsgraph in ScidvsPC zu erhalten. Bis mir auffiel, dass etliche Spiele dadurch falsch entschieden wurden.

Code:
whitepov
    Invert the engine's scores when it plays black. This option should be used with engines that always report scores from white's perspective.
Parent - - By Stefan Pohl Date 2014-02-16 10:56
Jörg Oster schrieb:

Das ist die 0.6.0.
Ich meine, diese Option wäre aber schon länger verfügbar. Kann mich aber auch irren.
Keinesfalls solltest du jedoch die Engine-Option 'whitepov' verwenden. Da hat cutechess-cli wohl noch einen Bug.
Ich hatte diese Option eine Zeit lang eingesetzt, um einen korrekten Partiebewertungsgraph in ScidvsPC zu erhalten. Bis mir auffiel, dass etliche Spiele dadurch falsch entschieden wurden.

Code:
whitepov
    Invert the engine's scores when it plays black. This option should be used with engines that always report scores from white's perspective.



Vielen Dank. Ich sags ja: Du bist der Auskenner!
Habe jetzt cutechess 0.6.0 in Betrieb genommen (mit der Anzeige der Zwischenstände (-ratinginterval 1)). Nachdem ich ca. 1 Stunde lang  auf beiden Rechnern die Kommandozeile in Teilen für jede Engine des LS-top-10-tournaments in einem Textfile zusammengestellt und dann anschließend per Drag&Drop zusammengesetzt habe, stelle ich fest, so kann man cutechess einigermaßen handlen...
Nun lasse ich mal den letzten Testlauf, den ich mit der LittleBlitzerGUI gemacht habe (Black Mamba 2) mit cutechess durchlaufen. Mal sehen, ob und wieviel das Ergebnis abweicht (ich hoffe möglichst wenig, denn dann könnte ich bei laufendem Ranglistenbetrieb die GUI wechseln...).
Daumen drücken!
Leider zeigt die Option -ratinginterval beim Ergebnis nur die Prozentzahl des Erfolgsscores ohne Nachkommastelle an. Das ist natürlich nicht sehr genau. Aber damit muß ich dann wohl leben.

Komisch ist, daß cutechess bei Don 1.0b eine Warning bzgl. der Option Split Depth ("Invalid UCI option") auswirft, da ich diese Option gar nicht benutze/setze (warum auch, ich spiele ja mit Threads=1). Merkwürdig. Scheint aber den Betrieb nicht zu stören. Bei Stockfish, von dem Don ja abgeleitet wurde, taucht die Warning nicht auf. Auch seltsam.

Stefan
Parent - - By Stefan Pohl Date 2014-02-16 11:09
Stefan Pohl schrieb:

Jörg Oster schrieb:

Das ist die 0.6.0.
Ich meine, diese Option wäre aber schon länger verfügbar. Kann mich aber auch irren.
Keinesfalls solltest du jedoch die Engine-Option 'whitepov' verwenden. Da hat cutechess-cli wohl noch einen Bug.
Ich hatte diese Option eine Zeit lang eingesetzt, um einen korrekten Partiebewertungsgraph in ScidvsPC zu erhalten. Bis mir auffiel, dass etliche Spiele dadurch falsch entschieden wurden.

Code:
whitepov
    Invert the engine's scores when it plays black. This option should be used with engines that always report scores from white's perspective.



Vielen Dank. Ich sags ja: Du bist der Auskenner!
Habe jetzt cutechess 0.6.0 in Betrieb genommen (mit der Anzeige der Zwischenstände (-ratinginterval 1)). Nachdem ich ca. 1 Stunde lang  auf beiden Rechnern die Kommandozeile in Teilen für jede Engine des LS-top-10-tournaments in einem Textfile zusammengestellt und dann anschließend per Drag&Drop zusammengesetzt habe, stelle ich fest, so kann man cutechess einigermaßen handlen...
Nun lasse ich mal den letzten Testlauf, den ich mit der LittleBlitzerGUI gemacht habe (Black Mamba 2) mit cutechess durchlaufen. Mal sehen, ob und wieviel das Ergebnis abweicht (ich hoffe möglichst wenig, denn dann könnte ich bei laufendem Ranglistenbetrieb die GUI wechseln...).
Daumen drücken!
Leider zeigt die Option -ratinginterval beim Ergebnis nur die Prozentzahl des Erfolgsscores ohne Nachkommastelle an. Das ist natürlich nicht sehr genau. Aber damit muß ich dann wohl leben.

Komisch ist, daß cutechess bei Don 1.0b eine Warning bzgl. der Option Split Depth ("Invalid UCI option") auswirft, da ich diese Option gar nicht benutze/setze (warum auch, ich spiele ja mit Threads=1). Merkwürdig. Scheint aber den Betrieb nicht zu stören. Bei Stockfish, von dem Don ja abgeleitet wurde, taucht die Warning nicht auf. Auch seltsam.

Stefan


Falls jemand auch auf cutechess umsteigen will, so sieht das Textfile aus, aus dem ich per Drag&Drop (in ein neues, leeres Textfile) die Kommandozeile für cutechess zusammensetze:

cutechess060.exe

*** LS top10 tournament Engines ***
-engine name="Houdini 4 x64" cmd="Engines.UCI\Houdini 4 Chess\Houdini_4_Standard_x64B.exe" proto=uci restart=on option.Threads=1 option.GaviotaTbCache=4 option.NalimovCache=4
-engine name="Stockfish 140129 x64s" cmd="Engines.UCI\stockfish_140129_x64s.exe" proto=uci restart=on option.Threads=1 option."Idle Threads Sleep"=false
-engine name="Komodo TCECr x64" cmd="Engines.UCI\komodo-tcecr-64bit.exe" proto=uci restart=on option.Threads=1
-engine name="DON 1.0b x64s" cmd="Engines.UCI\DON 1.0b pop64.exe" proto=uci restart=on option.Threads=1 option."Idle Threads Sleep"=false
-engine name="Gull 2.8 x64" cmd="Engines.UCI\Gull 2.8 beta x64.exe" proto=uci restart=on option.Threads=1 option."Large memory pages"=false
-engine name="Critter 1.6a x64" cmd="Engines.UCI\Critter_1.6a_64bit.exe" proto=uci restart=on option.Threads=1
-engine name="Strelka 5.5 x64" cmd="Engines.UCI\Strelka_5.5x64.exe" proto=uci restart=on
-engine name="Fire 3 x64s" cmd="Engines.UCI\Fire 3.0 x64s.exe" proto=uci restart=on option.Threads=1
-engine name="Mars 1 avx" cmd="Engines.UCI\Mars_1_AVX_x64.exe" proto=uci restart=on option.Threads=1
-engine name="PanChess 00.537 x64" cmd="Engines.UCI\PanChess 00.537.x64.exe" proto=uci restart=on option.Threads=1
-engine name="Robbolito 0.085g3 x64" cmd="Engines.UCI\RobboLito_0085g3_x64.exe" proto=uci restart=on

*** Sonstige Engines ***
-engine name="Black Mamba 2 x64" cmd="Engines.UCI\BlackMamba_2_x64.exe" proto=uci restart=on option.Threads=1

*** Rest für kompletten Testrun auf einem PC ***
-each option.Hash=64 tc=/45+0.5 timemargin=10 -tournament gauntlet -games 2 -rounds 500 -concurrency 3 -ratinginterval 1 -wait 50 -repeat -recover -openings file=fq500n.pgn format=pgn order=sequential plies=16 -pgnout results.pgn min

*** Rest für PC A ***
-each option.Hash=64 tc=/45+0.5 timemargin=10 -tournament gauntlet -games 2 -rounds 250 -concurrency 3 -ratinginterval 1 -wait 50 -repeat -recover -openings file=fq500nA.pgn format=pgn order=sequential plies=16 -pgnout results.pgn min

*** Rest für PC B ***
-each option.Hash=64 tc=/45+0.5 timemargin=10 -tournament gauntlet -games 2 -rounds 250 -concurrency 3 -ratinginterval 1 -wait 50 -repeat -recover -openings file=fq500nB.pgn format=pgn order=sequential plies=16 -pgnout results.pgn min

(zu beachten ist, daß ich das cutechess .exe-file in cutechess060.exe umbenannt habe, damit ich weiß, mit welcher Version ich überhaupt arbeite.)
Man nimmt also zunächst von oben cutechess060.exe, dann die gewünschten Engines mit ihren Spezifikationen. In diesem Fall zuerst natürlich Black Mamba 2, weil diese ja das Gauntlet gegen alle anderen spielt und deshalb an erster Stelle stehen muß. Und dann hängt man den "Rest" an - wer nur einen PC benutzt, nimmt den Rest Nr.1 (für kompletten Testrun auf einem PC...). Die beiden anderen Reste sind für mich, und meine 2 Notebooks.

Das ergibt dann die weltlängste Kommandozeile...Aber so läßt sie sich in ca. 1-2 Minuten zusammenstellen...
Das "min" ganz am Schluß nach -pgnout results.pgn kann man auch weglassen, dann werden Bewertungen und Suchtiefen und Rechenzeiten in die Partie-Notation geschrieben. Darauf verzichte ich, weil mir das meine Datenbanken viel zu sehr aufbläht!

Stefan
Parent - - By Jörg Oster Date 2014-02-16 12:00
Hallo Stefan,

du hast dir das sehr schön strukturiert. 2 oder 3 kleine Anmerkungen hätte ich noch. 

format=pgn und order=sequential kannst du beides weglassen, da Standard.

proto=uci und restart=on kannst du noch hinter -each  unterbringen, dann werden die einzelnen Engine-Befehle etwas kürzer.
Also so:
Code:
-each proto=uci restart=on option.Hash=64 tc=/45+0.5 timemargin=10 -tournament gauntlet -games 2 -rounds 500 -concurrency 3 -ratinginterval 1 -wait 50 -repeat -recover -openings file=fq500n.pgn plies=16 -pgnout results.pgn min

Brauchst du wirklich nach jedem Spiel das Rating? Die Windows-Konsole ist nicht die schnellste ...
Ich denke mal, ratinginterval 10 sollte doch genügen. Das Ergebis jeder Partie zeigt cutechess ja auch so an.
Wegen des Scores mit 2 Nachkommastellen, würde ich Ilari einfach mal anmailen. Vielleicht kann er das für die nächste Version abändern.

So, dann drücke ich die Daumen, dass alles glatt durchläuft und passt!
Jörg
Parent - - By Stefan Pohl Date 2014-02-16 12:25 Edited 2014-02-16 12:31
Jörg Oster schrieb:

Hallo Stefan,

du hast dir das sehr schön strukturiert. 2 oder 3 kleine Anmerkungen hätte ich noch. 

format=pgn und order=sequential kannst du beides weglassen, da Standard.

proto=uci und restart=on kannst du noch hinter -each  unterbringen, dann werden die einzelnen Engine-Befehle etwas kürzer.
Also so:
Code:
-each proto=uci restart=on option.Hash=64 tc=/45+0.5 timemargin=10 -tournament gauntlet -games 2 -rounds 500 -concurrency 3 -ratinginterval 1 -wait 50 -repeat -recover -openings file=fq500n.pgn plies=16 -pgnout results.pgn min

Brauchst du wirklich nach jedem Spiel das Rating? Die Windows-Konsole ist nicht die schnellste ...
Ich denke mal, ratinginterval 10 sollte doch genügen. Das Ergebis jeder Partie zeigt cutechess ja auch so an.
Wegen des Scores mit 2 Nachkommastellen, würde ich Ilari einfach mal anmailen. Vielleicht kann er das für die nächste Version abändern.

So, dann drücke ich die Daumen, dass alles glatt durchläuft und passt!
Jörg


Ja, ohne Struktur kannst du so eine Kommandozeile gar nicht erstellen, das endet garantiert im Chaos. Glaube, daß cutechess nicht dafür gedacht ist, eine Engine gegen 11 Gegner spielen zu lassen...
Danke für deine Anmerkungen. Daß die Windoofs-Konsole langsam ist, ist klar. Bei meinem Spieltempo und den immer nur 3 parallel laufenden Partien läuft im Schnitt aber nur alle 50-60 Sekunden ein Ergebnis auf, das sollte also nicht nennenswert bremsen. Aber in Zukunft werde ich das wohl dann mal auf 10 hochdrehen. Nur jetzt beim allerersten Testrun wollte ich up-to-date sein...
Und was proto=uci angeht, so muß ich dir leider ausnahmsweise widersprechen: Es könnte ja auch sein, daß in der Zukunft mal eine WinBoard-Engine getestet werden muß. Dann würde das Verschieben in den "each"-Bereich nicht funktionieren und ich müßte alles umschreiben! Und unvorstellbar lang ist die fertige Kommandozeile so oder so...
Und 2 Nachkommastellen bräuchte ich gar nicht. ich wäre schon mit einer glücklich.
By the way: Weißt du zufällig, ob die nachkommafreie Scoreanzeige gerundet ist, oder ob die Nachkommastellen einfach weggeschnitten werden?

Stefan

PS: Du hattest Recht. Dein Patch scorte im praktischen Spiel nicht besser. Als ich heute früh nach Hause kam, war der Score dieser Stockiversion genauso, wie der der letzten Version, wo ich ja nach knapp 6000 Partien abgebrochen hatte. Also keine Steigerung. Wie du schon korrekt vorhergesagt hattest. Daher konnte ich diesen Test guten Gewissens abbrechen...
Parent - - By Tobias Date 2014-02-16 13:19
Hallo Stefan,

um die Lesbarkeit der Kommandozeile zu erhöhen, könntest du probieren die ganzen engine-spezifischen Sachen in einer engines.json Datei unterzubringen.
Siehe hier: http://immortalchess.net/forum/showthread.php?t=21329&langid=1

Schöne Grüße

Tobias
Parent - - By Stefan Pohl Date 2014-02-16 13:43
Tobias schrieb:

Hallo Stefan,

um die Lesbarkeit der Kommandozeile zu erhöhen, könntest du probieren die ganzen engine-spezifischen Sachen in einer engines.json Datei unterzubringen.
Siehe hier: <a class='ura' href='http://immortalchess.net/forum/showthread.php?t=21329&langid=1'>http://immortalchess.net/forum/showthread.php?t=21329&langid=1</a>

Schöne Grüße

Tobias


Danke für den Hinweis. Das hatte ich mir auch angesehen, aber ich finde diese Datei bei weitem kryptischer als mein Textfile, aus dem ich mir die Kommandozeile flott zusammenbaue:
[     
   {
      "command" : "Houdini_3_Pro_x64_1",
      "name" : "Hou",
      "options" : [
         {
            "name" : "Hash",
            "value" : 64
         },
         {
            "name" : "Threads",
            "value" : 1
         }
      ],
      "protocol" : "uci"
     
   },
   {
      "command" : "Deep_Rybka_41",
      "name" : "Ryb",
      "options" : [
         {
            "name" : "Hash",
            "value" : 64
         },
         {
           "name" : "Max CPUs",
           "value" : 1
         }
      ],
      "protocol" : "uci"
     
   },
   {
      "command" : "komodo51r2",
      "name" : "Ko",
      "options" : [
         {
            "name" : "Hash",
            "value" : 64
         },
         {
            "name" : "Threads",
            "value" : 1
         }
      ],
      "protocol" : "uci"
     
   },
   {
      "command" : "stockfish-3-64-pop-ja",
      "name" : "SF",
      "options" : [
         {
            "name" : "Hash",
            "value" : 64
         },
         {
           "name" : "Threads",
           "value" : 1
         }
      ],
      "protocol" : "uci"
     
   } 
]

???? Das ist doch in höchstem Maße unübersichtlich... Meine vorgefertigten Kommandozeilenfragmente, die ich mir dann zügig per drag&drop zusammensetzen kann, finde ich da beträchtlich lesbarer.

Stefan
Parent - - By Jörg Oster Date 2014-02-16 14:41
Ja, damit konnte ich mich auch nie anfreunden.
Mit einer einfachen Textdatei bin ich eindeutig schneller und flexibler. Zumal man unter Linux ins Terminal Texte rüberkopieren kann. Und auch raus. 
Parent - By Stefan Pohl Date 2014-02-16 14:48
Jörg Oster schrieb:

Ja, damit konnte ich mich auch nie anfreunden.
Mit einer einfachen Textdatei bin ich eindeutig schneller und flexibler. Zumal man unter Linux ins Terminal Texte rüberkopieren kann. Und auch raus. 


Unter Windoofs 7 kann man Texte glücklicherweise auch aus Textdateien ins Terminal kopieren. Sonst würde meine Methode auch nicht funktionieren!

Stefan
Parent - - By Karl Müller Date 2014-02-16 15:00
ja - irgendwie meine Rede . . . traue keiner GUI: daher, irgendwie sind alle Ranglisten aufgrund der Bugs der GUI fragwürdig. Die GUI entscheidet insofern ab und zu das Spiel und das darf einfach nicht sein

wie ich ja bereits erwähnte, mindestens 200 Elo-Punkte wegen GUI-Bug auf Schach.de verloren, die dann immer sehr mühselig wieder erspielt werden müssen.
Parent - - By Stefan Pohl Date 2014-02-16 15:37 Edited 2014-02-16 15:40
Karl Müller schrieb:

ja - irgendwie meine Rede . . . traue keiner GUI: daher, irgendwie sind alle Ranglisten aufgrund der Bugs der GUI fragwürdig. Die GUI entscheidet insofern ab und zu das Spiel und das darf einfach nicht sein



Natürlich darf das nicht sein. Allerdings ist eine Fehlerquote von ca. 0.5%, die noch dazu nur halbe Punkte verfälschend vergibt und das noch dazu gleichwahrscheinlich (zumindest gehe ich davon aus) für Weiß und Schwarz eine sehr geringe Abweichung. Mit allergrößter Wahrscheinlichkeit deutlich unter 1.5 Elo pro Engine in einer Rangliste. Das ist sehr, sehr wenig. Zumal 1.5 Elo Abweichung schon der WorstCase sind und es de facto wahrscheinlich weniger als 1 Elopunkt ist.
Wenn mein Probe-Testrun von Black Mamba 2 unter cutechess-cli so verläuft, wie ich es erwarte und erhoffe, nämlich dergestalt, daß das Ergebnis fast identisch zu dem Ergebnis des gleichen Testruns unter der LittleBlitzerGUI ist, dann werde ich für die LS-Rangliste ab sofort cutechess-cli verwenden und diesen Bug in Zukunft somit vermeiden.
Meine Homepage arbeite ich demnächst entsprechend um und weise auch dort auf das Problem hin. Aber jetzt muß ich erst mal ins Bett, habe mich nach der Nachtschicht gleich an den Rechner gesetzt, um cutechess-cli in Betrieb zu nehmen und das Ganze hier zu erörtern. Jetzt bin ich zu müde.
Bis morgen

Stefan
Parent - By Tom Paul Date 2014-02-16 18:22
Wahrscheinlich sind Engines die sehr oft Remis spielen am meisten betroffen.
Welche Engines gibt es denn da?
Up Topic Hauptforen / CSS-Forum / 50 Züge Regel - Fehler in Little Blitzer oder Stockfish

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill