Gefährliches Halbwissen bei Schachcomputer-Testern

Klatsch und Tratsch zum Thema Schach

Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Topschach » Di 23. Aug 2016, 11:35

Liebe Schachfreunde,

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 :-)
Topschach
Administrator
 
Beiträge: 1573
Registriert: Do 29. Dez 2011, 23:42

Re: Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Topschach » Mi 24. Aug 2016, 08:30

Bevor ich auf ein weiteres Thema eingehe, möchte ich noch kurz einen Nachtrag zu der Hashtable-Funktion machen und auf eine kleine Funktion hinweisen, welche bei Schachcomputern eingeführt wurde. Das Schachcomputer generell Speicher zum Ablegen von Varianten benötigen, ist recht klar. Auch die Schachcomputer ohne Hashtable-Funktion besitzen Speicher (RAM), um in einer laufenden Berechnung Varianten abzulegen und deren Bewertungen zu vergleichen. Schachcomputer mit Hashtables sind sind auch hier im Vorteil und nutzen die Hashtables auch, um in einer laufenden Berechnung Varianten abzulegen und darauf bei Bedarf zurückzugreifen. Hashtables sind eine von vielen Datenstrukturen, um Inhalte zu speichern, jedoch sind Hashtable-Datenstrukturen besonders schnell, wenn es um das Abfragen geht. Ich möchte hier nicht zu tief ins Detail gehen, jedoch hierzu folgendes vergleichen. Wenn wir beispielsweise eine Tabelle in einer simplen Textdatei speichern und anschließend einen bestimmten Inhalt darin suchen, geht das Programm zeilenweise die Textdatei durch, bis es die gesuchten Daten findet. Alle in Hashtables gespeicherte Daten sind praktisch immer direkt adressiert und damit sehr schnell verfügbar. Die Hashtable-Datenstruktur bietet also eine sehr schnelle Möglichkeit, um auf Daten zuzugreifen. Und genau aus diesem Grund, haben Schachcomputer, welche die Hashtable-Datenstruktur verwenden einen Vorteil gegenüber Schachcomputern, welche diese nicht verwenden.

Nun gut,- das was jetzt etwas technisch und man könnte über die Verwendung von Hashtables Bücher schreiben, aber das würde zu weit vom Thema abweichen.

Also zurück zum Thema "Gefährliches Halbwissen bei Schachcomputer-Testern".

Normalerweise halte ich mich sehr zurück, wenn es um das Thema verlinken zu irgendwelchen ominösen Foren geht, aber als eifriger Leser des sog. Schachcomputer-Forums und der aktuell sehr eskalierten Lage in jenem welchen, muss ich einfach darauf hinweisen. Es geht um folgendes Thema:

http://www.schachcomputer.info/forum/showthread.php?p=60704#post60704

Gleichzeitig möchte ich darauf hinweisen, dass es in diesem Forum durchaus sehr kompetente Schachcomputerfreunde gibt, aber diese kann man an einer Hand abzählen. Ich möchte bezüglich irgendwelcher Trolle in diesem Forum keine Namen nennen. Wenn jemand sich die Muse macht, alle Beiträge des Themas zu lesen, wird er problemlos feststellen, um welche Gestalten es sich handelt. Ich möchte nur ein paar Beiträge rauspicken, welche mit unserem Thema zutun haben.

Ich zitiere den User Mythbuster:
Wenn man einen Amsterdam auf die Geschwindigkeit des MCG Pro beschleunigt, wird er vermutlich auch bei ca. 2.300 Punkten in unserer Liste landen. Das lässt sich leicht nachvollziehen: Der normale Amsterdam liegt bei 1.932 Elo ... der Revelation 1 Amsterdam liegt bereits bei 2.112 Elo! Schon der Revelation II ist ca. 4x so schnell in der Amsterdam Emulation ... allein das sollte mindestens 100 weitere Punkte bringen, eher mehr ... die Hardware des MCG Pro ist nochmals 7x schneller als der Revelation II ... das sollten nochmals 100 bis 150 Punkte sein.


