Computerschach: Die Stellungsbewertung der Engines

Lesezeit für diesen Beitrag: ca. 13 Minuten

Von „ausgeglichen“ bis „vorteilhaft“

von Walter Eigenmann

Wie ist eine Stellung grundsätzlich-positionell einzuschätzen? Welches sind ihre konkret-taktischen Motive? Wie könnte sie sich einige Züge später entwickelt haben? Vor diesem Evaluationsprozess am Brett, der die Wahl des nächsten Zuges natürlich entscheidend beeinflusst, steht jede/r Schachspieler*in in jedem Moment der Partie.
Auf einem sehr viel höheren, weil rechnerisch exakteren bzw. tiefergehenden Niveau haben auch die modernen Computer-Programme eine Stellungsbewertung vorzunehmen. Und wie beim Menschen sind diesbezüglich bei den Engines genauso deutliche Unterschiede des Outputs auszumachen…

1966 geschah in Belgrad Bedeutsames für die Schachwelt: Der erste „Informator“ erschien, und mit ihm nicht nur die umfassende Klassifikation der Eröffnungen (die sog. „ECO-Codes“), sondern auch eine neue Symbolik für eine nonverbale Stellungsbewertung. Beides ist heute noch gültig und wird sowohl im Print- wie im Digital-Bereich weltweit angewandt. Die „Informator“-Symbolik trug wesentlich zur Vereinheitlichung von Stellungsbewertungen bei und überwand durch diese Nonverbalisierung die Sprachgrenzen:

Schach-Informator - Symbole - Glarean Magazin
Die neuen Symbole des Belgrader „Informators“ ermöglichten ab 1966 die nonverbale Kommentierung von Schachpartien über die Sprachgrenzen hinweg

Verschiedene Evaluations-Outputs

In der Computerschach-Szene hat sich seit vielen Jahren neben dieser eher groben Symbolik noch eine weitere, differenziertere Bewertungsweise etabliert, jene nach „Centipawn“ (=Hundertstel-Bauerneinheiten). Sie erlaubt der Schachprogrammierung eine genaue Quantifizierung und dem User eine detailliertere Einschätzung des Engine-Outputs.
Schließlich ist bei den modernen NN-Engines – also bei jenen Schach-Motoren, die mit Neuronalen Netzwerken arbeiten – noch eine dritte Art der Stellungseinschätzung anzutreffen, jene der prozentualen Gewinnwahrscheinlichkeit.
Die meisten modernen Engine-Interfaces wie z.B. Fritz, SCID, Aquarium oder Arena offerieren dem Anwender eine Stellungsbewertung der Motoren mit mind. den ersten beiden dieser drei Formen, bzw. sie lassen ihn diese explizit einstellen.

Die Bewertung der Bewertung

Ein Problem aller Programm-Outputs bleibt für den Anwender aber immer – je nach Engine: Die Bewertung der Bewertung. Denn grundsätzlich kann der Programmierer einer Engine seine betreffenden „Skalen“ deklarieren, wie er will. Das erschwert eine adäquate bzw. objektive Interpretation des Programm-Outputs durch den User natürlich erheblich.
In der Vergangenheit ließ sich immerhin feststellen, dass sich unter den Systemen jenes der Oberfläche Chessbase weitgehend etabliert hat, was darauf zurückzuführen ist, dass das „Fritz“-GUI in der weltweiten Computerschach-Community das meistverwendete Interface ist.

Informator-Bewertungszeichen
Links die „Informator“-Symbolik, rechts der jeweilige Computer-Centipawn-Range, in der Mitte die verbale Stellungseinschätzung

Diesem spezifischen CB-Output entsprechend setzt sich die allgemeine Bewertungsskala wie in der nebenstehenden Abbildung zusammen.
(Wer sich in die Details des CB-Outputs vertiefen will, kann sich bei Chessbase selber dem Thema Stellungsbewertung unter „Fritz“ widmen).

Die Startstellung im Engine-Spiegel

