Kann es einen perfekten Schachalgorithmus geben?

15

Gegenwärtige Schachalgorithmen gehen je nach den Zügen des Spielers und des Gegners etwa 1 oder vielleicht 2 Stufen einen Baum von möglichen Pfaden hinunter. Nehmen wir an, wir haben die Rechenleistung, um einen Algorithmus zu entwickeln, der alle möglichen Bewegungen des Gegners in einem Schachspiel vorhersagt. Ein Algorithmus, der alle möglichen Pfade enthält, die der Gegner zu einem bestimmten Zeitpunkt einschlagen kann, abhängig von den Bewegungen des Spielers. Kann es jemals einen perfekten Schachalgorithmus geben, der niemals verliert? Oder vielleicht ein Algorithmus, der immer gewinnt? Ich meine in der Theorie, dass jemand, der alle möglichen Züge vorhersagen kann, einen Weg finden muss, um jeden einzelnen von ihnen zu besiegen, oder einfach einen anderen Weg wählen kann, wenn ein bestimmter ihn effektiv zur Niederlage führen wird.

edit-- Was ist meine Frage wirklich. Nehmen wir an, wir haben die Rechenleistung für einen perfekten Algorithmus, der sich optimal spielen lässt. Was passiert, wenn der Gegner mit dem gleichen optimalen Algorithmus spielt? Dies gilt auch für alle 2-Spieler-Spiele mit einer begrenzten Anzahl von Zügen (sehr groß oder nicht). Kann es jemals einen optimalen Algorithmus geben, der immer gewinnt?

Persönliche Definition: Ein optimaler Algorithmus ist ein perfekter Algorithmus, der immer gewinnt ... (nicht einer, der niemals verliert, sondern einer, der immer gewinnt)

John Demetriou
quelle
Diese Frage beruht auf mehreren Missverständnissen. Erstens sehen Schachcomputer viel weiter als ein oder zwei Lagen voraus: Noch vor fünf Jahren sahen ziemlich gewöhnliche Schachprogramme auf einem gewöhnlichen Laptop 15-16 Lagen voraus und auf 25+ in kritischen Lagen. Zweitens kann die Definition von "perfekt" als "immer gewinnt" nicht erreicht werden, wie in den Antworten gezeigt. Drittens "prognostizieren" Schach-Engines keine Züge: Sie berechnen und spielen Züge, die gegen mögliche Reaktionen gut sind.
David Richerby

Antworten:

13

Ihre Frage ähnelt der alten Kastanie: "Was passiert, wenn eine unwiderstehliche Kraft auf einen unbeweglichen Gegenstand trifft?" Das Problem liegt in der Frage selbst: Die beiden beschriebenen Entitäten können nicht in demselben logisch konsistenten Universum existieren. Ihr optimaler Algorithmus, ein Algorithmus, der immer gewinnt, kann nicht von beiden Seiten in einem Spiel gespielt werden, in dem eine Seite gewinnen und die andere per Definition verlieren muss. Somit kann Ihr optimaler Algorithmus, wie er definiert ist, nicht existieren.

Kyle Jones
quelle
3
Nun, es kann zum Beispiel ein Algorithmus sein, der den ersten Spieler gewinnen lässt. Dies würde bedeuten, zuerst zu spielen, hat einen Vorteil. Oder vielleicht lässt der optimale Algorithmus nur den zweiten Spieler gewinnen. Dies würde dem zweiten Spieler einen Vorteil verschaffen. Die dritte Möglichkeit (en) ist ein Algorithmus, mit dem einer der Spieler immer ein Unentschieden erzwingen kann, jedoch keinen Gewinn garantiert (denn wie der OP wissen möchte, geschieht dies beispielsweise, wenn beide Spieler dieselbe Gewinnstrategie spielen , wenn es keinen Vorteil gibt, zuerst oder zweitens zu spielen).
Realz Slaw
3
@ Realz Nun ja, wenn Sie die Definition eines "optimalen Algorithmus" ändern, können Sie beweisen, was Sie wollen. Ich habe die Definition verwendet, um die der Fragesteller uns gebeten hat.
Kyle Jones
Das ist die Antwort, die ich versucht habe, aus den Leuten herauszukommen. Es kann keinen Algorithmus geben, der immer gewinnt, da es sich um ein Spiel mit zwei Spielern handelt. Daher kann dieser Algorithmus nicht funktionieren, da beide Spieler denselben Algorithmus haben können. Mindestens einer der beiden muss also nicht gewinnen (verlieren oder unentschieden). . Ich habe meinem Lehrer die gleiche Frage gestellt, und wir haben viel geredet, bis er zu diesem Schluss gekommen ist
John Demetriou,
3
@ JohnDemetriou Das Problem ist, dass diese Schlussfolgerung falsch ist . Schach ist kein symmetrisches Spiel, da es einen First-Mover-Vorteil gibt. Es ist durchaus möglich, dass ein optimaler Algorithmus existiert, mit dem Weiß spielen und gewinnen kann, aber Schwarz kann diesen Algorithmus nicht verwenden, weil es nicht Weiß ist!
Steven Stadnicki
Es ist auch möglich, soll ich beachten Sie , dass zuerst gehen ist nicht wirklich ein Vorteil , und dass es tatsächlich ein Algorithmus, der immer erlaubt Schwarz gegen beste Spiel von Weiß zu gewinnen - aber es sollte sofort klar sein , dass es keinen Algorithmus, der immer könnte Erlaube einem zu gewinnen, ob Schwarz oder Weiß. Deshalb spricht man von "bestmöglichem Ergebnis", weil "von beiden Seiten gewinnen" trivial unmöglich ist.
Steven Stadnicki
23

