Mythos Computerschach

Ein Menschheitstraum wie das Fliegen

"Meine Damen und Herren, ich habe eine Maschine gebaut wie es sie bisher noch nie gegeben hat: Einen automatischen Schachspieler! Er ist in der Lage, jeden Herausforderer zu schlagen ...".

Mit etwa diesen Worten leitete Wolfgang von Kempelen (1734 - 1804) die Vorführung seines berühmten Schachautomaten ein: dem Schachtürken. Das erste Mal geschah dies 1770 am Hofe der Kaiserin von Österreich Maria Theresia in Schönbrunn. Und es hat noch viele weitere Partien vor berühmten Persönlichkeiten in Europa und Übersee gegeben. Zum illustren Kreis der Gegner sollen Friedrich der Große, Benjamin Franklin und der bekannteste Schachspieler seiner Zeit, Philidor, zählen. In einer überlieferten Partie von 1809 verliert Napoleon Bonaparte gegen den Schachtürken.

Teil des Automaten war eine türkisch gekleidete Puppe, die die Figuren auf dem Brett führte. Auf Youtube sind Filme von Nachbauten zu bewundern, das Ganze mutet ziemlich unheimlich an. Es ist klar, dass die Menschen im ausgehenden 18. Jahrhundert fasziniert waren, unter Ihnen später auch Edgar Alan Poe. Die Begriffe "getürkt" und "einen Türken bauen" sollen angeblich dem Schachtürken entstammen. Denn tatsächlich handelte es sich um einen Trick; verborgen im Innern der Kiste steuerte ein menschlicher Spieler das Gerät.

Doch das kam erst sehr viel später ans Licht. Zuvor regte dieses Wunderwerk der Mechanik die Diskussion an, ob eine Maschine dem Menschen geistig ebenbürtig sein kann. Oder ihm sogar überlegen ... Schach ist für diese Fragestellung geradezu prädestiniert.

Schach und Computerschach

Foto: Stefan Toth
Das Schachspiel ist sehr alt. Die Ursprünge liegen in Indien und Persien; auf verschiedenen Wegen gelangte es nach Europa und ist hier spätestens seit dem 13. Jahrhundert präsent. Schach begleitet uns durch die Geschichte, in jeder Epoche finden sich Darstellungen von Menschen, die Schach spielen. Auch heute gilt es hier noch als das bedeutendste Brettspiel. Kein Wunder also, dass nach von Kempelen viele weitere Erfinder und Wissenschaftler sich der Aufgabe annahmen, Maschinen zu konstruieren, oder Algorithmen zu erdenken, die Schach spielen. Viele gute Bekannte der Informatik finden sich darunter, von Charles Babbage über Alan Turing bis zu Konrad Zuse.

Noch heute lesenswert ist der schöne Artikel "Programming a Computer for Playing Chess" von Claude Shannon. Gleich zu Beginn führt er aus, dass diese Aufgabe vielleicht von keinerlei praktischem Nutzen ist. Gleichzeitig wäre aber zu erwarten, dass wenn man einem Computer beibringen kann, Schach zu spielen, auch andere, ähnlich gelagerte Aufgaben, lösbar wären: Das Handeln mit Aktien etwa, das Lösen logistischer Probleme, oder das Führen militärischer Operationen.

Und so wurde Schach das Standardbeispiel für künstliche Intelligenz. Und während zu Beginn noch bestritten wurde, dass jemals ein Computer einen menschlichen Spieler schlagen können würde, wurde die Messlatte nach und nach angehoben – getrieben von Fortschritten in Hardware und Software. Die 90er brachten dann medienwirksame Gladiatorenkämpfe aufs Brett: Der aktuelle Schachweltmeister stellvertretend für die ganze Menschheit gegen eine Maschine (z.B. Kasparow gegen Deep Blue 1997). Moderne Schachprogramme sind von Normalsterblichen nicht mehr zu schlagen.

Eine eigene Schachengine

Für Entwickler stellt das Schreiben eines eigenen Schachprogrammes, einer sogenannten Engine, auch heute noch eine interessante Herausforderung dar. Kann ich etwas entwerfen und implementieren, das mich selbst schlägt? Wie schneidet es gegen die Lösungen anderer Entwickler ab? Wie gegen den aktuellen Computerschachweltmeister?

Ich verwende Schachengines schon länger als Beispiel in Entwurfsworkshops. Sie eignen sich exzellent, um Designprinzipien und -muster zu demonstrieren, und machen den Teilnehmern regelmäßig Riesenspaß. Vielleicht kann ich Sie ja auch anstecken, und Sie probieren sich selbst einmal daran eine Engine zu programmieren. Das Fallbeispiel DokChess vermittelt Ihnen ganz nebenbei (eigentlich ist es ja ein Beispiel für Dokumentation) das nötige Rüstzeug.

aus: Stefan Zörner, "Softwarearchitekturen dokumentieren und kommunizieren", Hanser Verlag 2012