Vergleicht man mal zehn der führenden Engines im Hinblick auf ihre Bewertung der Schach-Grundstellung, fällt der relative weite Range der Evaluationen auf. Die folgenden Outputs wurden auf einem handelsüblichen Ryzen7 im 4-Varianten-Modus generiert mit den jeweiligen Default-Einstellungen bei je 2GB Hash und 8 Threads (LeelaChess analysierte auf einer RTX 2080 mit 2 Threads).
Die Screenshots aller Outputs erfolgten jeweils exakt nach 60 Sekunden Rechenzeit, und um gegenseitige Hash-Memorierungen zu vermeiden, wurde das Interface jedesmal neu gestartet. (Mausklick auf eine Grafik vergrößert diese):

Berserk

Berserk - Startposition - 1 Min - Ryzen7 - 2GB Hash

LeelaChess

LeelaChess - Startposition - 1 Min - Ryzen7 - 2GB Hash

Stockfish

Stockfish - Startposition - 1 Min - Ryzen7 - 2GB Hash

ShashChess

ShashChess - Startposition - 1 Min - Ryzen7 - 2GB Hash

DragonKomodo

Dragon - Startposition - 1 Min - Ryzen7 - 2GB Hash

Houdini

Houdini - Startposition - 1 Min - Ryzen7 - 2GB Hash

CorChess

CorChess - Startposition - 1 Min - Ryzen7 - 2GB Hash

Revenge

Revenge - Startposition - 1 Min - Ryzen7 - 2GB Hash

FatFritz

FatFritz - Startposition - 1 Min - Ryzen7 - 2GB Hash

RubiChess

RubiChess - Startposition - 1 Min - Ryzen7 - 2GB Hash

Die Engine-Szene hat also in den Top-Ten mind. zwei Programme, die überdurchschnittlich progressiv-optimistisch bewerten, und mind. zwei mit betont konservativ-zurückhaltender Evaluation: Berserk und Stockfish zählen zur ersten, Leela und ShashChess zur zweiten Kategorie. (Da Leela eine ganz andere Programmier-Architektur als die übrigen NN- oder gar AB-Programme hat, ist allerdings sein Bewertungs-Output stets mit Vorsicht zu interpretieren).


Exkurs:

Das Schachspiel in Engine-Zahlen

von Peter Martan

Wollte man die numerischen Bewertungen von Schachprogrammen, wie sie im Hauptartikel als purer Vergleich dastehen, beim Wort nehmen, müsste man mit den Relationen (als Bruchrechnung ) zwischen ihnen anfangen. Die Differenzen (durch Addidtion und Subtraktion berechnet) sind noch weniger geeignet zum Vergleich mit der schachlichen Wahrheit, wie man sie als menschlicher Spieler evaluiert. Die Umrechnung dessen, was man von einer Stellung zu wissen glaubt, in durch Zahlen wiedergegebene Werte, ist ein Problem für sich, aber man hat ja von den Programmen gelernt, was sie mit ihren Bewertungen „meinen“.

Ein bisschen Mathematik zu Beginn: Wollte man bei einer klar gewonnenen Stellung, in der gerade noch keine Matt-Distanz ausrechenbar ist, zwischen 900 und 800 Hundertsteln und Bauerneinheiten (Centipawn) den schachlich relevanten Unterschied zwischen diesen beiden Werten von zwei Kandidatenzügen (und oder von zwei Programmen) festmachen, wäre die Relation, der Quotient viel kleiner als bei einer Stellung, die mit 0.01 und 1.01 bewertet wird, in Hinblick auf 2 Kandidaten- Züge oder durch 2 Motoren. Der Unterschied in Einheiten von Hundertstel- Bauern als Differenz gerechnet, ist in beiden Fällen 100 und sagt daher weniger für sich allein aus.

Die Relativität von Evaluierungen

