Ein
Schachprogramm
ist ein
Computerprogramm .html"> (
Schach).
Geschichte
John von Neumann .html"> (
Spieltheorie) als Zwei-Personen-
Nullsummenspiel | (
Nullsummenspiel) mit vollständiger Information.
Diese Klasse von Problemen (dazu gehört auch
Tic tac toe .html"> (
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 .html"> (
Claude Shannon) entwickelt. Dieses Programm wurde mangels leistungsfähiger Computer händisch simuliert. Vorher hatte jedoch bereits
Konrad Zuse .html"> (
Plankalkül) erstellt.
Aufbau
= Zuggenerator
=
Der Zuggenerator erzeugt, ausgehend von einem bestimmten Spielstand, eine Liste aller möglichen Züge.
= Bewertungsfunktion
=
Die Bewertungsfunktion liefert aufgrund von
Heuristik | (
Heuristik)en eine ungefähre Bewertung der aktuellen Stellung zurück.
= Zugauswahl
=
Die Zugauswahl funktioniert im Wesentlichen nach dem
Minmax-Algorithmus | (
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.
''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-Datenbank | (
Endspiel-Datenbank)en, die alle möglichen Stellungen mit 3, 4 oder 5 Figuren sowie deren Ausgang (bei optimalem Spiel enthalten.
Freie Schachprogramme:
http://www.gnu.org/software/chess/ - Gnu Chess
http://www.limunltd.com/crafty/ - Crafty
Siehe auch
Schachcomputer | (Schachcomputer)
ChessBase | (ChessBase)
Literatur
Bartel, Rainer; Kraas, Hans-Joachim; Schrüfer, Günther: ''Das große Computerschachbuch'', Data Becker, 1985, ISBN 3890111173; gute Einführung in die Programmierung von Computerschach mit Beispielen in Basic | (Basic).
Shannon, Claude | (Claude Shannon|Shannon, Claude): ''Programming A Computer for Playing Chess'', Philosophical Magazine 1950/41, S. 256-257
Shannon, Claude | (Claude Shannon|Shannon, Claude): ''Programming A Computer To Play Chess'', Scientific American 2/1950, S. 48-51
Home |
Verzeichnis | |
Mail
Google-Suche | MSN-Suche
History:
Copyright (c), 2004
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation.
A copy of the license is included in the section entitled
"GNU Free Documentation License".