Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / EAS-Tool Erläuterungen
- - By Stefan Pohl Date 2024-06-27 07:30 Edited 2024-06-27 07:45 Upvotes 2
Ich habe gestern eine email Anfrage bezüglich meines EAS-Tools erhalten, von der ich glaube, das sowohl die Fragen als auch meine Antworten eventuell auch für andere Leute interessant sein könnten. Und ich muß schon viel zu viele email-Fagen aus aller Welt beantworten, da möchte ich mir doppelte und dreifache Anfragen ersparen:

Hallo Stefan,

Ich habe EAS gerade entdeckt und muss sagen, dass die Idee eines solchen Tools an sich genial ist. Ich wollte Sie jedoch auf einige Verbesserungsmöglichkeiten hinweisen.
Ich wollte EAS einsetzen, um Kasparovs u.a. Aggressivität zu messen. EAS hat einige Opfer verpasst. Ich gehe davon aus, dass Ihnen die Partie Kasparov-Topalov bekannt ist. Die Partie wird als Kasparovs Immortal bezeichnet: Kasparov-Topalov Partie. EAS hat diese Partie verpasst.
Nach EAS hat Tal niemals ein Damenopfer gemacht. Ich kenne zumindest drei Partien, in denen er das getan hat. Liegt es daran, dass EAS diese Opfer/Partien wegen bestimmter Einstellungen verpasst, oder gibt es eine andere Erklärung?

Hier meine (erheblich längere) Antwort:

Moin,

Das Problem ist das Folgende: Opferpartien konnte man bisher nicht schnell als solche erkennen, denn die einzig bisherige Methode war es, alle Plies einer Partie mit eine Engine kurz anzurechnen und aufgrund der Evals dann Opfer zu erkennen. Das ist aber extrem langsam: Eine normale Enginepartie hat locker 150 Plies, die im Schnitt evaluiert werden müßten. Selbst, wenn man nur 100ms Rechenzeit pro Ply zuläßt (was schon sehr knapp ist), würde die Opfersuche einer einzigen Partien schon 15 Sekunden dauern... Um in den heutigen großen Enginepartie-Datenbanken alles nach Opferpartien zu durchsuchen, ist so ein Tempo völlig unpraktikabel.

Die Grundidee meiner neuartigen Opfersuche (diese ist ja auch Kern-Bestandteil meiner anderen Tools) war nun, daß mir vor ein paar Jahren der Genieblitz kam, daß man bei modernen Enginepartien 2 zusätzliche Annahmen zum Partieverlauf machen kann, die bei Menschpartien nicht gelten:
Engines verlieren nicht auf Zeit und blundern nicht.
Das klingt erst mal trivial. Ist es aber nicht. Denn durch diese Annahmen, kann man nun Opferpartien viel einfacher erkennen: Ich nehme einfach an, daß jede Partie, die eine Engine gewinnt, aber in der sie einen (zumindest temporären) Materialnachteil hatte, eine Opferpartie war (da Engines nicht blundern, muß jeder Materialverlust ja Absicht sein, wenn die Partie dann dennoch gewonnen wurde - und der Gegner kann ja auch nicht auf Zeit verloren haben).
Dieses Verfahren kommt nun ohne jede Evaluierung der Züge durch eine Engine aus. Ich nutze einfach die Materialverteilungs-Erkennungs Funktion von pgn-extract, diese reicht für das oben beschriebene Verfahren aus.
Damit ist meine Opfersuch-Methode ca. 5000-10000x schneller als die herkömmliche Methode (!!!)
Aber es ist auch klar, für so eine Beschleunigung zahlt man einen Preis, hier die Nachteile meiner Methode:
A) Opfer, nach denen die Partie noch verloren wurde, kann man gar nicht finden.
B) Ist der temporäre Materialnachteil zu kurz, dann wird das Opfer nicht erkannt. Im EAS-Tool habe ich 8 plies gewählt, das hat sich in Tests als der beste Wert herausgestellt. Ist diese Zahl zu niedrig, werden auch Partien mit Re-Captures, also normale Schlagzüge, die einfach eine Figur zurücknehmen, als Opfer erkannt, wenn es noch ein paar Zwischenzüge (Schachs!) gab, daher muß diese Zahl eine gewisse Größe haben.
C) Addieren sich mehrere Opfer zu einer Gesamtsumme an Bauerneinheiten und ändert sich dadurch mehrfach das Materialverteilungsmuster, kann eines der Opfer auch mal übersehen werden, d.h. manche Opferpartien werden in eine zu niedrigere Kategorie (es gibt ja 1,2,3,4,5+ Bauerneinheiten, sowie Damenopfer als Kategorien) einsortiert.
D) Damit die Opfersuche maximal schnell ist, wird jede Opfersuche der nächst höheren Kategorie nur in den Opferpartien der darunterliegenden Kategorie durchsucht (Opfer mit 2 Bauerneinheiten sucht das Tool nur in Partien, in denen mindestens eine Bauerneinheit geopfert wurde, nicht in allen Partien, das macht sehr viel Speed aus!)
E) Das Damenopfer ist ein Spezialfall im EAS-Tool. Da ich nur wirklich spektakuläre Damenopfer haben wollte (auch, weil diese am meisten EAS-Punkte bringen sollten) und ich aus Speed-Gründen nur in der nächstniedrigeren Kategorie nach höheren Opfern suche (D), werden diese auch nur in den 5+ Bauerneinheiten Opferpartien gesucht. Schlägt also z.B. eine Dame "nur" einen Turm raus, so wäre das nur ein 4 Bauerneinheiten Opfer und würde somit vom EAS-Tool nicht in die Damenopfer-Kategorie einsortiert.