Weiter: Wollte man da für auch nur zwei willkürlich herausgegriffene Beispiele einen gemeinsamen Bewertungsschlüssel bestimmen, müsste er in Prozent oder irgendeiner anderen rechnerischen Relation im Sinn von Division bestimmt werden. Durch 0.00 lässt sich schlecht dividieren, aber da müsste man halt auf 0.01 oder -0.01 im Nenner runden. Das Vorzeichen wäre ja auch noch ein Problem für sich. Tatsächlich zählen aber schachlich auch gerade die Bewertungs-Veränderungen dort am meisten, wo sie vom Vorteil zum Nachteil einer Seite umschlagen.

Bei Stellungen mit wenigen, dafür großteils forcierten Abspielen sind Evaluierungen auch anders zu vergleichen als bei solchen mit mit vielen ähnlich aussichtsreichen unforcierten. Das Verhältnis von Suche zu „statischer Bewertung“ (aus Einträgen im Programmcode oder aus Neuronalen Netzwerken gebildet) ist vom Suchbaum und damit auch der Evaluierung und Zugsortierung her ein Anderes als bei „strategisch“ zu bewertenden Stellungen. („Strategie“ ist ein Begriff, der im Computerschach noch nie viel Sinn gemacht hat, und je besser die Programme im Rechnen und im Bewerten werden, umso weniger).

Statistik und Spielstärke

Eröffnung, Mittel- oder Endspiel, Material und Partiefortschritt in Richtung auf eine Entscheidung hin, und welche Variantenlängen zur Bewertung herangezogen werden müssen, das alles muss eingerechnet werden. Daraus ergibt sich dann, ob eine Seite im Vorteil ist und wie groß er ist, und alle diese Grundlagen lassen dann erst quantifizierbare Schlüsse zu, inwieweit die numerischen Werte der einen Engine besser oder schlechter sind als die der anderen. Ob die Bewertungen in Hundertstel-Bauern, prozentueller Gewinnwahrscheinlichkeit oder Informator-Symbolen ausgegeben werden, spielt eine untergeordnete Rolle, sofern diese Symbole auch auf von Programmen angewendeten Schlüsseln beruhen. Dann werden sie ja von der Bedieneroberfläche auch automatisch aus den numerischen Werten ausgewiesen.

Das alles gilt natürlich immer nur für eine einzelne Stellung, aber dass Messungen von jeder Art von Spielstärke (bei Menschen ja auch) strikt stellungsabhängig zu betrachten sind, hat sich mittlerweile (im Zeitalter von eigenen Test-Eröffnungen mit dosiertem einseitigem Vorteil) wohl auch für die statistische Spielstärkemessung aus großen Zahlen ausgespielter Partien herumgesprochen. ♦

 


Bewertung komplexer Stellungen

Natürlich gibt die Engine-Evaluation der einfachen Grundstellung noch nicht sehr viel Erkenntnisgewinn her. Denn dass Berserk dem Anziehenden einen relativ deutlich Vorteil zuspricht, während z.B. ShashChess von völliger Gleichheit ausgeht, ist nur ein Abbild auch der menschlich-historischen Sicht auf die Startposition.

 

Analyse-Stellung - Firouzja-Aronian - St. Louis 2022 - Glarean Magazin
Alireza Firouzja vs Lew Aronian in St. Louis 2022: 14. f4!

Firouzja vs Aronian (St. Louis 2022)

Interessanter wird es, wenn man den Programmen eine Stellung vorsetzt, die sehr komplex ist, wie beispielsweise die nebenstehende aus einer Partie Firouzja gegen Aronian aus dem Jahre 2022 in St. Louis.

In der nebenstehenden Stellung sind im wesentlichen vier Mainlines des Anziehenden zu beachten. Denn enthalten sind ein „Game Changer“ (sprich: Zug führt praktisch zwingend zum Gewinn), zwei Remis-Varianten, sowie ein wahrscheinlicher Verlustzug:


+-  14. f4 !     Weiss steht auf Gewinn
 =  14. Df3 ?!   Weiss hat höchstens remis
 =  14. Tf1 ?!   Weiss kann remis halten
-+  14. 0-0-0 ?  Weiss steht auf Verlust

Wir lassen also wieder unsere zehn Top-Engines auf die Stellung los – wer sie in sein eigenes Schachprogramm importieren will, kann den folgenden FEN-Code benützen: r2q1r2/ppp2pk1/3pbn2/2b1p1B1/2P1P3/P1NQ3P/1PP2PP1/R3K2R w KQ – unter exakt den gleichen Bedingungen wie oben bei der Grundstellung, und erhalten die folgenden Bewertungen:

Berserk

Berserk - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

LeelaChess

LeelaChess - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

Stockfish

Stockfish - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

ShashChess

ShashChess - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

DragonKomodo

Dragon - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

Houdini

Houdini - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

CorChess

CorChess - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

Revenge

Revenge - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

FatFritz

FatFritz - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

RubiChess

RubiChess - Firouzja-Aronian - 1 Min - Ryzen7 - 2GB Hash

Schauen wir uns die Ergebnisse der zehn Motoren im einzelnen an, und beginnen wir mit jenen, die überfordert waren von dieser Stellung.

Nicht gefunden wurde der Lösungszug 14. f4 von

  • FatFritz: Die zweitbeste Variante wird deutlich höher bewertet als die beste. Immerhin sind die zwei besten Züge zuoberst.
  • RubiChess: Auch dieses Programm favoritisiert Df3, und dem wahrscheinlichen Verlustzug 0-0-0 wird schlimmstenfalls ein Remis zugestanden.
  • Revenge: Die (im Engine-Turnierbetrieb sehr erfolgreiche) Engine scheint ein Problem mit dem Multivarianten-Analysemodus zu haben: Ausspielen würde das Programm das zweitbeste Df3, am besten bewertet wird aber der Lösungszug… Hier hat der Programmierer nachzubessern, andernfalls sind die 20 Euro, die er für seine Engine verlangt, nicht gerechtfertigt. (Denn ein Anwender kauft ein Schachprogramm meist nicht nur zum Partienspielen, sondern auch zum Analysieren).
  • Houdini ist neben Revenge die zweite AB-Engine in diesem Feld und kommt  hier nicht so tief wie die anderen. Für das Programm ist die Stellung auch nach einer Minute noch ziemlich im Gleichgewicht, allenfalls mit leichtem Vorteil für Weiß (aber aufgrund eines „falschen“ Best-move…)

Sechs von zehn sind erfolgreich

Computerschach - Bewertung der Bewertung - Stockfish-Output - Glarean Magazin - November 2022
Wie verlässlich sind Computer-Schachanalysen? Wie ist ihr Output zu interpretieren? Die Grafik vereint alle drei gängigen Bewertungs-Optionen: Informator-Symbolik (links), Centipawn-Bewertung und Gewinn-Wahrscheinlichkeit; rechts die Züge-Hierarchie

Immerhin finden sechs der zehn Motoren den Lösungszug, würden ihn also in einer Turnierpartie ausspielen. Diese sechs haben ihre Zug-Suche und damit ihre Zug-Generierung demnach erfolgreich abgeschlossen. Doch damit geht nicht automatisch eine korrekte Bewertung einher:

  • Dragon: Die Analyse ist etwas dürftig. Denn obwohl der stärkste Zug ausgespielt würde, hebt er sich nicht wesentlich vom zweitbesten ab, Dragon hält beide für praktisch gleichwertig. (Je nach Hard- und Software-Umgebung in einem entspr. Engine-Turnier entscheidet sich zufällig, welchen der beiden Züge dann Dragon ausspielt.)
    Außerdem sind der 3. und 4. Zug „vertauscht“ (was allerdings auf den Zufall des Screenshot-Zeitpunkts zurückzuführen sein könnte).
  • ShashChess präferiert den Gewinnzug zufällig, Df3 ist gleich bewertet. Außerdem bleibt die Engine ihrem extrem konservativen Bewertungsstil treu, was dem Anwender hier eine komplett ausgeglichene Stellung einredet. Sogar der wahrscheinliche Verlustzug schafft es nicht wirklich unter die Minus-Marke… Immerhin erreicht das Programm mit 33 Halbzügen innerhalb einer Minute (!) die stärkste Berechnungs-Tiefe.
  • LeelaChess: Dem Bewertungs-Output dieses Programmes ist meist nicht unbesehen zu vertrauen, aktuell hat es keinen Fokus auf das Stellungsanalysieren.
    Doch hier evaluiert LeelaChess soweit ok. Denn eine Bewertung von +0.80 bedeutet bei Leela beinahe „Gewinnzone“, wie spezielle Recherchen in vielen seiner Partien zeigten. Anders gesagt, man kann annehmen, dass Leela die meisten Partien ab der fraglichen Stellung gegen jede andere Engine gewinnen dürfte, die Stellung also recht gut „versteht“.
  • CorChess: Das „Fernschach-Programm“ CorChess liefert eine glaubwürdige Standanalyse, mit einer nachvollziehbaren und differenzierten Hierarchie. Da CorChess ebenfalls zu den „konservativen“ Bewertern gehört – was private Recherchen in Partien ergeben haben -, ist die Tatsache nicht so gravierend, dass der Gewinnzug nur knapp 1.4 Bauerneinheiten erhält.
  • Berserk würde ebenfalls 14.f4! ziehen in einer Turnierpartie, ordnet dem Zug aber nur eine mäßige Bewertung zu und hält zudem Df3 für praktisch gleichwertig. Pluspunkt aber: Von allen Engines ordnet Berserk den Verlustzug mit Minus 1.21 Bauerneinheiten als den klar schwächsten ein.
  • Stockfish: Mit dem seit langem unumstrittenen Leader der weltweiten Engine-Programmierung sind wir beim Sieger auch dieser kleinen Untersuchung. Stockfish liefert die beste Stand-Analyse: Der Gewinnzug 14.f4! ist mit knapp 1.5 Bauerneinheiten praktisch in der „Gewinnzone“ deklariert, das zweitbeste 14.Df3 spielt gemäß SF mindestens remis, die dritte Auswahl 14.Tf1 kann das Unentschieden wohl halten, und das schlechte 14.0-0-0 dürfte gemäß SF die meisten Partien ab der entspr. Stellung verlieren.

Forschungsgebiet der Zukunft: Engine-Bewertungen

Alle obigen Ausführungen sind selbstverständlich mit einigen Vorbehalten behaftet:

  1. Der stärkste Fisch im Teich: Stockfish
    Der stärkste Fisch im Teich: Stockfish

    Das ist nur eine untersuchte Stellung. Um sich ein Gesamtbild der Bewertungsqualität einer Engine machen zu können, wären Dutzende von komplexen Teststellungen heranzuziehen.

  2. Die obigen Engine-Outputs sind Standanalysen. Eine Analyse im eigentlichen Sinne bedürfte der interaktiven Recherche in allen Hauptvarianten, erst danach könnte ein Programm die Stellung wirklich zuverlässig einschätzen.
  3. Was nach „nur“ einer Minute des Rechnens eine Engine an Varianten deklariert, kann nach zehn oder dreißig Minuten revidiert werden. Allerdings zeigt die Erfahrung, dass bei den modernen neuronalen Engines eine lange Analysedauer einen geringeren Stellenwert hat als bei den früheren Alpha-Beta-Programmen.
    Zudem ist eine Minute unter den heutigen Hard- und Software-Bedingungen keineswegs zu kurz. Denn erstens spielen sich 99 Prozent aller Engine-Turniere in einem Bedenkzeit-Bereich von 5-10 Sekunden/pro Zug ab, und zweitens vermögen moderne Multi-Threads-Programme 99 Prozent aller Teststellungen ebenfalls im Sekundenbereich zu lösen. Eine ganze Minute Bedenkzeit ist also unter heutigen Bedingungen eine „halbe Ewigkeit“, insofern besteht hier ein großer Praxisbezug.
  4. Der Bereich „Engine-Analyse“ hat noch viele weitere Aspekte; ein wichtiger wäre z.B. das Fernschach. Hier ist ein verlässliches Programm beim Ausschluss von taktischen Fehlern und bei der Suche nach vielversprechenden Varianten unerlässlich. (Trotzdem bleibt bei nahezu gleicherwertigen Alternativen die finale Entscheidungsgewalt nach wie vor beim Fernschachspieler).
  5. Das Hauptproblem aller Outputs von Engines ist ein bleibendes: Die Interpretation der numerischen Angaben. Ein „1.00“ bei LeelaChess bedeutet nicht das Gleiche wie bei Stockfish oder bei ShashChess. Diesem Problem lässt sich eigentlich nur statistisch beikommen, indem man bei tausenden von z.B. SF-Partien untersucht, in wie vielen Fällen prozentual z.B. eine frühe „1.00“-Bewertung tatsächlich zum Partiegewinn führte.

Stockfish & CorChess beste Analysatoren

Anzeige Amazon: Elektronisches Schach, Elektronisches Schach-Brettspiel, Für Kinder Und Erwachsene. Einzigartiger Schachset-Stift Mit Großem Display,Collector88
Anzeige

Müsste man nun aber trotz dieser Einschränkungen aufgrund der obigen Standanalysen eine vorsichtige – und naturgemäß simplifizierende – Bewertung der Bewertung vornehmen, wäre das Resultat eindeutig: Unter zehn Top-Engines ist momentan nur ein Programm, das innerhalb einer kürzeren Zeit eine wirklich verlässliche Stellungseinschätzung liefert (die zahlreichen SF-Clones seien hier mal außen vor; sie können bei schachlichen Teiluntersuchungen aber durchaus hilfreicher sein als der Generalissimus Stockfish).

  • Die vorsichtige Behauptung ist also: Die Nummer Eins der Engine-Turniere dürfte auch im Bereich Engine-Analyse die Nummer Eins sein.
  • Eine erste Alternative bei der vertieften Interaktiven Analyse könnte CorChess sein. (Laut Programmierer wurde das Programm auch explizit für Langzeit-Analysen designed, z.B. für Fernschach).
  • Interessante Zweit- und Drittzüge werden oft auch von LeelaChess geliefert. ♦

P.S. Kurz nach Veröffentlichung dieses Artikels haben die Macher von Stockfish angekündigt, dass die Engine seit 5. November 2022 eine einschneidende Veränderung ihrer Bewertungs-Algorithmen erfährt. Die Default-Evaluationseinstellungen des Programmes sollen deutlich nach unten korrigiert worden sein, Stockfish wird also inskünftig „weniger hoch“ bewerten.
Für die Analyse könnte sich das in Teilbereichen auch als kontraproduktiv erweisen, da sich der numerische Range des Outputs quasi „verkleinert“ und ggf. die Differenzierung darunter leidet. Inwiefern es sich auf die Turnier-Performance auswirken wird, ist abzuwarten. Die Community wird sicher beides näher unter die Lupe nehmen…

Lesen Sie im GLAREAN MAGAZIN zum Thema KI-Schach auch über LeelaChess: Als Autodidakt zur Weltspitze


Der GLAREAN-Herausgeber bei INSTAGRAM


 

Ein Kommentar

  1. Cooler Artikel! Arbeite selber viel mit Engines für meine Partien. Jetzt hat man einige Fakten mehr über deren Bewertungen, und kann die Berechnungen besser einordnen. Schade habt ihr den neuen Ethereal nicht noch verglichen. Scheint, wie man so liest, ebenfalls ein Analyse-Star zu sein (?!) Jedenfalls Danke! Bitte weitere Computerschachartikel! Grüsse Renato

Kommentare sind willkommen! (Keine E-Mail-Pflicht)