Hier die Erläuterungen von der Homepage zur „Extreme Chess Analysis“ (ECA):
https://banksiagui.com/extreme-chess-analysis-eca/Hier eine Übersetzung des Textteils, die Grafiken sind im o.a. Link einsehbar:
Anmerkung: BSG = BanksiaGUI.
Warum ECA?
BSG hat bereits einige Funktionen zu analysieren: Im laufenden Betrieb analysieren und ein Spiel analysieren. Normalerweise werden sie verwendet, um Spiele mit mehreren Zügen zu analysieren. Für jede Position (erstellt durch einen Umzug) führt BSG eine (oder mehrere) Engines aus, um Ideen/Meinungen zu dieser Position zu berechnen und zu geben. Typischerweise gibt der Motor nur eine PV (einschließlich des besten Zugs) und eine Punktzahl (einige Motoren können zusätzliche Werte von Win/Draw/Loss haben) für eine Position. Diese Informationen sind für viele Aufgaben und Zwecke gut genug.
Das Problem tritt jedoch auf, wenn der Benutzer mehr und/oder tiefere Informationen über eine bestimmte Position wünscht. Die obigen Analyseergebnisse können einige Fragen nicht beantworten, z. B. wie gut die 2., 3.... beste Linien sind, warum der Motor diese Linie als PV wählt, aber nicht für andere Linien. Vielleicht möchte er tiefer in mehrere Varianten eintauchen und herausfinden, wie gut, schlecht, Fehler, auf ihnen gefangen sind. Manchmal weiß er aus Wissen und Erfahrung, dass die aktuelle PV wirklich schlecht ist, gefangen, aber weil sie Fehler ist, kann die analysierende Schachmaschine viel mehr Zeit benötigen, um rauszukommen. Es wird jedoch schwierig, dem Motor zu sagen, dass er diese PV stoppen und andere Varianten ausprobieren soll, da traditionelle Analysefunktionen es den Benutzern schwer machen, sich einzumischen.
Abb. 1 "Traditionelle" Analysefunktionen: Analyse im laufenden Betrieb und Analyse des gesamten Spiels mit einem oder mehreren Motoren
Was ist EuRH?
Es ist eine neue Analysefunktion. "Extreme Chess Analysis" (ECA) kann Benutzern helfen, tiefe Schachpositionen zu analysieren und viel mehr Informationen für Varianten zu sammeln. Anstatt nur eine beste Leitung zu haben, ruft es Engines auf, um mehrere ausgewählte (oder alle) Varianten zu berechnen. Anstatt nur eine PV zu behalten und alle anderen Leitungen zu verwerfen, hält es sie alle mit ihren Informationen (Partituren, Win/Draw/Loss sowie einige andere), auf die sie sich später beziehen können. Benutzer können leicht Linien verfolgen, um gute, schlechte, fehlerhafte Bewegungen zu finden und viele neue Fragen zu beantworten. Es beginnt mit einer bestimmten Position, kann aber eine große Anzahl von Positionen erweitern und abdecken, Varianten, an denen Benutzer interessiert sind.
Abb. 2 Extreme Chess Analysis Dock Panel
Baum
ECA beginnt mit einer bestimmten Position (Startposition), die vom Benutzer ausgewählt wird. Von diesem Knoten aus expandiert es durch Bewegungen in die Positionen von Kindern. Diese Kinder können viele Male wieder erweitert werden. ECA verwendet einige Engines, um Blattpositionen auszuwerten und diese Ergebnisse dann an ihre Eltern zurückzugeben und weiterhin Ahnenknoten zu verwenden.
Alle Knoten und Informationen können in einer gleichen Baumstruktur aufbewahrt werden. Jeder Knoten des Baumes stellt eine Position dar. Die Verbindungslinie zwischen zwei Knoten ist eine Bewegung (es ist eine Einbahnrichtung, von Knoten A aus können wir Knoten B besuchen, indem wir M bewegen, aber wir können nicht von B nach A zurückkehren, indem wir diese Bewegung verwenden). Die Wurzel des Baumes ist die Startposition.
Komprimieren Sie die Größe
Wenn es keine Einschränkungen gibt, kann der Baum vollständig erweitert werden. In diesem Fall sieht der Baum etwas ähnlich aus wie diejenigen, die wir uns bei der Berechnung von Perft über einen oder einen oder einen vollständigen Öffnungsbaum vorstellen. Das Problem ist, dass der Baum exponentiell durch die Tiefe wachsen kann. Zum Beispiel hat in der Tiefe 6 der Perftbaum der Ursprungsschachposition über 112 Millionen Knoten. Wenn die Bewertung jedes Knotens nur 1 Sekunde dauert, benötigt dieser Baum 3,5 Jahre, um die Berechnung abzuschließen. Daher versucht ECA, die Baumgröße so weit wie möglich zu reduzieren, indem redundante Knoten eliminiert werden: Eine Schachposition sollte nur durch einen eindeutigen Knoten dargestellt werden. Die Gesamtzahl der Knoten wird erheblich reduziert. Jetzt in Tiefe 6 hat der Baum fast 900.000 Knoten, 12-mal kleiner (er braucht etwa 3 Monate, um mit 1 Sekunde für jeden Knoten fertig zu werden).
Die Beibehaltung einer kleineren Größe ist der Schlüssel zum "Überlebensfaktor" dieser Funktion, da es möglicherweise zu viel berechnet werden muss.
Aufgrund der Verwendung eindeutiger Knoten können einige Knoten mehrere übergeordnete Knoten haben. Per Definition wird die Datenstruktur nicht zu einem echten Baum, sondern zu einem gerichteten Diagramm. Wir nennen es jedoch immer noch einen "Baum", da viele Benutzer sich mit diesem Begriff vertraut gemacht haben und es einfacher ist, sich vorzustellen und damit zu arbeiten. Wir präsentieren unsere Daten auch als Standardbaum.
Was Benutzer mit einem Baum tun können
Benutzer können mit dem Baum interagieren, um:
Sehen Sie sich den Baum an: Sehen Sie alle Informationen über einen bestimmten Knoten: die Verschiebungsliste von der Startposition zu diesem Knoten, das zugehörige Schachbrett, die Auswertung (nach Motor für diesen Knoten), die Ergebnisse (zurück propagiert), die Kinder...
Setzen Sie das Flag "ignoriert": Weisen Sie ECA an, einige Knoten von der Auswertung und Erweiterung zu ignorieren
Knoten manuell erweitern
Erweitern Sie den Baum, indem Sie Spiele oder Datenbanken (PGN-Dateien oder BanksiaGUI-Datenbanken .bgdb) oder polyglot öffnende Bücher füttern
Schau dir den Baum an
Der Baum kann in zwei Formen angezeigt werden: einer Baumansicht und einer Knotenansicht. Diese Ansichten befinden sich auf entsprechenden Registerkarten.
Baumansicht: gibt einen breiteren Panoramablick auf den Baum. Es ist einfach, Informationen über Geschwister, Vorfahren, Enkelkinder zu finden und Varianten zu vergleichen. Es zeigt jedoch weniger Details. Wenn der Benutzer tiefer in den Baum geht, kann er sich auf dem Bildschirm erweitern, viel Platz einnehmen, zu viele Knoten anzeigen und Informationen es schwieriger machen, zu lesen, zu finden und zu navigieren. Im Moment können Benutzer das Flag "ignoriert" für Knoten, die diese Ansicht verwenden, nicht festlegen oder manuell erweitern.
Knotenansicht: Auf einmal werden nur Informationen eines Knotens mit seinen untergeordneten Elementen angezeigt. Mit einem Blick können Benutzer keine Informationen über weiter entfernte Knoten wie Eltern, Geschwister, Enkelkinder erhalten... Das ist schwer zwischen Varianten zu vergleichen... Stattdessen wurden mehr Informationen wie Auswertungsinformationen angezeigt und ermöglicht es Benutzern, ignorierte Flags ein-/auszu setzen (um die automatische Erweiterung zu stoppen) und manuell zu erweitern.
Benutzer können jede Form verwenden, je nach Geschmack und/oder Aufgaben/Zwecken.
Beide Ansichten können sowohl mit der Maus als auch mit der Tastatur (mit Pfeil, Home, Seitentasten, W, A, S, D) für eine schnelle Navigation navigiert werden.
Abb. 3 Knotenansicht
Abb. 4 Baumansicht
Wie hat sich der Baum erstellt?
ECA arbeitet in zwei Folgephasen:
Bewertung: Alle Blattknoten ohne Punktzahl werden von einer Engine ausgewertet (und maximal nur für jeden Knoten). Jedes Mal, wenn ein Knoten ausgewertet wird, wird seine Punktzahl unter Verwendung der Minimax-Regel an den Baum (in Richtung Wurzel) weitergegeben. Wenn es eine Änderung gibt, wird die Einbeziehung von Kindern von Knoten nach ihren Punktzahlen neu sortiert
Erweitern (nur automatisch erweiternder Modus): Es beginnt, wenn alle Blattknoten ausgewertet werden. Alle Blattknoten werden überprüft, ob sie sich im guten Bereich befinden, und dann auf eine Ebene erweitert.
Innerhalb von Phase 1 (Bewertung) können die Punktzahlen viele Male festgelegt und rückwärts sein und sich auf eine große Anzahl von Knoten auswirken. Einige Knoten können aufhören, früh zu expandieren, aber dann ändern sich ihre Punktzahlen von "schlecht" zu "gut" (und umgekehrt) und werden nach einer Weile erweitert.
Wenn der EuRH nutzlos ist?
Ganze Spiele mit Multi-Moves analysieren
Der Benutzer benötigt nur die beste Linie für jede angegebene Position
Alle traditionellen Analysefunktionen (Analyse im laufenden Betrieb und Analyse des gesamten Spiels) reichen für den Benutzer aus
Der Benutzer will keine Langzeitverarbeitung
Der Benutzer macht sich nicht die Mühe, Kopfschmerzen zu untersuchen, komplizierte Strukturen wie die Bäume von ECA
Einige Notizen, Tipps
"Ausgewertet": Sind die Rechenergebnisse direkt vom Motor gekommen? In voller Form werden sie in "Halbstandard" angezeigt: Score/Tiefenzeitknoten W/D/L. Innere Knoten können nicht ausgewertet werden, daher hat nicht jeder Knoten diese Werte. Tiefe und Zeit zeigen, wie Qualität der Datenverarbeitung. Knoten zeigt, wie hart diese Berechnung ist
"Score": sind Werte, die durch Back-Propagation erstellt werden
WDL: Diese Werte werden als Werte zurückverbreitet. Diese Werte werden jedoch nicht zur Auswahl durch die Minimax-Regel verwendet
Ignoriert: Kennzeichnet den Knoten, dass er vollständig ignoriert wird, da er bei der Auswertung und Erweiterung nicht vorhanden ist
Knoten in roten Farben: Knoten mit niedrigen Punktzahlen, außerhalb des wachsenden Bereichs. Sie werden immer noch bewertet, aber für die nächste Runde nicht erweitert.
Genauigkeit: Die Gesamtzahl der Knoten ist genau. Andere Zahlen wie Unterknoten, zurückverbreitete Punktzahlen... sind jedoch möglicherweise nicht genau, manchmal konsistent, da sie von Schachschleifen/Wiederholungen beeinflusst werden können
Wenn Benutzer für einen bestimmten Umzug nicht vollständig expandieren (alle Züge), werden alle fehlenden Züge beim Auswerten und Erweitern nicht gezählt (ähnlich wie ignorierte Züge)
Engines: Bei der Berechnung für ECA verwenden sie allgemeine Setups/Optionen (über den Einstellungsdialog eingestellt)
Engine-Informationen und Protokoll: Diese Engines speichern keine Informationen in Protokolldateien (um zu vermeiden, chaotisch zu sein und zu viel zu schreiben). Wenn Benutzer sie überwachen müssen, aktivieren Sie das Kontrollkästchen "Motorinformationen" im ECA-Panel. Es wird eine neue Registerkarte hinzugefügt, um die Informationen der Motoren anzuzeigen
Stopp: Wenn Motoren rechnen und der Benutzer BSG beenden möchte, ist es besser, diese Engines zuerst zu stoppen (durch Klicken auf die Schaltfläche "Stoppen") und BSG ein paar Sekunden zu geben, damit BSG alle Daten aufschreiben kann. Der Benutzer kann die Anzahl der Parallelität auf Null reduzieren, um Motoren sanft zu beenden
Backup: Häufig sind Backup-Daten (durch Kopieren von Dateien) und/oder Klonprojekte eine gute Möglichkeit, Ihre wertvollen Daten zu speichern
Größe: Behalten Sie die Anzahl der Knoten im Auge. Benutzern wird dringend empfohlen, die Baumgröße so klein wie möglich zu überwachen und zu halten
Punktzahl zurücksetzen: Zu Beginn kann der Benutzer Motoren dazu bringen, eine schnelle Suche durchzuführen (mit niedriger Tiefe, Zeit), so dass BSG den Baum schnell auf die gewünschte Tiefe/Größe wachsen lassen kann. So kann er schnell einige Dinge zu studieren haben, einen besseren Überblick über die Varianten, Verständnis für den Motor. Mit diesem Wissen kann er ignorierte Flags für einige Knoten setzen und einige andere Zweige manuell erweitern. Schließlich kann er die Qualifikationen der Analyse erhöhen, um sie länger zu verwenden, indem er alle Ergebnisse zurücksetzt, um sie neu zu berechnen. Auf diese Weise kann BSG Zeit von internen, schlechten Knoten sparen.
Extreme Chess Analysis Backup-System
Alle Daten des Benutzers sind wertvoll, ebenso wie ein Baum des EuRH. Wenn ein Baum beschädigt oder verloren geht, ist es ein schwerer Schaden, da es lange dauern kann, Computer zu laufen.
Das Problem ist, dass die Bäume des EuRH etwas ziemlich anfällig für beschädigt sind, da sie in der Regel riesig sind, Textformate, Zeit zum Aufschreiben benötigen, hochfrequent geschrieben werden und der gesamte Computerprozess (zum Erweitern und Auswerten des Baumes) sehr lange dauern kann. Jede Unterbrechung beim Schreiben wie Computer-/Softwareabstürze oder plötzliches Herunterfahren... kann zu fehlerhaften Daten führen. Da die Daten eines Baumes in der Regel riesig sind, ist es nicht einfach, einen kaputten zu finden und zu reparieren, oder das lohnt sich nicht. In den meisten Fällen sollten wir es ausgeben und stattdessen Backup-Daten verwenden.
ECA-Backup-Dateien
ECA speichert den Computing-Baum auf der Festplatte, wenn es eine Änderung gibt, wie z.B. Verzweigungen erweitert oder ein Knoten ausgewertet. Wenn der Benutzer diese Aufgaben nicht erledigt, gibt es kein Schreiben und er kann dieses Problem ignorieren.
Mit den neuesten Versionen werden alle ECA-Dateien im BanksiaGUI-Konfigurationsordner gespeichert. ECA erstellt automatisch mehrere Sicherungsdateien, vorherige Datendateien werden automatisch umbenannt und/oder in mehrere Dateien kopiert. Sie sind:
Normale Sicherungsdateien: Alle vorherigen Baumdaten werden in 5 Sicherungsdateien mit Erweiterungen geschrieben, die von .json.bk.1 gestartet wurden. Die älteren Dateien werden automatisch gelöscht.
Tägliche Sicherung: Der Baum wird automatisch in einer Sicherungsdatei mit der Erweiterung .json.dayYYYYMMDD gespeichert, z.B. .json.day20210725. Im Gegensatz zu normalen Backups löscht BSG diese Dateien nicht. Benutzern wird empfohlen, alte Dateien zu überprüfen und zu löschen, um Platz zu sparen
Das Backup-System wurde entwickelt, um so viel wie möglich die Arbeit zu sparen, wenn ein Vorfall eintritt. ECA versucht, den potenziellen Arbeitsverlust auf nur wenige Stunden oder einen Tag zu minimieren.
Überprüfen
Nach dem Laden der Daten überprüft ECA die Daten immer automatisch, um die Richtigkeit und Konsistenz zu überprüfen. Möglicherweise wird ein Dialogfeld angezeigt, um den Benutzer zu informieren, wenn ein Problem auftritt.
Daten aus einem Backup laden
Klicken Sie auf die Schaltfläche Datendateien, BSG öffnet einen Dialog, um alle Datendateien anzuzeigen. Benutzer können jeden auswählen, der gelöscht oder geladen werden soll.
Was Benutzer tun können, um zu helfen
Häufige manuelle Sicherungsdaten (Klonprojekte)
Herunterfahren: Vermeiden Sie das Herunterfahren von BSG oder Computern beim ECA-Computing, da die Daten möglicherweise geschrieben werden. Es ist am besten, wenn der Benutzer auf die Schaltfläche Stoppen klickt, um sie zuerst zu stoppen, eine Sekunde warten (dieser Zeitraum reicht für das Aufschreiben der Computer aus) und dann tun, was er will.