Zuallererst glaube ich, dass Schachalgorithmen mehr als zwei Lagen nach unten aussehen, obwohl sie nicht alle verschiedenen Möglichkeiten berücksichtigen. Das Beschneiden des Suchbaums ist sehr wichtig, um die kombinatorische Explosion der Anzahl möglicher Züge zu vermeiden.

Für eine Partie wie Schach gibt es drei Möglichkeiten, den Sieger zu identifizieren: Entweder hat Spieler 1 eine Gewinnstrategie oder Spieler 2 eine Gewinnstrategie, oder beide Spieler ziehen unter optimalen Bedingungen. Es ist nicht bekannt, was beim Schachspiel der Fall ist. Da Schach jedoch ein endliches Spiel ist, gibt es einen Computeralgorithmus, der aus einem sehr großen Tisch besteht und Schach optimal spielt.

Natürlich wäre ein solcher Algorithmus nicht praktisch. Bei einigen einfacheren Spielen wurde jedoch der "Wert" des Spiels (welcher Spieler gewinnt, falls vorhanden) ermittelt und ein optimaler Algorithmus entwickelt. Ein solches Spiel ist als gelöstes Spiel bekannt .

Das mathematische Fach, das sich mit (sogenannten) kombinatorischen Spielen befasst, ist die kombinatorische Spieltheorie . Mathematiker haben eine rekursive Methode entwickelt, um den Wert eines Spiels anhand des Diagramms des Spiels zu bestimmen, das alle zulässigen Positionen und Bewegungen enthält. Sie sollten in der Lage sein, eine Beschreibung dieses Algorithmus im Wikipedia-Eintrag oder in Vorlesungsnotizen zu diesem Thema zu finden.

Yuval Filmus
quelle
Ja, in der Tat, aber ich habe versucht, auf jede Antwort eine andere Frage zu stellen. Was passiert, wenn beide Spieler mit dem optimalen Algorithmus spielen? Was passiert, wenn ein Spieler einen Weg findet, den optimalen Algorithmus zu besiegen?
John Demetriou
11
@JohnDemetriou Wenn beide Spieler optimal spielen, erhalten Sie ein Ergebnis. Dieses Ergebnis nennt man den Wert des Spiels. Wenn Schach weiß ist, bedeutet das, dass nichts, was Schwarz tun könnte, einen weißen Spieler schlagen könnte, der optimal spielt. Weiß hat effektiv ein riesiges Buch (oder ist in der Lage, den Zug aus einem solchen Buch rechnerisch zu erstellen), das einen perfekten Zähler für jeden Zug enthält, den Schwarz in jeder möglichen Situation machen kann, die sich vom Beginn des Spiels an entwickelt. Übrigens, Chillax auf den Fragezeichen. Einer pro Satz ist ausreichend.
Rrenaud
Ich entschuldige mich für die Fragezeichen. Es ist genau die Art, wie ich im Allgemeinen schreibe. Was ist, wenn Schach der optimalste Gewinn ist? Haben Weiß und Schwarz dasselbe Buch und dieselben Zähler? Was wird dann passieren?
John Demetriou
1
@JohnDemetriou "Optimal" bedeutet "das Beste". Wenn die mathematischen Konsequenzen der Schachregeln sind, dass das beste Schwarz gegen ein optimales Weiß ziehen kann (oder sogar den Sieg von Weiß so lange wie möglich aufschieben kann), dann ist der optimale Algorithmus für Schwarz einer, der dies erreicht. und es ist in der Lage, gegen die meisten nicht optimalen Gegner zu gewinnen.
Ben
1
@JohnDemetriou Es ist möglich, dass es einen Algorithmus gibt, der immer als Weiß gewinnt . Offensichtlich konnte dieser Algorithmus aus den bereits genannten Gründen nicht immer als Schwarz gewinnen (weil er gegen sich selbst spielen würde). Es ist sogar möglich, dass sich herausstellt, dass Schwarz Schach perfekt gespielt hat und dass es einen Algorithmus gibt, der Schwarz einen Sieg gegen jeden Gegner garantiert. Wenn Sie einen Algorithmus meinen, der immer von beiden Seiten gewinnt, dann schlage ich vor, diese Terminologie zu verwenden. 'optimal' hat bereits eine klar definierte Bedeutung.
Steven Stadnicki
8

