Soweit ich das verstehe, funktionieren Schach-Engines ungefähr so:
- Berechnung aller möglichen Variationen (Spielbaum) bis zu einer gewissen Tiefe
- Bewertung der endgültigen Position anhand einiger Kriterien (Material, Stückaktivität ...)
- 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?
engines
programming
computer-chess
user1583209
quelle
quelle
Antworten:
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.
quelle
According to the article I linked to, they were quite successful and managed to reach IM strength
Wenn Sie jedoch die Originalarbeit lesen, werden Sie feststellen, dass der Artikel den Erfolg stark übertrieben hat.@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:
quelle
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.
quelle