Alternative Ansätze zur Programmierung der Schachengine


14

Soweit ich das verstehe, funktionieren Schach-Engines ungefähr so:

  1. Berechnung aller möglichen Variationen (Spielbaum) bis zu einer gewissen Tiefe
  2. Bewertung der endgültigen Position anhand einiger Kriterien (Material, Stückaktivität ...)
  3. basierend auf dieser Bewertung entscheiden Sie sich für den besten Zug

Ich verstehe voll und ganz, dass es für einen effizienten Motor Möglichkeiten gibt, bestimmte Linien zu beschneiden, die Tiefe zu begrenzen usw .; aber das ist nicht meine frage.

Die Frage ist: Gibt es alternative Versuche, eine (nicht unbedingt starke, aber auch nicht zufällige) Schachengine zu programmieren, die diesem Schema nicht folgt?


Botvinnik versuchte, den Stammzug zu beschneiden, indem der Computer nur den besten Bewerberzug suchte. Es hat keinen erfolgreichen Versuch gegeben, und Schach ist besser dafür.
Fred Knight

Antworten:


13

In den Anfangsjahren des Computerschachs haben die Menschen versucht, Computerschach auf die gleiche Weise wie Menschen zu unterrichten und dabei strategische Konzepte wie eine gesunde Bauernstruktur oder die Initiative zu erläutern. Diese Versuche wurden bald abgebrochen, da die von Ihnen beschriebene Methode viel erfolgreicher war.

Vor kurzem gab es einen weiteren Versuch, eine Engine über Deep Learning Schach beibringen zu lassen (was wahrscheinlich durch den Erfolg von Googles Go AI gefördert wurde ). Laut dem Artikel, auf den ich verlinkt habe, waren sie ziemlich erfolgreich und haben es geschafft, die IM-Stärke zu erreichen.


1
Nach meinem Verständnis funktioniert Alpha Go genau wie das beschriebene OP und nur die Bewertungsfunktion aus (2.) basiert auf / erstellt durch Deep Learning. Die andere Antwort scheint einverstanden zu sein.
Hermann Döppes

According to the article I linked to, they were quite successful and managed to reach IM strengthWenn Sie jedoch die Originalarbeit lesen, werden Sie feststellen, dass der Artikel den Erfolg stark übertrieben hat.
Salvador Dali

1
@ HermannDöppes Nein, AlphaGo basiert auf der Monte-Carlo-Baumsuche.
SmallChess

3

@Glorfindel ist nicht falsch, aber der Deep-Learning-Ansatz für Schach ist wirklich ein ausgefallener Begriff für die Parametereinstellung in der Schachprogrammierung.

Deep Learning ermöglicht es einer Schach-Engine, eine Bewertungsfunktion zu erlernen, die normalerweise von einem Programmierer von Hand geschrieben wird. Während eines Spiels funktioniert es wie eine normale Schachengine.

Andere Möglichkeiten:

  • GPU-Schachprogrammierung
  • Monte-Carlo-Baumsuche

Der größte Teil Ihrer Antwort sollte ein Kommentar unter [Glorfindels Antwort] ( chess.stackexchange.com/a/16293/2789) sein . Der Teil, der die Frage tatsächlich anspricht, besteht aus nur sieben Wörtern, was für eine Antwort bei weitem nicht ausreicht "GPU-Schachprogrammierung" ist nur eine Methode zur Parallelisierung des Algorithmus, den Sie ansonsten verwenden könnten. Ich denke also nicht, dass dies ein "Ansatz" in dem Sinne ist, nach dem die Frage sucht, sondern lediglich eine Implementierungsmethode.
David Richerby

-2

Bestimmt! WENN du wirklich nur meinst ... "Gibt es theoretisch noch andere Methoden, um eine Schachengine zu codieren?" ... Dann ja !!

Zum Beispiel ... könnte man eine Kopie jeder möglichen Position im Schach speichern (eine riesige Zahl, ich weiß) und für jede eine Bewertung haben. Dann wird die Antwort auf eine gegebene Frage (z. B. "Bester Zug für Weiß in X-Position") sofort durch einfaches Nachschlagen dieses Bretts bekannt. Ist der aktuelle Stand der Computerhardware so, dass dies keinen Sinn ergibt? Nein. Aber das hast du nicht gefragt.

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.