Zuallererst sehen gute Schachalgorithmen mehr als 1 oder 2 Ebenen aus. Anstatt naive Baumsuche zu verwenden, führen sie Alpha-Beta-Bereinigung durch , um die Anzahl der zu berücksichtigenden Optionen einzugrenzen. Beachten Sie, dass für Eröffnungs- und Endspiele eine große Datenbank von Zügen verwendet wird, da diese eine bessere Leistung bietet als die Baumsuche, die in der Spielmitte verwendet wird.

Auf die Frage: Was Sie fragen, glaube ich, ist "Ist Schach lösbar ?". Hypothetisch ist dies der Fall, obwohl die Meinungen darüber, ob dieses Ergebnis in Kürze erreicht werden kann, unterschiedlich sind. Checkers wurde zum Beispiel 2007 gelöst, hat aber viel weniger Positionen (um die Quadratwurzel der Zahl im Schach). Siehe den Wikipedia-ArtikelWeitere Informationen finden .

Übrigens, die derzeit besten Schach-AIs besiegen oder ziehen fast immer gegen Weltmeister; Die Algorithmen sind also, obwohl sie derzeit nicht perfekt sind, zumindest ziemlich gut!

sjmeverett
quelle
6

Grundsätzlich ist Schach wie jedes andere Spiel lösbar. Wie die anderen Antworten gezeigt haben, ist dies jedoch nicht zu erwarten.

Bearbeiten: In den Kommentaren wurde darauf hingewiesen, dass [1] ein Schwindel ist. Überspringen Sie daher den Rest dieser Antwort.

Allerdings hat es in letzter Zeit einige Entwicklungen in diese Richtung gegeben. [1] behauptet, gezeigt zu haben, dass die Schachöffnung namens King's Gambit gelöst ist : Es gibt nur einen Zug, der für Weiß unentschieden ist, während alle anderen Eröffnungszüge zu einem Gewinn für Schwarz führen. Beachten Sie, dass [1] den Spielbaum nicht in voller Tiefe untersucht hat, sondern nur behauptet, dass diese Ergebnisse mit hoher Wahrscheinlichkeit erhalten bleiben.

[1] http://chessbase.com/newsdetail.asp?newsid=8047

Peter
quelle
1
Sehr interessanter Artikel!
Paresh
Dann ist das kein optimaler Algorithmus. Ich frage mich, ob jemals ein optimaler Algorithmus existieren kann (wenn wir die Rechenleistung haben)
John Demetriou
1
Richtig, und unter Berücksichtigung Ihrer Definition des "optimalen Algorithmus" als einen Algorithmus, der immer gewinnt, kann ein solcher Algorithmus nicht für beide Spieler, Schwarz und Weiß, existieren. Abgesehen von dem größeren (aber endlichen) Spielbaum gibt es in dieser Hinsicht nichts Besonderes im Vergleich zu anderen Spielen wie zum Beispiel Hex, für die die Lösung bereits bekannt ist: Wenn der erste Spieler die optimale (bekannte) Strategie zum Spielen von Hex verwendet gewinnt immer der erste Spieler, egal welcher Algorithmus vom zweiten Spieler verwendet wird.
Peter
Der gelöste Artikel von King's Gambit erwies sich als Scherz. Beachten Sie, dass der Artikel beginnt "Am 31. März zogen der Autor des Rybka-Programms, Vasik Rajlich, und seine Familie aus Warschau, Polen, in eine neue Wohnung in Budapest, Ungarn, um Telefon- und Internetverbindungen aufbauen Vas, hat freundlicherweise dem folgenden Interview zugestimmt "- mit anderen Worten, das war am 1. April ...
Joe K
-1

