Anmerkungen zu Shannons Schachcomputer

Vorbemerkung

Die beiden Artikel [1], [2] von Shannon behandeln das Thema aus genereller, d.h. theoretischer Sicht. In [3] werden dann nur die Programme anderer Autoren besprochen; einen Hinweis auf eigene praktische Versuche gibt es nicht. Es wird allerdings erwähnt, dass die damaligen Schachprogramme notorisch schlecht im Endspiel waren, weil sie nicht die Methode umschalten.

Interessant ist die Abschätzung am Ende von Kapitel 5 in [1], dass etwas 3000 Bits an Daten benötigt werden, um einen akzeptablen (nicht lernenden) Schachcomputer zu erstellen. Damit wären allein 3000 Relais für die eigentlichen Bits ohne Adressierung notwendig, sofern nicht andere Speichermedien verwendet werden. Allein schon hieraus ergibt sich, dass die Maschine kein vollgültiger Schachcomputer sein konnte.

Wie aus anderen Quellen [?] bekannt, behandelt die Maschine nur das einfachste Endspiel und verwendet ca. 150 Relais.
Damit sind zwei Alternativen möglich:

  • Entweder wird ein hier möglicher deterministischer Algorithmus verwendet, um den Aufwand gering zu halten und, just for fun, das elektrische Gegenstück zu der mechanischen Lösung von Torres y Quevedo [4] zu erstellen. Die Maschine wäre dann von derselben Kategorie wie der Throbac.
  • Oder es wurde die in [1] beschriebene Stellungsbewertung umgesetzt, obwohl und vielleicht weil diese als notorisch ungeeignet für eine Endspiel gilt.

Aufriss der Problemstellung

Das Artefakt mit der Benennung "Schachcomputer" stellt nicht den Anspruch eines vollen Schachcomputers; es ist vermutlich ein Versuch, zunächst eine Lösung für die einfachste Form des Endspiels, nämlich nur König und Turm, zu studieren. Dies muss meiner Ansicht nach so verstanden werden, dass drei Figuren spielen, die beiden Könige und ein Turm, wie auch der Einleitung von [1] erwähnte mechanische Lösung von Torres y Quevedo [4].
Ein weiterer Turm anderer Farbe wird normalerweise als Matt angesehen und macht daher keinen Sinn. Ein weiterer Turm der gleichen Farbe bringt keine signifikante zusätzliche Komplexität und ist daher gleichfalls nicht anzunehmen.

Eine ähnliche Abschätzung wie oben könnte lauten:

  • Entweder es wird das Spielfeld mit 64 Feldern durch 64 Speicherplätze dargestellt, und in jedem Element die Kennung des Spielsteins codiert. Selbst wenn dafür nur 2 Bit gebraucht werden, werden allein damit 3*64=196 Bit und mindestens ebensoviele Relais benötigt, also mehr als veranschlagt. Auch ist es in einer Relaischaltung relativ aufwendig, die Figuren auf dem Brett zu finden. Dafür ist die Frage, welche Figur auf den Nachbarpositionen steht, in einem normalen Computerprogramm über eine Indexierung eines Arrays relativ einfach zu beantworten, benötigt aber natürlich eine Addition auf dem Index.
  • Umgekehrt kann für jede der drei Figuren die Brettposition gespeichert werden; bei 64=26 Feldern sind dafür 3*6 = 18 Bit. Damit sind mindesten 18 Relais hierfür notwendig. Wie eine Nachbarposition besetzt ist, kann dann durch eine passende Addition und ein Vergleich festgestellt werden; der Aufwand ist also ansonsten auch nicht höher als bei der ersten Variante.
Damit ist die zweite Lösung vom Speicherplatz her die bessere, und voraussichtlich auch besser für ein dediziertes Schaltwerk geeignet.

Falls ein Algorithmus verwendet wurde, ist dieser als trivial1 (aber damit noch lange nicht explizit bekannt) anzusehen. Das anzuwendende Verfahren lernt jeder ernsthafte Schachspieler recht schnell, auch wenn Schachbücher durchaus ein ganzes Kapitel diesem Thema widmen, weil viele Prinzipien hier gelehrt werden können. Allerdings erfolgt die Beschreibung praktisch immer an Beispielen; eine explizite Formulierung als Algorithmus ist mir nicht bekannt. Dieser ist auch nicht wirklich primitiv, möchte man ein Matt vermeiden.

Ein genuines Matt ist dabei noch relativ einfach zu vermeiden. Entweder ist der Algorithmus so aufgebaut, dass ein solches Matt gar nicht entstehen kann; oder eine spezielle Diagnoseschaltung erkennt die Gefahr und forciert einen anderen Zug.

Sehr viel schwieriger ist es, eine Stellungswiederholung zu vermeiden: Ist dieselbe Stellung (gleicher Spieler am Zug) zum dritten Mal aufgetreten, kann jeder der beiden Spieler wirksam Matt erklären. Hierzu müssten alle vergangenen Positionen gespeichert werden, mit 18Bit pro Position. Nimmt man an, dass ein Matt in 20 Zügen erzwungen werden kann, ergeben sich damit 360 Bit zusätzlich. Daher ist davon auszugehen, dass hier ein Algorithmus verwendet wurde, der per se keine Stellungswiederholungen erzeugt.

Nach [5] kann Schach in 16 Züngen erzwungen werden; der von Quevedo verwendete einfache Algorithmus jedoch benötigte bis zu 60 Züge und überschritt damit die 50-Zug Regel.

Referenzen

[1]
Claude Shannon: Programming a Computer for Playing Chess. Philosophical Magazine, Ser. 7, Vol. 41 (No. 314, March 1950), pp. 256-275
[2]
Claude Shannon: A chess playing machine. Scientific American, Vol. 182 (No. 2, Febr. 1950), pp. 48-51
[3]
Claude Shannon: Game playing machines. Jornal Franklin Institute, Vol. 260 (1955), pp. 447-453
[4]
Shannon cited Vigneron, H., 1914, Les Automates, La Natura. More references are found in B. Randell, From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torees and Bush. Annals of the History of Computing, Vol. 4, No. 4, October 1982.
[5]
http://www.schachklub-tempelhof.de/comp/quevedo.php


Log In