nachdem ich nun fast täglich in verschiedenen Schachcomputer-Forum lesen muss, wie gut oder schlecht bestimmte Schachcomputer sind und dabei sehr viel Unsinn zusammenkommt, möchte ich für etwas Klarheit sorgen. Fangen wir zunächst mit den Stellungstests an, mit welchen die Schachcomputer bewertet werden. Speziell das Thema Hashtables wird immer wieder angesprochen. Bei Stellungstests setzt man einem Schachcomputer nacheinander verschiedene Stellungen vor die Nase, in welchen er den richtigen Zug finden muss. Dabei wird die Zeit gemessen und am Ende erfolgt eine Gesamtbewertung der Spielstärke des Schachcomputers. In Verbindung mit diesen Gesamtbewertungen liest man dann in Foren, dass dieser oder jener Schachcomputer vorhandene Hashtables nicht richtig nutzt und diese praktisch überflüssig sind. Sehr aktuell wird beispielsweise der neue Schachcomputer Chess Genius Pro getestet. Das Gerät besitzt 160 KB (Kilobyte) RAM, welches für Hashtables genutzt werden.
Um zu verstehen, wie unsinnig Stellungstests in Verbindung mit Hashtables sind, muss man verstehen, was diese Hashtables überhaupt für einen Zweck bei Schachcomputern haben. Wenn wir gegen einen Schachcomputer ohne Hashtables spielen, berechnet dieser nach jedem Zug die Stellung neu. Das bedeutet, dass das Gehirn des Schachcomputers nicht weiß, was bisher auf dem Brett geschehen ist und sich auch nicht an seine vorherig berechneten Varianten erinnert. Für den Schachcomputer ist praktisch nach jedem Zug eine neue Stellung auf dem Brett, die er ohne Vorwisssen berechnen muss. Dies führt dazu, dass der Computer eine Variante, welche sich erst nach einiger Suchtiefe als schlecht erweist und daher verworfen wird, im darauf folgendem Zug praktisch nochmal von vorne berechnen muss. Dies frisst viel unnötige Zeit und lenkt den Schachcomputer ab, die richtige Richtung zu finden. Hier kommen nun die Hashtables ins Spiel. Hat ein Schachcomputer Hashtables, kann er bereits berechnete Varianten eines Zuges dort ablegen und im folgenden Zug darauf zurückgreifen. Eine dort gespeicherte Gewinnvariante muss also im nächsten Zug nicht neu berechnet werden.
Und jetzt kommen wir zu den sogenannten Stellungstests. In Stellungstests spielen Hashtables eine untergeordnete Rolle. Warum, sollte nun jedem klar sein. Wenn man einem Schachcomputer eine Stellung vorsetzt, in welcher er den besten Zug finden soll, hat er praktisch leere Hashtables, da der vorgesetzten Stellung keine Berechnung vorausging. Zwar füllt der Schachcomputer nun den Hash-Speicher mit Varianten, aber diese nützen ihm recht wenig, da er ja anschließend in den Stellungstests eine neue Test-Stellung vorgesetzt bekommt, welche mit der vorherigen Stellungs nichts mehr zutun hat.
Wenn man also die Spielstärke eines Schachcomputers anhand von Stellungstests bewerten will und dies einmal mit eingeschalteten Hashtables und einmal mit ausgeschalteten Hashtables vornimmt, wird mit mit Sicherheit fast identische Ergebnisse erhalten. Anschließend liest man dann in Foren, dass die Hashtables bei diesem und jenen Schachcomputer praktisch keinen Vorteil bringen. Leider schenken dann viele Leute diesem Unsinn Glauben.
Damit komme ich auch schon zum nächsten Irrglauben. Oft wird die Frage gestellt, wie viel Speicher einem Schachcomputer an Hashtables gegeben werden sollte. Hier ist der Mephisto Montreux ein gutes Beispiel. Dieser hat 128KB (Kilobyte) Speicher für Hashtables und dieser kann bei Bedarf auf satte 2MB (Megabyte) erweitert werden. Das haben auch einige Besitzer des Gerätes gemacht und haben sich anschließend gewundert, dass das Gerät nicht wirklich stärker ist. Einige Ahnungslose haben dann mit 2MB Hashtables diese oben genannten Stellungstests gemacht und es sollte ja nun klar sein, warum es bei diesen Stellungstests keine merkliche Spielstärkesteigerung gibt. Aber wie sieht es mit gespielten Partien aus? Sollte hier der Mehrspeicher nicht Wunder bewirken? Hierzu muss man folgendes Wissen. Die damaligen Brettschachcomputer berechnen nicht, wie die heutigen Engines, Millionen von Stellungen und Varianten pro Sekunde, sondern ein Vielfaches weniger. Dies bedeutet, dass, im Gegensatz zu heutigen Engines, der Speicher mit den Hashtables nicht so schnell gefüllt wird. Beim Beispiel mit dem Mephisto Montreux (128KB) bedeutet das, dass das Teil für 128000 Zeichen Speicher hat, in welchen Varianten mit Bewertung abgespeichert werden können. Das ist schon eine große Menge. Um diesen "kleinen" Speicher zu füllen, braucht der Mephisto Montreux schon etwas Zeit. Beim Auslesen der Hashtables benötigt der Mephisto Montreux dann ebenfalls etwas Zeit und hier sind diese 128KB einfach optimal. Stellen wir uns nun vor, wir erweitern den Speicher des Mephisto Montreux auf 2MB! Ein schier unfassbarer Speicherplatz für einen Schachcomputer der damaligen Zeit und der sehr begrenzten Rechengeschwindigkeit. Diesen Speicher voll zu bekommen, dauert schon richtig lange. Aber das sollte ja kein Problem sein in langen Partien. Was aber viele nicht beachten ist, dass der Schachcomputer beim nächsten Zug auf genau diese Hashtables zurückgreift und das frisst unglaublich viel Zeit. Zeit, die der Computer besser in das Berechnen stecken sollte und so kann es passieren, dass der Schachcomputer im besten Fall nur minimal besser spielt, oder sogar schlechter abschneidet. Die Programmierer haben sich schon etwas dabei gedacht, als sie sich für 128KB entschieden haben. Zwar gab es für das baugleiche Gerät Saitek Kasparov RISC 2500 sogar offiziell die Möglichkeit eines Upgrades auf 2MB, jedoch kann man dies nur als Marketing-Gag bezeichnen. Die 128KB im Mephisto Montreux (Kasparov Risc 2500) sind absolut ausreichend!
Anders sieht die Sache natürlich bei den heutigen Engines aus, die auf einem Mehrkernprozessor laufen und oftmals 16GB (Gigabyte) Speicher für Hastables im Rücken haben. Hier währen 128KB natürlich viel zu wenig, da die Engine viele Millionen Züge und Varianten pro Sekunde berechnet. Aber auch hier ist es wichtig, schnellen RAM zur Verfügung zu haben, der den Prozessor nicht ausbremst.
Aber zurück zu den "alten" Schachcomputern. Dort wird die Sache richtig spannend, wenn ein sogenanntes Permanent Brain eingesetzt wird. Dies bedeutet, dass der Schachcomputer Varianten und Züge berechnet, während wir am Zug sind. Das Permanent Brain ist dafür verantwortlich, dass Schachcomputer praktisch den Antwortzug a'tempo ziehen, wenn wir einen Zug ausführen. Während wir über unseren Zug gegrübelt haben, war der Schachcomputer nicht untätig und mögliche Antwortzüge bereits berechnet und wenn er mit seiner Berechnung richtig lag, führt er den entsprechenden Zug aus. Das spart Zeit. In Verbindung mit Hashtables hat diese Technik zu einer echten Steigerung der Spielstärke geführt.
Soweit zu den sogenannten Hashtables und den Stellungstests. Im nächsten Beitrag den ich hier veröffentlichen werde, gehe ich auf das Thema schneller Prozessor und die darauf zurückzuführende Spielstärke ein. In einem Schachcomputerforum gibt es einen ganz speziellen Benutzer, der sich gerne als Experten ausgibt und zu diesem Thema richtig viel Müll schreibt.
Als seid gespannt
