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