Dies ist ein gutes Beispiel, wie eine einfach gestrickte Denkweise aussieht. Mehr Speed bedeutet eben nicht automatisch mehr Spielstärke. Ich möchte das an einem kleinen Beispiel verdeutlichen. Wenn ich einen Schachcomputer programmiere und ihm eintrichter, dass er immer das Läuferpaar behalten soll und niemals einen Läufer gegen einen Springer tauschen darf, dann wird er diese Regel immer befolgen, egal wie viel Speed die Hardware hat. Dieses simple Beispiel zeigt, dass Geschwindigkeit zwar ein wichtiger Faktor ist, jedoch das einprogrammierte Schachwissen dadurch nicht beeinflusst wird. Mit schneller Hardware kann man dafür sorgen, dass Varianten tiefer berechnet werden und taktische Kniffe besser erkannt werden, jedoch ändert dies nicht die Bewertungsgrundlagen des Schachcomputers. Wenn ein Schachcomputer sich auf Grund seiner Bewertungsgrundlagen für eine Variante entschieden hat, dann bekommt man diesen nicht so schnell davon los.

Im Beispiel oben schreibt der User Mythbuster, dass der normale Amsterdam (frühe Version des Genius-Schachprogramms von Richard Lang) auf dem Revelation II sage und schreibe 2112 ELO besitzt. Sehr wahrscheinlich fehlt diesem User die nötige Spielstärke, um das zu testen und er greift auf irgendwelche Stellungstests zurück oder lässt irgendwelche Schachcomputer gegeneinander antreten um die ELO zu ermitteln. Ich habe schon sehr oft gegen den Amsterdam im Original und gegen die Amsterdam-Revelation-II-Version gespielt und kann sagen, dass der Amsterdam auf dem Revelation II nur unwesentlich besser spielt. Sowohl das Original, als auch die getunte Version machen immer die selben strategischen Fehler und sind für einen Schachspieler mit etwa 2000 ELO !problemlos! schlagbar. Ich würde dem Amsterdam maximal eine ELO von 1800 bis 1900 bescheinigen. Und zwar beiden Versionen.

Es ist schon bemerkenswert, wenn der User Mythbuster über Spielstärken im Bereich der Schachcomputer schreibt, ohne auch nur den Ansatz von Ahnung zu haben, was die Kisten auf dem Brett überhaupt machen.

Wie weit fortgeschritten manche bereits ins Reich der Fantasie fortgeschritten sind, zeigt folgender Kommentar. Wieder von Mythbuster:

Ein Mephisto London 68.030 mit 36 MHz liegt in der Eloliste bereits bei 2.339 Elo Punkten! Auf der Hardware des MCG Pro (ca. 14x schneller) sollte er locker 2.550 bis 2.600 Elo Punkte erreichen, da liegen Welten dazwischen!


2600 ELO! Das muss man sich mal auf der Zunge zergehen lassen! :-) - Gerade gegen das London-Programm habe ich unglaublich viele Partien gespielt und kann sagen, dass dieses Programm nie und nimmer auch nur ansatzweise die 2600 ELO erreicht. Das Teil bewegt sich eher im Bereich 2200 bis 2300 ELO und selbst auf der Hardware eines Chess Genius Pro würde das Programm nur unwesentlich stärker spielen. Warum dies so ist, habe ich bereits oben exemplarisch erklärt.

Die Sache wäre nicht so schlimm, wenn dieser sog. Mythbuster sich nicht immer als die absolute Kompetenz im Bereich von Schachcomputern darstellen würde. Das Schlimme ist, dass recht unbedarfte Schachfreunde diesen Quatsch dann auch noch glauben.

Damit möchte ich auch diesen Beitrag abschließen. Im nächsten Beitrag geht es dann um das Auslesen von Stellungsbewertungen und Suchtiefen bei Schachcomputern. Im Fall des Revelation II hat das sogar zu einer Änderung in der Bedienungsanleitung geführt, da man sich auf den Quatsch von manchen Leuten des besagten Forums verlassen hat.
Topschach
Administrator
 