Das Gute ist nun aber, daß sich diese Probleme bei Engine Datenbanken mit vielen Partien auf alle Engine statistisch gleich verteilen, sodaß die EAS-Punkte Auswertung der Engines in ihrer Relation zueinander korrekt bleibt.
Das EAS-Tool auf Menschpartien anzusetzen, wie du es getan hast, ist natürlich grenzwertig. Weil eben meine Opfersuche auf den 2 zusätzlichen Annahmen für Partien starker Engines beruht. Diese gelten aber für Menschpartien natürlich nicht: Verliert ein Mensch eine gewonnene Stellung auf Zeit oder durch einen krassen Blunder, würde mein Tool diese Fälle als vermeintliches Opfer erkennen. Logischerweise.
Insofern ist die Fehlerquote des EAS-Tools in Menschpartien viel höher als in Enginepartien. Und noch gravierender: Es werden in Menschpartien auch negativ-falsche Treffer angezeigt, also Opferpartien, die gar keine sind. Bei Enginepartien hingegen gibt es mit dem EAS-Tool (fast) nur positiv-falsche Ergebnisse, es können also Opfer übersehen werden oder in eine zu niedrigere Kategorie einsortiert werden. Letzteres ist natürlich weit weniger schlimm als Ersteres.

Ich hoffe, alles halbwegs verständlich erklärt zu haben.

Grüße - Stefan (SPCC)
Parent - By Stefan Pohl Date 2024-06-27 13:04 Edited 2024-06-27 13:07
Hier die auch recht ausführliche und freundliche Antwort auf meine Mail, die ich auch interessant fand:

Hallo Stefan,

Vielen Dank für die ausführliche Erklärung. Ja, jetzt ist alles klar. Diese zwei Annahmen sind wirklich ein Geniestreich.

Ich war neugierig zu wissen, wer der aggressivste Schachspieler aller Zeiten ist, aber EAS ist eher für Engines gedacht und wird deshalb viel bessere Ergebnisse für Engines liefern. Wenn man es für Menschepartien einsetzt hat man aber auch den Vorteil, , dass man fast 100% sicher sein kann, dass die Opfer korrekt sind und man daraus besser lernen kann.

Falls es dich interessiert: Nezhmetdinov ist der aggressivste Spieler. Karpov ist der am wenigsten aggressive. Morphy punktet mehr als Nezhmetdinov, aber EAS sagt, dass die Anzahl seiner Partien zu niedrig ist, um das Ergebnis zu vertrauen. Und Bobby Fischer ist nach EAS aggressiver als Tal, und all diese Ergebnisse machen Sinn, besonders nach deiner Erklärung der Funktionsweise von EAS. Vielmehr bestätigen sie die Meinung vieler Experten.

Tal hatte nämlich viele falsche Opfer und setzte auf die Verwirrung seiner Gegner, die meistens in Zeitnot gerieten und Fehler machten. Fischer kalkulierte viel besser und ging kein unnötiges Risiko ein, sodass seine Opfer alle korrekt waren.

Ich wollte dir auch sagen, dass ich Patricia 2.0 durch deine Webseite entdeckt habe. Ich habe ein Set von 19 Stellungen mit spekulativen Opfern getestet. Patricia punktete am meisten mit 78,9%, während Chess System Tal EAS nur 52,6% erreichte. Patricia fand Nezhmetdinovs spektakulärstes Opfer in 0,08 Sekunden. Stockfish brauchte 136 Sekunden, während Chess System Tal EAS es nicht fand.

Patricia wird spektakuläres Schach wiederbeleben.

Vielen Dank und weiter so!
Up Topic Hauptforen / CSS-Forum / EAS-Tool Erläuterungen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill