Gibt es eine Schachmaschine, die zeigen kann, ob eine Seite einen erzwungenen Draw hat?


10

Gibt es eine Schachengine mit einem Analysemodus, der anzeigen kann, ob eine Position von beiden Seiten erzwungen wird?

Es ist üblich, dass Motoren Auswertungen von 0,0 ausgeben, wenn sie ein Unentschieden erkennen. Eine Bewertung von 0,0 kann jedoch viele Dinge bedeuten. Angenommen, es ist weiß, um sich zu bewegen, kann eine Bewertung von 0,0 bedeuten:

  • Das Spiel ist sicherlich ein Unentschieden, unabhängig davon, wie einer der Spieler spielt (z. B. unzureichendes Material).
  • Beide Spieler können ein Unentschieden erzwingen. Keiner der Spieler kann hoffen zu gewinnen, wenn sein Gegner perfekt spielt.
  • Unabhängig davon, welche Bewegung Weiß spielt, ist der Computer zu 100% sicher, dass Schwarz ein Unentschieden erzwingen kann, wenn er dies wünscht. Weiß kann nicht hoffen zu gewinnen, wenn Schwarz perfekt spielt. Ein Unentschieden ist das wahrscheinlichste Ergebnis, aber eine tiefere Suche könnte zeigen, dass Schwarz einen Sieg erzwingen kann.
  • Der Computer ist zu 100% sicher, dass Weiß ein Unentschieden erzwingen kann, wenn er dies wünscht. Schwarz kann nicht hoffen zu gewinnen, wenn Weiß perfekt spielt. Ein Unentschieden ist das wahrscheinlichste Ergebnis, aber eine tiefere Suche könnte zeigen, dass Weiß einen Sieg erzwingen kann.
  • Der Computer hat für beide Seiten kein erzwungenes Unentschieden gefunden, aber die Bewertung ist bisher genau gleich. Ein Unentschieden ist das wahrscheinlichste Ergebnis, aber eine tiefere Suche kann später einen Vorteil für eine Seite zeigen.

Um nur ein Beispiel zu geben, wann dies nützlich sein könnte, wenn Weiß nicht gewinnen muss und nur so sicher wie möglich sein möchte, ein Unentschieden zu erzielen, ziehen sie es möglicherweise vor, einen Zug mit der Bewertung +0,0 und einem bekannten erzwungenen Unentschieden zu spielen obwohl ein weiterer Schritt mit einer höheren Bewertung verfügbar ist.

Ein anderes Beispiel ist, dass Sie, wenn Sie einen Gewinn benötigen (dh ein Unentschieden ist genauso schlimm wie ein Verlust), möglicherweise einen Zug mit einer leicht negativen Bewertung spielen möchten, um zu vermeiden, dass Ihr Gegner die Möglichkeit hat, ein Unentschieden zu erzwingen. Dies erhöht zwar Ihre Verlustchance, aber auch Ihre Gewinnchance.

Offensichtlich gibt es Positionen, in denen es schwierig oder unmöglich ist, sicher zu sein, ob eine Zwangsziehung verfügbar ist oder nicht. Wenn der Motor jedoch ein erzwungenes Ziehen ankündigt, muss es möglich sein, ein Ziehen zu erzwingen. Falsch negative Ergebnisse sind akzeptabel, es sollten jedoch keine falsch positiven Ergebnisse vorliegen.

Zusammenfassend möchte ich für eine bestimmte Position wissen, ob einem (oder beiden Spielern) ein erzwungenes Unentschieden zur Verfügung steht. Die Berechnung der numerischen Bewertung der Position ist nicht erforderlich, aber wenn dies gleichzeitig zur Verfügung steht, ist dies ein Bonus.


Ist es nicht wichtig, diesen Teil des Punktes der 6-teiligen Endgame-Tabellen zu kennen?
Tony Ennis

2
Tabellenbasen helfen, denn dann wissen Sie, dass eine Punktzahl von 0,0 mit Sicherheit ein erzwungenes Unentschieden mit optimalem Spiel ist. Aber ich möchte, dass der Motor mir sagt, ob er aus einer beliebigen Startposition ein erzwungenes Ziehen findet, auch (besonders) wenn es mehr als 6 Teile gibt. Wenn beispielsweise Weiß in eine Position gerät, in der es eine ständige Überprüfung erzwingen kann, möchte ich, dass der Motor mir dies mitteilt, auch wenn dies nicht unbedingt die beste Bewegung von Weiß gemäß der Bewertungsfunktion ist.
Mark Byers

Ich bin gespannt, wann Sie diese Art der Berechnung in der Praxis tatsächlich nutzen können. Dies wäre eine schöne Funktion. Bei Stockfischen verwende ich die Funktion "Mehrfachvariation" der UCI-Analyse, mit der die Bewegungen in der Reihenfolge ihrer Bewertungspunkte sortiert werden. Erzwungene Ziehungen werden in der Liste ziemlich offensichtlich angezeigt, wenn es sich um ewige Prüfungen oder Pattsituationen handelt, aber manchmal ist es weniger klar, und wie Sie sagen, wenn Sie tiefer gehen, handelt es sich möglicherweise nicht um eine Ziehung.
Eve Freeman

1
Aber wie gezwungen wird gezwungen? Ich denke, dass der Gegner in vielen Fällen von sogenannten Forced Draws immer noch abweichen kann, aber auf Kosten einer deutlich schlechteren Position. Eine Position, in der Weiß entweder ein Unentschieden oder einen vollen Turm erzwingen kann, wäre kein erzwungenes Unentschieden, was die Nützlichkeit einschränkt.
RemcoGerlich

Wenn Weiß ein Unentschieden erzwingen kann, anstatt einen Turm aufzusteigen, dann würde ich das gerne wissen.
Mark Byers

Antworten:


8

Die kurze Antwort auf Ihre Frage lautet Nein . Es gibt keine Schachmaschine, die zuverlässig anzeigen kann, ob eine Seite ein erzwungenes Unentschieden hat. Zum Beispiel ist diese verriegelte Position ganz klar ein Anziehungspunkt für das menschliche Auge:

Gesperrte Position, hoffnungsloses Unentschieden

Beachten Sie jedoch, dass die Bewertung 0,17 und nicht 0,00 beträgt . Houdini gibt auch 0,05 - ganz gut für Weiß. Dies ist sehr wichtig. Dies deutet darauf hin, dass die Bewertung von 0,00 von diesen Programmen aus einem bestimmten Grund reserviert wird, und tatsächlich ist dies der Fall. Grundsätzlich wird der Computer selbst in einer "gleichen" Position niemals sagen, dass die Punktzahl 0,00 beträgt , sondern der einen oder anderen Seite eine winzige Kante geben.

Also vor diesem Hintergrund zu den Einzelheiten! Erstens, wenn das Spiel aufgrund der Position nur ein Unentschieden ist (z. B. Patt, unzureichendes Material usw.), zeigen die meisten GUIs eine Meldung mit der Aufschrift "Game Drawn" oder etwas in diesem Sinne an. Damit bleiben die komplizierteren Fälle, die Sie in Ihrer Frage erwähnt haben. Um die meisten davon abzudecken, werde ich eine andere Position vorstellen. Dies ist aus Morphy-NN 1-0, New Orleans Blindfold Simul entnommen:

Morphy - NN 1-0, New Orleans Augenbinde Simul

Beachten Sie, dass Morphy derzeit einen Partner in 6 hat, beginnend mit 18.b4+!. Wenn Morphy jedoch irgendwie versäumte, dass dies ein Partner war, hatte er immer noch ein erzwungenes Ziehen durch Wiederholung, was der Computer schnell sieht. Durch Erhöhen der Anzahl der Variationen, die der Computer anzeigt, ist es möglich zu sehen, dass Weiß nach einem Spiel wie 18.Qxc3+?Weiß immer noch ein Unentschieden erzwingen kann, obwohl es einen Turm und ein Stück hinunter ist. Die Bewertung von 0,00 weist uns erneut darauf hin, dass dies eine besondere Position ist, da der Computer eine fortwährende Prüfung berechnen kann. Wenn die Bewegungen 18.Qxc3+? Kxd5auf dem Brett ausgeführt werden, beträgt die Bewertung 0,00 , was darauf hinweist, dass die beste Fortsetzung von Weiß darin besteht, ein Unentschieden zu erzwingen. Wenn Sie dies nicht tun, verlieren Sie das Spiel mit dem besten Spiel.


Zusammenfassend kann also kein vorhandener Motor mit exakter Sicherheit sagen, dass eine Position ein Unentschieden ist. Die Bewertung von 0,00 ist jedoch etwas Besonderes. Wenn dies entweder als Hauptpunktzahl oder als Punktzahl für eine Variation angezeigt wird, bedeutet dies, dass in dieser bestimmten Linie wahrscheinlich ein Unentschieden erzwungen wird. Der einfachste Weg, dies zu überprüfen, wird spielerisch als "Leertaste-Analyse" bezeichnet - wenn der Benutzer die Leertaste immer wieder drückt, um den Computer zu zwingen, den empfohlenen Top-Zug auszuführen. Schließlich gelangen Sie zu einer Position, die sowohl für den Menschen als auch für die Maschine offensichtlich ist.


Und schließlich, um Ihren Punkt über "Verachtung" anzusprechen.

Ein anderes Beispiel ist, dass Sie, wenn Sie einen Gewinn benötigen (dh ein Unentschieden ist genauso schlimm wie ein Verlust), möglicherweise einen Zug mit einer leicht negativen Bewertung spielen möchten, um zu vermeiden, dass Ihr Gegner die Möglichkeit hat, ein Unentschieden zu erzwingen. Dies erhöht zwar Ihre Verlustchance, aber auch Ihre Gewinnchance.

Dies wird unter Schachprogrammierern ganz einfach als Verachtung bezeichnet. Bei den meisten Engines können Sie den Grad der Verachtung in den Einstellungen festlegen. Eine positive Verachtung (100 ist normalerweise ein angemessenes Niveau für die Analyse) weist den Motor an, sich ziemlich anzustrengen (der Wert eines Bauern), um ein Unentschieden zu vermeiden. Eine negative Einstellung führt dazu, dass der Motor einen erzwungenen Zug anstrebt (dh unzureichendes Material, Patt oder unbefristet).


Dies ist ungefähr die gleiche Idee wie in Wes Freemans Kommentar zu der Frage, und genau wie das, was er beschreibt, einige menschliche Eingaben erfordert - "Zwangsentwürfe erscheinen ziemlich offensichtlich [manchmal] in der Liste, aber manchmal ist es weniger klar" - hat Ihre Antwort der Mensch trägt zur "Leertastenanalyse" bei. Aus diesem Grund schlage ich vor, die Bewertungsfunktion in meiner Antwort zu optimieren. Wir machen es so, dass der Motor selbst tatsächlich nach erzwungenen Zügen sucht und uns wissen lässt, wann sie endgültig vorhanden sind. Dies scheint der einzige wesentliche Unterschied zwischen den Ansätzen zu sein.
ETD

@ EdDean Ich stimme zu. Die am schwersten zu findenden Unentschieden sind diejenigen, bei denen ein Endspiel nicht gewonnen werden kann, aber eine Seite für immer auf den Sieg drängen kann. Unabhängig davon wäre die Änderung der Auswertungsfunktion der Motoren ein Ansatz, der jedoch höchstwahrscheinlich nicht in einem angemessenen Zeitrahmen durchgeführt werden kann. Es ist derzeit möglich, mit den Einstellungen für Verachtung herumzuspielen, aber das bedeutet nicht, dass Sie eine Engine neu programmieren, wie Sie es auch vorschlagen. Die vom Menschen bearbeitbaren Einstellungen sind bei aktuellen Engines ziemlich begrenzt.
Andrew

Diese Einstellung der Verachtung ist ordentlich - hatte es nicht bemerkt.
Eve Freeman

2
Ich glaube übrigens nicht, dass 0,00 immer auf ein erzwungenes Unentschieden hinweist, was Sie anscheinend impliziert haben. Ich sehe es gelegentlich sogar früh in Eröffnungen - ich nehme an, es bedeutet nur, dass es angesichts der aktuellen Position und des aktuellen Materials wahrscheinlich sogar ist und die Bewertung zufällig 0,00 beträgt.
Eve Freeman