Beiträge: 1573
Registriert: Do 29. Dez 2011, 23:42

Re: Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Anita » Mi 24. Aug 2016, 10:20

Hallo Benny,

das ist eben das Problem bei solchen Foren, bei denen jeder schreiben kann was er will. Darauf sollte man sich eben lieber nicht verlassen. Schon krass, wenn daraufhin ein Hersteller die neue Bedienungsanleitung aufbaut.

Gibt es denn keine seriösen Publikationen zu diesem Thema? So in Richtung Stiftung Warentest oder so? Wenn nicht, dann schreib doch mal eine! Du hast doch allerhand gemacht, nur durch den Dschungel Deiner vielen Videos wird sich wahrscheinlich niemand kämpfen, viel zu aufwändig. Wie wäre es also mal mit einer kompakten Zusammenfassung?

Viele Grüße,
Anita
Anita
 
Beiträge: 35
Registriert: Do 12. Feb 2015, 16:41
Wohnort: Leipzig

Re: Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Topschach » Mi 24. Aug 2016, 14:56

Anita hat geschrieben:Hallo Benny,

das ist eben das Problem bei solchen Foren, bei denen jeder schreiben kann was er will. Darauf sollte man sich eben lieber nicht verlassen. Schon krass, wenn daraufhin ein Hersteller die neue Bedienungsanleitung aufbaut.

Gibt es denn keine seriösen Publikationen zu diesem Thema? So in Richtung Stiftung Warentest oder so? Wenn nicht, dann schreib doch mal eine! Du hast doch allerhand gemacht, nur durch den Dschungel Deiner vielen Videos wird sich wahrscheinlich niemand kämpfen, viel zu aufwändig. Wie wäre es also mal mit einer kompakten Zusammenfassung?

Viele Grüße,
Anita


Hallo Anita,

also das mit der Bedienungsanleitung für den Revelation II werde ich noch ausführlich in einem meiner nächsten Beiträge erklären. Die deutsche Übersetzung der Anleitung stammt von mir. Beim Übersetzen aus der englischen Anleitung ist mir aufgefallen, dass die im Revelation II befindliche Anzeige für Suchtiefe und Bewertung total falsch beschrieben wurde. Es ging dabei um selektive Suchtiefe und Brute-Force Suchtiefe. Hier hat vorne und hinten nichts gestimmt. Ich habe DGT darauf hingewiesen und durfte dann auch noch die englische Anleitung überarbeiten. Genaueres dazu aber in meinem nächsten Artikel.

Wenn ich mehr Zeit hätte, würde ich auch mehr schreiben, aber heute ist wieder so ein besonderer Tag, bei dem sich die Kunden bei mir die Klinke in die Hand geben. Als ob die sich alle abgesprochen hätten :-) Um 19 Uhr muss ich dann auch wieder Schachtraining geben. Mal schauen, wann ich wieder etwas Luft habe. Meine YouTube-Videos sind übrigens kein Dschungel. Du musst einfach nur nach irgendein Produkt mit Google/YouTube suchen und Du findest mein Video :-)
Topschach
Administrator
 
Beiträge: 1573
Registriert: Do 29. Dez 2011, 23:42

Re: Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Topschach » Mo 29. Aug 2016, 09:03

Liebe Schachfreunde,

im besagtem Forum geht die Diskussion um das Thema Hashtables weiter. :-) Und wieder wird behauptet, dass der Speicher der beim Chess Genius Pro zur Verfügung steht, nicht ausreichend ist. Als Argument wurden sogenannte Kollisionen angegeben und im weiteren Verlauf auch "zugegeben", dass man nicht weiß, was genau damit gemeint ist. Ich möchte es kurz mit einfachen Worten erklären.