Ob es möglich ist, immer eine Partie Schach zu gewinnen oder nicht, hängt von den Spielregeln ab. Es gibt jedoch eine Technik / einen Algorithmus namens Minimax (Einzelheiten finden Sie unter https://en.wikipedia.org/wiki/Minimax ). Der Algorithmus besteht darin, vorherzusagen, welcher Spieler in verschiedenen Szenarien mit einer rekursiven Funktion die Oberhand hat. Hier ist eine klare Erklärung, wie dies mit einem einfacheren Spiel funktioniert: Tic-Tac-Toe https://www.neverstopbuilding.com/blog/2013/12/13/tic-tac-toe-understanding-the-minimax-algorithm13 .

Luke der Aussenseiter
quelle
Obwohl andere Antworten nicht explizit auf Minimax verweisen, verweisen einige auf Links, die zu ihnen führen, oder auf Alpha-Beta-Bereinigung, einen Algorithmus, um Minimax effizienter zu implementieren. Was fügt diese Antwort hinzu, die noch nicht gesagt wurde?
Diskrete Eidechse
-3

wird eine weitere Antwort hinzufügen, die den massiven Zustandsraum betont, der in der Frage nicht wirklich begriffen oder in anderen Antworten hervorgehoben ist. muss mit Ihrer Prämisse nicht einverstanden sein:

Nehmen wir an, wir haben die Rechenleistung, um einen Algorithmus zu entwickeln, der alle möglichen Bewegungen des Gegners in einem Schachspiel vorhersagt.

Siehe Info zu Shannon 1950, "Programming a Computer for Playing Chess" (Programmieren eines Computers zum Spielen von Schach), das das Gebiet des computergestützten Schachspielens / -algorithmus einführte und dessen Analyse im Grunde unverändert und immer noch solide ist (auch durch die nachfolgende Computerrevolution und das Moores-Gesetz ). es schätzt die Anzahl der Züge. Es ist absolut astronomisch. im Bereich "nie innerhalb denkbarer Hardware auch bei revolutionären unvorhergesehenen Fortschritten".

Es ist eine dokumentierte psychologische Tatsache [3], wahrscheinlich eine der vielen psychologischen Vorurteile [2], dass Menschen Schwierigkeiten haben, Zahlen dieser Größenordnung zu verstehen. siehe auch counterfactual Denken . [4] , während Supercomputer berechnen massive Probleme, sein unumstritten nicht im Bereich eines Supercomputers , die derzeit gebaut wird oder überhaupt könnte werden gebaut. (und viele Schachfans würden argumentieren, dass diese "kombinatorische Explosion" der Bewegungs- / Positionsmöglichkeiten ein wesentlicher Aspekt des "Flavours" der Spiele ist, der absichtlich in das jahrtausendealte Spiel integriert zu sein scheint ).

Daher unterscheidet sich Schach grundlegend von einigen Spielen, die kleinere "lösbare" Zustandsräume haben (von denen es einige Studien in Informatik und Spieltheorie usw. gibt) und in einigen Schlüsselbereichen nicht in diesem Rahmen bewertet werden können.

Allis schätzte auch die Komplexität des Spielbaums als mindestens 10123, "basierend auf einem durchschnittlichen Verzweigungsfaktor von 35 und einer durchschnittlichen Spieldauer von 80". Zum Vergleich wird die Anzahl der Atome im beobachtbaren Universum, mit denen es oft verglichen wird, auf einen Wert zwischen geschätzt4×1079 und 1081.

Allerdings ist es denkbar (aber unwahrscheinlich), dass es theoretische Einblicke in das Spiel gibt, mit denen der Suchraum erheblich eingeschränkt werden kann. das ist seit 1950 passiert, aber nicht wirklich auf grundlegend bahnbrechende Weise.

siehe auch

[1] Wie hoch ist der Rechenaufwand beim Lösen von Schach, tcs.se

[2] menschliche Vorurteile bei der Beurteilung und Entscheidungsfindung

[3] Psychologiestudenten veröffentlichen Forschungsergebnisse zur Konzeptualisierung von Zahlen

[4] kontrafaktisches Denken

vzn
quelle
Nun, theoretisch begann meine Frage mit der Annahme, dass wir die Rechenleistung haben. Wir kombinieren die Hälfte der Computer der Welt, um als Cluster für Weiß und die andere Hälfte für Schwarz zu arbeiten.
John Demetriou
1
Alter, es gilt auch, wenn Sie jeden Supercomputer anschließen, der jetzt existiert oder jemals existiert. Ihre Frage lautet dann: "In der Theorie, wenn die Theorie falsch war ..." Die Theorie (einschließlich der Physik) besagt, dass Sie offensichtlich nicht (weit) mehr Pfade berechnen können, als es Atome im Universum gibt, jetzt oder jemals in der Zukunft. .
VZN
3
stimmt, aber die Frage beginnt mit LET'S SAY WIR HABEN DIE RECHNERKRAFT, kann das gemacht werden? Das ist die eigentliche Frage: Wenn wir die Macht haben, kann es einen Algorithmus geben?
John Demetriou
+1 für die Angabe, dass es physikalisch unmöglich ist, die Rechenleistung zu erreichen, die für die exakte Lösung des Schachs erforderlich ist. Ich weiß auch nicht, warum alle -1 mit dieser Antwort, ich denke, es ist fair und fügt den anderen Antworten einen guten Einblick hinzu.
Alejandro Piad