3
Interessant. Bei Stockfisch ist es definitiv nicht. Wenn Sie nur die Öffnungsposition für einige Sekunden analysieren, erhalten Sie viele 0,00 Punkte.
Eve Freeman

4

So wie Motoren an bestimmten Punkten einen erzwungenen Partner sehen können, der einige Züge entfernt ist, weil genügend Linien erzwungen werden, damit der Motor in der verbleibenden Tiefe bis zum Partner alles perfekt sehen kann, gibt es auch Kreuzungen in Schachspielen, die einen ermöglichen Motor, um ein erzwungenes Unentschieden zu sehen, aus dem gleichen Grund, um die begrenzten Möglichkeiten im Spiel vollständig überblicken zu können.

Darüber hinaus wäre es einfach, die Bewertungsfunktion eines Motors zu optimieren, um Bewegungen zu suchen und zu bevorzugen, die zu solchen erzwungenen Zügen führen: Ebenso wie das Erreichen eines Partners typischerweise einen enormen Wert erhält, der alle anderen numerischen Faktoren des Bewertungsalgorithmus des Motors in den Schatten stellt Um das Spiel des Motors zum endgültigen Ziel zu führen, könnte man stattdessen einen so enormen numerischen Wert für das Erreichen einer der Arten von Ziehungen angeben, die ich mir vorgestellt habe.

Bewerten Sie beispielsweise automatisch jede Position, in der der Gegner nicht genügend Material hat, um sich als +1000000 zu paaren. Wenn der Motor dann jemals die Möglichkeit hat, so viel Material des Gegners abzuschieben, wird er Sie darüber informieren. Passen Sie außerdem den Bewertungsalgorithmus an, um eine dreifache Wiederholung als +1000000 anstelle der üblichen 0 zu bewerten. Wenn es dann zu einer erzwungenen Wiederholung kommt (wie in einem Szenario mit fortwährender Überprüfung), wird die Engine sie lieben und Sie darüber informieren . Geben Sie in ähnlicher Weise +1000000 an, wenn Sie eine Tischbasisziehung gewaltsam erreichen können.

Sie können auch sicherstellen, dass der Motor diese Bewertungen nur dann abgibt, wenn die vollständige Gewissheit besteht, dass die Ziehungen tatsächlich erzwungen werden (da der Baum zwischen hier und dort vollständig überprüft werden konnte), genau wie bei einem Motor, der keinen Partner ankündigt, es sei denn ist sicher. Sie erhalten also keine falsch positiven Ergebnisse, obwohl es natürlich viele falsch negative Ergebnisse gibt, die Sie in Ihrer Frage vernünftigerweise / unbedingt zulassen.


Ich glaube nicht, dass ein Motor aufgrund von Verachtungsfaktoren und der Art und Weise, wie er beschnitten wird, "out of the box" so funktioniert. Wenn ein Unentschieden gefunden wird, wird grundsätzlich jede Linie ausgeschlossen, die Material gewonnen hat. So wäre es zum Beispiel besser, den König zu überprüfen, als einen freien Turm zu erobern. Ich erwäge eine längere Antwort veröffentlichen , weil es gibt Möglichkeiten , aktuelle Motoren zu verwenden , um dies zu tun, aber ich möchte nicht zu viele Geheimnisse Vorbereitung zum Verschenken. ;)
Andrew

Kein Motor funktioniert so, wie ich es "out of the box" beschrieben habe, da sie darauf ausgelegt sind, Gewinne zu erzielen. Aus dem gleichen Grund müssten Sie einige Anpassungen vornehmen, damit ein normaler Motor beispielsweise Selbstmordschach spielt. Ich habe bereits die Bewertungsfunktion geändert. Jeder Verachtungsfaktor kann zusammen mit dem, was ich vorgeschlagen habe, optimiert / deaktiviert werden, wenn nötig. Ja? Mein Hauptpunkt ist, dass ich denke, dass vorhandene Motoren (auf ziemlich einfache Weise) neu ausgerichtet werden können, um so zu funktionieren, wie Mark es wünscht. Zumindest im Moment sehe ich dies immer noch als einen Weg, "aktuelle Motoren zu verwenden". Meine Meinung kann jedoch immer geändert werden. :)
ETD
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.