Eine Kollision im Verwenden von Hashtables bedeutet, dass zwei verschiedene Einträge (Zum Beispiel Varianten mit Bewertungen) unter der selben Adresse (Index) im Hash gespeichert werden. Dies kann passieren, wenn der Speicher (Adressraum) voll ist und nicht komplett beschriebene Adressen dazu verwendet werden, diese weiter vollzuschreiben (Varianten werden angehängt). Wie gesagt, ist das alles etwas komplizierter und ich versuche es mit einfachen Worten zu erklären.

Kollisionen sind allerdings etwas ganz normales und ein guter Programmierer kennt die Mittel, wie man diese Kollisionen auflöst. Eine gute Lösung ist das offene Hashing mit geschlossener Adressierung, um nur eine Möglichkeit zu nennen.

Erst wenn der Hash-Speicher voll ist, erkennt man, ob ein Programmierer hierbei gute Arbeit geleistet hat. Im Falle des Chess Genius Pro kann ich aus eigenen Tests versichern, dass Richard Lang ein wirklich ausgezeichneter Programmierer ist! Um den Speicher beim Chess Genius Pro voll zu bekommen, bedarf es schon an einiger Rechenzeit. Nach jedem Zug wird auch immer wieder Speicher frei, da viele zuvor berechnete Varianten wegfallen.

Dies nur als kurzes Statement. :-)
Topschach
Administrator
 
Beiträge: 1573
Registriert: Do 29. Dez 2011, 23:42

Re: Gefährliches Halbwissen bei Schachcomputer-Testern

Beitragvon Topschach » Mo 29. Aug 2016, 10:03

Kurze Anmerkung:

In Zeiten, in welchen wir Dank der fortschrittlichen Technik mit Gigabytes herumjonglieren können, mag es dem einen oder anderen nicht richtig bewusst sein, wie viel beispielsweise 128KB Speicher bedeuten. In 128KB Speicher passen in etwa 64 DIN A4 Seiten kompletter Text (Varianten)! Schachcomputer können zwischen guten und schlechten Varianten sehr gut selektieren. Bei einer Suchtiefe von 10 (10 Halbzüge) ist eine berechnete Variante gerade mal 5 Züge lang. Und nun dürfen wir uns mal selbst fragen, wie viele sinnvolle Varianten wir aus einer Stellung heraus auf 64 Seiten niederschreiben können.

Es ist auch klar, dass ein Quick-Hack Programmierer, dessen Engine wenig Schachwissen besitzt und daher sehr schlecht zwischen guten und schlechten Varianten unterscheiden kann den vorhandenen Speicher mit allen möglichen guten und schlechten Varianten vollpumpt.

Eine gut programmierte Engine kommt auch mit wenig Speicher sehr gut aus.

Oft ist es heutzutage schlicht lächerlich, wie sich manche Schachcomputer-Anwender damit brüsten, dass Ihr PC einer Engine 16 oder 32 Gigabyte an Hash-Speicher zur Verfügung stellt. Wenn ich dann frage, was dort genau für sinnvolle Dinge gespeichert werden, bekomme ich meistens recht nachdenkliche Gesichter.

Da möchte ich auch wieder diesen Mythbuster aus dem bekannten Schachcomputer-Forum zitieren, der beim Thema Hash mal sinngemäß sagte "...ob der Hashspeicher komplett genutzt wird, ist egal. Viel Hash kann nicht schaden..." - Tja,- viel Hashspeicher kann eben doch schaden, denn die Zeit, die eine Engine benötigt, um mit 16 Gig an Daten zu arbeiten, ist enorm und kann die Berechnung von Varianten stark ausbremsen.

Leute die meinen, dass viel Hash die Lösung aller Probleme bedeutet, erkennt man meist daran, dass sie sich beim Frühstücks-Buffet im Hotel 10 Brötchen auf den Teller kloppen und am Ende nur 2 davon essen.
Topschach
Administrator
 
Beiträge: 1573
Registriert: Do 29. Dez 2011, 23:42


Zurück zu Schach Small Talk

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 0 Gäste

cron
Listinus Toplisten