Liebe Schachfreunde
In den letzten Tagen habe ich mich mit dem Testen von Schachprogrammen beschäftigt. Nach all meinen Erfahrungen frage ich mich ernsthaft, wie und ob es überhaupt möglich ist, die sich jeweils ergebenden Testresultate miteinander zu vergleichen. Mir ist nämlich aufgefallen, dass sehr viele Faktoren mitspielen, die das Testen, bzw. die Resultate beeinflussen (können).
- Grösse der Hashtables
- welche EGTB's sind im Einsatz
- Prozessor Typ: Intel oder AMD
- welche EXE-Datei (POPCNT, SSSE, AVX2, BMI2, usw. auf welcher CPU)
- Konfiguration der Engines
- Tests nacheinander ausgeführt oder nicht
- Hashtables vor jedem Test gelöscht oder nicht
- mit wie vielen CPU's im Einsatz wird getestet
- Software (CB, Fritz & Co.) vor jedem Test neu gestartet oder nicht
- wurde Windows vor jedem Test neu gestartet oder nicht
- welche Anwendungen/Prozesse laufen unter Windows und/oder sind im Autostart aktiviert/deaktiviert
- usw., usw.
Ich habe sehr viele Kombinationen geprüft. Fazit: Die Resultate lassen sich selbst unter jeweils gleichen Bedingungen schlicht nicht vergleichen. Dies betrifft vor allem die heute üblichen Schachprogramme, die Mehrprozessor fähig sind. Und faszinierend wie erschreckend: Die Resultate können sich je nach Stellung ganz massgeblich unterscheiden. Kurzum bin ich heute total verunsichert und zweifle an jedem Test bzw. deren Vergleiche. Nicht einmal der jeweilige Neustart von Windows unter sonst gleichen Bedingungen bringt identische Resultate. So können also Resultate von mir, Hans oder Peter zuhause auf angeblich gleichen Computern nur deren Resultate aufzeigen, ohne dass schliesslich schlüssige Vergleiche möglich sind.
Es bleibt somit die Frage offen, was die ganze Testarbeit bringt. Oder soll man besser Zehntausende von Partien zwischen den Programmen laufen lassen in der Hoffnung, dass sich dann bezüglich Spielstärke der Spreu vom Weizen trennt oder sich zumindest aufgrund der Menge von Partien nivelliert?
Zurück bleibt ein ratloser Schachfan.
Viele Grüsse
Kurt
Hallo Volker
Nein, das habe ich nicht notiert, sondern mir jeweils nur stichwortartig für Engine X oder Y die spürbaren zeitlichen Lösungsunterschiede bei unterschiedlichen - und erstaunlicherweise auch gleichen - Bedingungen notiert oder verinnerlicht. Auffällig waren jedoch die Unterschiede zu erkennen
- ob Hashtables gelöscht/nicht gelöscht wurden
- die Schachsoftware jeweils neu gestartet wurde oder eben nicht
Und wenige Male ist es gar vorgekommen, dass die zeitlichen Lösungsunterschiede nach einem Windows-Neustart und Neustart der Software unerklärlich unterschiedlich ausgefallen sind. Ich glaube, unter anderem war es mit Rems M-091224 Rand Op MPV=4, bmi2 auf AMD Ryzen 7 6800 H, wo die durchschnittliche Lösungszeit (immer mehrere Versuche) bei einer Stellung 74 Sek. betrug, im besten Fall nur 9 Sek (!!), im schlechtesten Fall 182 Sek (3 Min 2 Sek.) und das wie gesagt unter gleichen Bedingungen (Windows und Software neu gestartet, Hashtables gelöscht).
Vergessen zu erwähnen habe ich, dass die geringsten Unterschiede unter jeglichen Bedingungen beim automatischen Ablauf einer Testuite unter Fritz passieren, wenn man jeweils das Gesamtergebnis und nicht die einzelnen Lösungszeiten betrachtet und miteinander vergleicht. Aber von dieser speziellen Testmethode kann ich nicht profitieren, wenn ich eine mir in einer GM- oder sonstigen Partie vorkommende Stellung mit verschiedenen Programmen testen will. Natürlich gehe ich mit anderen Usern einig, welche die Meinung vertreten "Hans wie Heiri" oder es spielt doch kaum eine Rolle, ob die Engine die Lösung beispielsweise in 3 oder 7 Sekunden gefunden hat.
Gruss
Kurt
Hallo Andreas
Du hast die heutige Situation sehr gut beschrieben und im Prinzip meine Aussagen untermauert, dass sich beim Testen fast nichts mehr reproduzieren lässt und aus verschiedenen Gründen selten die gleichen Ergebnisse ausgegeben werden. Und ja, ich stimme dir zu: die ganze Testarbeit bringt nicht wirklich etwas. Einen Stärkevergleich bringt wohl nur noch das Spielen von wahnsinnig vielen Partien, notwendig angesichts des Umstandes, dass eine sehr hohe Zahl von Partien mit Remis endet. Ich habe ja schon in früheren Postings darauf hingewiesen, dass alle bisherigen Testsuiten nicht aussagekräftig sind. Das wird insbesondere dadurch untermauert, dass Stockfish praktisch bei allen Testsuiten im Vergleich zu den "Top-Test-Engines" miserabel abschneidet. Sobald aber Partien gespielt werden, findet man Stockfish fast ausnahmslos immer an der Spitze oder in den ersten Rängen. Damit ist eigentlich alles gesagt.
Gruss
Kurt
Hallo Peter
Mit deinen Ausführungen bestätigst du eigentlich nur meine These, dass es mit den wenigen Testsuites und viel zu wenigen Stellungen nicht möglich ist, einen brauchbaren Vergleich der Spielstärke von Engines zu ermitteln. Partien werden überall zu Tausenden gespielt. Und da prinzipiell jeder Zug in einer Schachpartie als Stellungstest verstanden werden kann, ist klar, dass die Resultate von vielen Partien unsagbar besser dazu dienen, die Spielstärke von Engines abzubilden. Stephan Pohl lässt grüssen ...
Gruss
Kurt
Was mich immer wieder wundert: Wenn ein Schachprogramm gegen ein anderes spielt, wird jeder kleinste Unterschied gleich in Centi-Elo (eigentlich Centi-Celo) gemessen, als wäre das unbedingt nötig. Dabei sind die meisten dieser Programme heute so stark, dass ein Vergleich mit menschlicher Spielstärke kaum noch Sinn ergibt – zumindest nicht ohne spezielle Vorgaben wie Zeitbegrenzungen oder Figurennachteile. Trotzdem besteht bei Engine-Tests oft der Zwang, alles in Elo-Werten auszudrücken. Dabei haben diese Werte bei Computern längst kaum noch etwas mit menschlichem Elo zu tun.
Besonders absurd wird es, wenn man sich über Umrechnungen bei Stellungstests aufregt, obwohl man dabei einfach die Ergebnisse aus Gewinn, Remis und Niederlage zählt – genauso wie man es beim Spielen tut. Programme wie EloStatTS machen das automatisch, und auch manuell geht es ganz einfach: Man legt Lösungstabellen nebeneinander und schaut für jede Stellung, welche Engine sie besser behandelt hat. Man beachtet, ob sie gelöst wurde, wie schnell, und ob es klare Unterschiede gibt. Diese Daten lassen sich dann bequem z.B. mit ELOStat (von Frank Schubert) analysieren.
Dass dabei auch wieder Celo-Werte entstehen, erklärt sich von selbst. Natürlich muss man es nicht tun, und wer sich durch diese Anwendung der Elo-Messung persönlich angegriffen fühlt, wirkt auf mich regelmäßig überempfindlich.
Warum ich diese Methode schätze – also die WDL-Umrechnung (Win-Draw-Loss) und den Vergleich Engine-gegen-Engine, Stellung für Stellung – liegt daran, dass man damit direkt die Leistungsunterschiede sichtbar machen kann. Und zwar nicht pauschal über eine ganze Testreihe, sondern genau für jede einzelne Stellung und jeden Durchgang. So lassen sich auch Fehlerbereiche besser abschätzen.
Was viele übersehen: Nicht bei jedem Test scheitern die Engines an denselben Stellungen. Manche sind einfach zu schwer oder ungeeignet für bestimmte Hardware oder Software. Und selbst bei bekannten Schwankungen in den Suites (Testreihen) sind die Unterschiede bei einzelnen Engines und einzelnen Stellungen viel entscheidender.
MEA berechnet Elo übrigens auch, wenn auch etwas anders. Es berücksichtigt mehrere Lösungen pro Stellung und vergibt unterschiedlich viele Punkte. Dabei werden nicht wie bei EloStatTS die genauen Lösungszeiten verglichen oder jeder neue Run mit alten abgeglichen. Dennoch ist MEA ein ernstzunehmendes Werkzeug, und die Entwickler – wie Frank Schubert, Ferdinand Mosca oder Ed Schröder – sind in der Szene keine Unbekannten.
Natürlich muss man solche Methoden nicht verwenden. Ob man sie sinnvoll oder interessant findet, ist eine andere Frage. Wer aber überhaupt aussagekräftige Testergebnisse haben möchte, muss über statistische Relevanz nachdenken. Am besten testet man Stellung für Stellung – dann braucht man nicht unbedingt Elo-Werte, obwohl man sie trotzdem berechnen könnte (so wie man auch bei Menschen nach jedem Spiel eine neue Wertung ermitteln kann).
Und was ist sonst noch möglich? Single-Thread-Tests, Multi-Thread-Tests, Zeit bis zur Lösung, Tiefe der Analyse, Bewertung, beste Varianten – man kann sich richtig austoben. Doch wer ganze Stellungssammlungen verwendet, muss bedenken, wie aussagekräftig die Ergebnisse tatsächlich sind. Sonst wird man zu Recht kritisiert, etwa weil die Stellungen zu unrealistisch oder nicht reproduzierbar sind.
Nur meine bescheidene Meinung.
Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill