Schachprogramm
Ein Schachprogramm ist ein Computerprogramm zum Spielen von Schach.
Table of contents |
2 Aufbau 3 Besonderheiten 4 Freie Schachprogramme: 5 Siehe auch 6 Literatur |
John von Neumann klassifizierte das Schachspiel in seiner Spieltheorie als Zwei-Personen-Nullsummenspiel mit vollständiger Information.
Diese Klasse von Problemen (dazu gehört auch Tic tac toe) kann mit dem Minmax-Algorithmus gelöst werden.
Schach ist jedoch zu komplex, um den Suchbaum vollständig abarbeiten zu können.
Schachprogramme sind deshalb auf Näherungsverfahren angewiesen.
Ein sehr frühes Schachprogramm wurde 1950 von Claude Shannon entwickelt. Dieses Programm wurde mangels leistungsfähiger Computer auf Notizzetteln simuliert. Vorher hatte jedoch bereits Konrad Zuse ein Schachprogramm in seiner Programmiersprache Plankalkül erstellt.
Endspiel-Datenbank: Im Endspiel, wenn nur mehr wenige Figuren auf dem Brett sind, kann man den optimalen Zug im Vorhinein durch vollständige Analyse berechnen. Es gibt nicht wenige Endspielstellungen, in denen das menschliche Denken, aber auch die Computeranalyse in Echtzeit völlig überfordert wären. Viele Schachprogramme verwenden deshalb Endspiel-Datenbanken, die alle möglichen Stellungen mit 3, 4 oder 5 Figuren sowie deren Ausgang (bei optimalem Spiel) enthalten.
Geschichte
Aufbau
Zuggenerator
Der Zuggenerator erzeugt, ausgehend von einem bestimmten Spielstand, eine Liste aller möglichen Züge.Bewertungsfunktion
Die Bewertungsfunktion liefert aufgrund von Heuristiken eine ungefähre Bewertung der aktuellen Stellung zurück.Zugauswahl
Die Zugauswahl funktioniert im Wesentlichen nach dem Minmax-Algorithmus.Besonderheiten
Eröffnungsbibliothek: Schach wird im Wettkampf auf Zeit gespielt, das heißt, für eine Anzahl von Zügen steht nur eine definierte Zeit zur Verfügung. Viele Schachprogramme sind daher mit einer Eröffnungsbibliothek ausgestattet, in der sehr viele "gute" Zugreihenfolgen in der Eröffnungsphase von Schachspielen abgespeichert sind. In der Anfangsphase des Schachspiels sieht das Programm in dieser Bibliothek nach, welcher Zug in einer bestimmten Brettstellung der geeignetste ist. Dieses "Nachsehen" geht schneller, als den Zug auszurechnen. Die so gesparte Rechenzeit steht dem Programm dann in späteren Phasen des Spiels zur Verfügung. Das Verfahren, Brettstellungen einschließlich der "guten" Züge abzuspeichern, ist nur für Eröffnung und Endspiel sinnvoll, da hier die Anzahl der Brettstellungen begrenzt ist.Freie Schachprogramme:
Siehe auch
Literatur