Frage:
Wie ist ein Computer programmiert, um Schach zu spielen?
Suhail cholassery
2013-04-27 10:52:19 UTC
view on stackexchange narkive permalink

Wie ist ein Computer so programmiert, dass er Schach spielt? Auf welche Weise sortieren sie die Bewegungen? Meine Frage betrifft nicht das Programmieren, sondern die Idee hinter dem Programmieren, um Schach zu spielen. Das kann mir im Schach wirklich helfen.

Drei antworten:
#1
+8
tbischel
2013-04-28 10:32:46 UTC
view on stackexchange narkive permalink

Die Schachprogrammierung ist voll von "Faustregeln", die auf Ihr eigenes Schach angewendet werden können. Schachprogrammierung hat viele Aspekte ... aber die wichtigsten sind die Baumsuche und eine heuristische Auswertung. Hier sind einige Ideen, die Sie möglicherweise auf Ihre Spiele anwenden können:

  • Minimax-Suche: Die Grundlage für die formalisierte gegnerische Suche ... Ich hoffe, das Prinzip Hier war intuitiv.
  • Bewertung: Ein Computer bewertet eine Position, indem er Metriken über Materialbilanz, Königssicherheit, Aktivität und Bauernstruktur kombiniert. Dies geht in ein strategisches Verständnis einer bestimmten Position ein.
  • Iterative Vertiefung: Die anwendbare Idee hier könnte darin bestehen, zuerst Ihre Kandidatenliste zu betrachten, bevor Sie auf eine tiefere Ebene von übergehen Analyse.
  • Killer Moves: Ein erstaunlicher Zug, der in einer Zeile Ihrer Analyse entdeckt wurde, kann auch in anderen Analysezeilen angewendet werden. Betrachten Sie ihn früh im Prozess.
  • Null Move Pruning: Sie können die Absichten Ihrer Gegner besser verstehen, indem Sie überlegen, welche Züge sie machen würden, wenn Sie Ihren eigenen Zug überspringen würden.
  • Ruhesuche: Wenn Sie das Ende einer Analyse erreicht haben, stellen Sie sicher, dass noch alles in Ordnung ist, wenn Sie die Spannung in der Position lösen möchten.
  • MVV-LVA: Dies Eines ist offensichtlich, aber bei der Betrachtung von Erfassungsmustern ist es normalerweise eine gute Idee, das wertvollste Opfer zu identifizieren und mit dem am wenigsten wertvollen Angreifer zu nehmen.
  • Alpha Beta-Suche: Sie können aufhören Betrachten Sie eine Linie, wenn Sie die erste Widerlegung finden anstatt weiter nach einer besseren Widerlegung zu suchen.
+1 für gute Informationen, aber ich glaube nicht, dass dies auf menschliches Schach angewendet werden kann.
Es scheint, dass mehr auf menschliches Schach angewendet werden kann, als ich erwartet hätte, zum Beispiel Alpha Beta Search, MVV-LVA und vielleicht Null Move Pruning. Wir nennen sie einfach verschiedene Dinge im Brettspiel.
@TonyEnnis vielleicht nicht direkt, aber z.B. Die Bewertung einer Position ist so ziemlich eine Kodifizierung verschiedener menschlicher "Faustregeln", die möglicherweise durch tatsächliche statistische Analysen verfeinert werden, um das Gewicht und die Anwendbarkeit der Regel zu bestimmen. Durch das Studium einer bestimmten Implementierung kann ein Mensch herausfinden, welchen Positionselementen ein Computer einen Wert verleiht. Das heißt, es wäre wahrscheinlich viel einfacher, nur ein aktuelles Buch zum gleichen Thema zu lesen (das ausführliche Erklärungen enthalten würde).
#2
+4
AAP
2013-04-27 21:50:04 UTC
view on stackexchange narkive permalink

Wenn Sie alle schmutzigen Details der Schachprogrammierung möchten, ist dies eine gute Website: http://chessprogramming.wikispaces.com

#3
+3
Edward Goodson
2013-04-27 11:44:26 UTC
view on stackexchange narkive permalink

Eine Computermethode zum Schachspielen ist für einen menschlichen Spieler wirklich sehr wenig nützlich. Computer haben keine wahre Intelligenz. Was sie haben, ist die Fähigkeit, eine sehr große Anzahl von Anweisungen in sehr kurzer Zeit auszuführen. Der Computer verwendet eine Brute-Force-Methode, bei der jede mögliche Bewegung untersucht und dann die Anzahl der Möglichkeiten verringert wird, indem Werte verglichen werden, die verschiedenen Dingen wie aktiven oder inaktiven Teilen, tatsächlichen Teilewerten und bestimmten Bewegungsvariationen zugewiesen werden, die erzwungen werden können (solange) Die gesamte Bewegungskette befindet sich innerhalb ihres Ereignishorizonts. Ein Mensch kann das niemals tun. Menschen erkennen Positionen und wissen, dass in dieser Position diese Art von Bewegung wahrscheinlich eine Rolle spielt. Der menschliche Spieler überprüft somit viel weniger Züge um mehrere Größenordnungen, wählt jedoch bessere Kandidatenzüge zum Auschecken. Siehe meine Antwort auf "Wie denken Schachengines?" Wie "denken" Schachmaschinen? Weitere Informationen zu den Besonderheiten der Methoden der Schachmaschinen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...