Interview mit Stefan Meyer-Kahlen

Stefan Meyer-KahlenAnlässlich des Erscheinens der neuen Shredderversionen hat Michael Diosi ein Interview mit Stefan Meyer-Kahlen gemacht. Lesen Sie was der Autor von Shredder über seine neuen Programme und allgemein über Computerschach zu sagen hat.

Gratulation zum neuen Shredder 11/Shredder Classic 3!

Vielen Dank.
 
Was für eine Funktion hat der Eröffnungs-Berater. Was kann man zu der Spielbehandlung von Shredder 11 sagen wenn man den Eröffnungsberater vs. Eröffnungsbibliothek vs. Keins von den beiden benutzt ? Beispiele ?

Der Eröffnungsberater gibt Shredder Hinweise, wie gut und zuverlässig ein Zug in der Eröffnung ist. Diese Information nutzt Shredder dann um seine Suche zu steuern aber auch für seine Zeiteinteilung. Im Gegensatz zu einem klassischen Eröffnungsbuch, bei dem die Engine ja gar nicht erst gefragt wird sondern der Zug sofort von der GUI ausgeführt wird, ist hier also die Engine gefragt, die den Zug selber berechnen muss. Das hat den Vorteil, dass die Züge mit längerer Bedenkzeit auch besser werden. Ein weiterer Vorteil ist, dass es auch keine groben Patzer wie in klassischen Eröffnungsbüchern geben kann, wo ja durchaus schon Bauern oder auch ganze Figuren auf Grund eines Tippfehlers beim Eröffnungsbuch editieren eingestellt worden sind. Als Beispiel ist die Grundstellung schon gut geeignet. Lässt man Shredder hier ohne klassisches Eröffnungsbuch rechnen, kommt sehr schnell 1.e4 oder 1.d4, auch wenn man die klassische Turnierstufe mit 3 Minuten pro Zug eingestellt hat. Shredder verbrät also auch ohne normales Eröffnungsbuch nicht viel Zeit in der Eröffnung.

Gerüchte sagen Du würdest gerade 6-Steiner Bitbases generieren. Was versprichst Du Dir davon ? Gibt es den Generator auch für User ? Wie lange dauert die Erzeugung ? Wieviel Speicherplatz beanspruchen die Bitbases ?

Ja, das ist richtig. Wir arbeiten gerade an den 6-Steiner-Shredderbases. Nach den klaren Vorteilen bei den 5-Steinern, die als Shredderbases ja ohne Probleme komplett ins RAM laden kann, liegt es ja Nahe, das wir es auch mit den 6-Steinern versuchen. Hier wird es aber wohl erstmal nicht möglich sein, alle 6-Steiner komplett ins RAM zu laden, jedenfalls nicht auf einem heutigen Standardrechner. Hier erhoffen wir uns einen großen Vorteil, da die 6-Steiner dann endlich von jedermann ohne Probleme zu nutzen sind. Bei den Nalimovs sind alle 6-Steiner zusammen ja ca. 1200 GB groß. Das ist noch etwas viel, um es überall lokal installieren zu können. Deshalb bieten wir ja auch den freien Zugriff auf alle 6-Steiner über shredderchess.de an. Wir haben erst kürzlich mit der Erzeugung angefangen, da vorher erst alle Algorithmen, die bei den 5-Steinern so gut funktioniert haben, an die neue Situation mit 6 Steinen auf dem Brett angepasst werden mussten. Die Generierung ist sehr aufwändig, trotzdem rechnen wir damit, dass wir in absehbarer Zeit damit fertig werden.
 
Welche weitere Neuerungen würdest Du bei Shredder 11 hervorheben wollen ?

Mir gefällt "Zeige erwartete Antwort" sehr gut. Das ist meiner Meinung nach eine extrem nützliche Funktion sowohl für die Analyse also auch für eine Partie gegen Shredder. Wenn man eine Figur mit der Maus über das Brett zieht erscheint immer sofort ein farbiger Pfeil, der die erwartete Antwort von Shredder anzeigt, wenn man die Figur auf diesem Feld losließe. Im Spiel sieht man dann sofort, wenn man im Begriff ist einen Fehler zu machen und in der Analyse kann man die immer aufkommende Frage "Was passiert eigentlich wenn ich diesen Zug mache" sofort beantworten. In der Analysestufe wird nämlich zusätzlich auch noch die Stellungsbewertung nach dem geplanten Zug angezeigt.
 
Was waren die Änderungen die zu einer Spielstärkensteigerung von 100 Elo geführt haben ?

Diesmal habe ich vor allem an der Bewertungsfunktion von Shredder gearbeitet. Dort habe ich so ziemlich alle Routinen und Parameter überprüft und fast alle geändert. Das hat dazu geführt, dass Shredders Bewertung nun viel exakter ist und meistens eher der Realität entspricht als die Bewertung der Vorgängerversion. An der Suche ist aber auch einiges neu. Hier habe ich ebenfalls versucht, etwas weniger spekulativ zu arbeiten. Das führt unter anderem auch dazu, dass die angezeigten Hauptvarianten von Shredder nun deutlich besser und zuverlässiger sein sollten.

Du bietest neben Versionen für Windows, Mac und Linux auch Shredder für Handys an. Sind noch weitere Plattformen geplant?

Ja, auch hier haben wir noch einiges vor. Als nächstes und wohl noch in diesem Jahr erscheint Pocket Shredder für Pocket PCs (oder wie es neuerdings heißt Windows Mobile) auf shredderchess.de. Der wird dann die komplette Shredder 11-Engine enthalten, sehr wahrscheinlich sogar mit Shredderbases. Aufgrund der zum Teil sehr schnellen Hardware dieser Geräte wird es hier also eine extrem hohe Spielstärke für die Hosentasche geben.

Was unterscheidet Pocket Shredder denn dann von Shredder Mobile für Handys?

Shredder Mobile ist in Java geschrieben und läuft somit auf fast allen Handys. Hier konnten wir also nicht so klotzen, da die Hardware der Handys heutzutage noch nicht so leistungsfähig ist. Leistungsfähig ist natürlich relativ, ein normaler Spieler hat es sicher gegen Shredder Mobile auch sehr schwer. Wenn es trotzdem mal nicht reicht, kann man direkt aus Shredder Mobile heraus über das Internet gegen Shredder 11 auf unseren Servern spielen oder aber mit Shredder 11 analysieren. Das sollte dann auf jeden Fall ausreichen. Die Hardware bei den Pocket PCs ist hier noch deutlich besser, so dass Pocket Shredder mehr Funktionen und auch eine bessere Engine als Shredder Mobile haben kann.

Inzwischen ist auch Dein Online-Angebot auf www.shredderchess.de bzw. www.shredderchess.com gewachsen. Man kann dort gegen Shredder spielen, Eröffnungsbücher und Endspieldatenbanken abfragen sowie Taktikaufgaben lösen. Ist der browserbasierte Shredder der Shredder der Zukunft?

Ich weiß nicht ob das der Shredder der Zukunft sein wird aber das wird sicher sehr wichtig sein. Wir sehen das an den schon seit Monaten wöchentlich stark steigenden Nutzerzahlen und an dem fast ausnahmslos extrem guten Feedback was wir für die Onlineapplikationen bekommen. Hier wird es in der Zukunft also sicher noch ein paar Erweiterungen geben. In den verschiedenen Shredder-GUIs gibt es auch immer mehr Onlinefunktionen. So kann man nun unter Windows, Mac und Linux direkt alle 6-Steiner Endspieldatenbanken sowie unseren ca. 1 GB großen Eröffnungsbaum abfragen. Unter Windows gibt es Neuerdings auch jeden Tag aktualisierte Schachaufgaben von unserem Server, die man nach dem Lösen dann in Shredder einfach analysieren kann.

Machst/Hast Du die ganze Programmierarbeit/Ideen alleine oder hast Du irgendwelche helfende Hände/Gehirne ?

Nein, eine Ein-Mann-Show kann Shredder schon lange nicht mehr sein. In den Shreddern steckt mittlerweile die Arbeiten von vielen Gehirnen. Die Engines und die Windows GUI mache ich größtenteils noch alleine. Sehr viel Arbeit ist auch von Eiko Bleicher dabei, der ja zum ersten Mal mit seinem Freezer in der Computerschachszene aufgetaucht ist. Von ihm stammen die größten Teile der GUIs von Shredder Mobile und den Shreddern für Macintosh und Linux. Er ist auch Hauptverantwortlich für die Shredderbases und die Onlineapplikationen. Die Eröffnungsbücher werden schon seit Jahren von Sandro Necchi geschrieben. Auf keinen Fall darf man auch die ganzen Betatester vergessen, die unermüdlich nach Fehlern in Shredder suchen und Ihre Rechner mit wochenlangen Enginematches quälen. Hier sind vor allem Ingo Bauer und Ernst Walet zu nennen. Dann gibt es noch viele Köpfe für die Webseite, die Server, die Grafiken und die Dokumentation.

Wie oft hast Du Dein Programm (vollständig) umgeschrieben ? Gibt es Algorithmen/Wissen -Kombinationen die das Programm verschlechtern/verbessern die dann bei einer erneuten Alg.-/Wissen- Erweiterung wiederum ein unvorhersagbares Verhalten zeigen ? Weisst Du so was im Voraus ? Wie testest Du es ?

Oft habe ich Shredder noch nicht umgeschrieben und es gibt noch Teile, die schon sehr alt sind. Es gibt sicher einige Sachen die nicht funktionieren wenn man sie das erste Mal ausprobiert und wenn man es dann einige Zeit später bei einem veränderten Programm erneut probiert klappt es auf einmal sehr gut. Das ist auch ein Grund, der die Programmierung eines Schachprogramms so schwierig macht. Vorhersehen kann man so etwas leider nicht, doch habe ich im Laufe der Jahre sehr viel Erfahrung angesammelt, mit deren Hilfe ich eine neue Idee meistens vorher schon sehr gut einschätzen kann. Das endgültige Testen geht dann nur durch möglichst viele Partien, die man mit der Engine spielen muss.
 
Schachprogramme benutzen immer noch "dumme" und "schnelle" klassische Ansätze der Programmierung. Evolutionäre-Algorithmen, neurale Netze bringen da momentan nicht viel. Kann ein Programm aus einer Datenbank mit Millionen von Spielen wirklich zuverlässig Wissen extrachiren ? Wo siehst Du das meiste Potential für eine Verbesserung ?

Das ist sehr schwer zu sagen. Ich glaube allerdings nicht mehr, dass die heutigen Spitzenprogramme immer noch so "dumm" und einfach gestrickt sind. Was einfach aussieht muss aber nicht gleich einfach sein. Wenn man sich z.B. Fruit anschaut sieht das alles auf den ersten Blick sehr einfach und klar aus. Die Kunst ist aber, die wichtigen Sachen zu nutzen und die unwichtigen nicht. Wenn man sich dann nur das Ergebnis anschaut denkt man: "Hey, das ist ja einfach".
 
Was sind Deine Quellen um Schachwissen in Dein Programm zu implementieren (Bauerstrukturen, Mittelspiel, Endspiel, usw.) ?

Ich schau mir die Partien von Shredder an und versuche zu erkennen, wo und warum etwas schief läuft wenn er verliert. Das ist sehr schwer und ich mache das natürlich computerunterstützt. Ich versuche auch mein Schachwissen zu erweitern und lese ab und an ein paar Schachbücher. Aber wie gesagt, der Trick ist nicht einfach nur alles Schachwissen einzubauen sondern nur das wichtige Schachwissen. Ab und an bekomme ich auch Hinweise und Kommentare, wo etwas bei Shredder nicht stimmt, auch von sehr starken Spielern. Das ist oft nicht wirklich zu gebrauchen, ab und an kann ich aber auch dadurch eine Schwäche in Shredder abstellen.

Gibt es Schach-Stellungen die Shredder schneller/besser/überhaupt im Vergleich zu anderen Programmen löst wo Du besonders stolz darauf bist ?

Nein, konkrete Stellungen habe ich hier nicht im Kopf. Mir geht es in der Regel darum, dass Shredder nicht irgendwo besonders gut ist sondern darum, dass er nirgendwo besonders schlecht ist. Ich bin auch hauptsächlich nicht an Stellungen sondern an Partien interessiert. Es gibt aber sicher Stellungen, die ein Problem in Shredder aufdecken können.

Shredder unterstützt bereits Chess960, bust Du auch an anderen Märchenschachvarianten (Hilfsmatt, Selbstmatt, usw vor allem beim Problemlösen ) interessiert ?

Nein, an anderen Schachvarianten habe ich kein Interesse. Ich bin auch Schachspieler und im Gegensatz zu manchen meiner Kollegen, für die es egal ist ob Sie nun Dame oder Schach programmieren, ist es für mich schon sehr wichtig, das Shredder eben Schach und nicht Dame spielt.
 
Was ist die meist unterschätzte Komponente (SMP, Eröffnungsbibliothek, Tablebasesw,...) eines Schachprogramms ? Und die am meisten überschätzte ?

Ich denke am meisten unterschätzt wird die SMP-Version. Klar, die bringt Elos, das kann jeder sehen. Aber ich denke, dass vielen der Aufwand nicht klar ist, den man betreiben muss, um eine Schachengine zu parallelisieren. Die Baumsuche ist ein sehr sequentieller Prozess und es sicher nicht trivial, so was effizient parallel auszuführen. Am meisten überschätzt sind wohl die Endspieldatenbanken für das praktische Spiel. Hier nehme ich mich ausdrücklich nicht aus. Für mich ist es immer noch rätselhaft, warum es nicht sehr viele Elos bringt, wenn man wie bei den Shredderbases sehr schnellen Zugriff auf die exakten Werte von allen 5-Steinern hat. Vielleicht wird es bei den 6-Steiner-Shredderbases dann ja besser, denn irgendwann muss es ja etwas bringen, spätestens bei den 32-Steinern.
 
Was bringen in Deinen Augen die Computerranglisten/Teststellungs- Suiten an Erkenntnissen für die Entwicklung von Schachprogrammen ?

Die Computerranglisten zeigen welche Engines gut gegen andere Engines spielen, vor allem wenn die Rangliste gewissenhaft betrieben wird. Das ist sicher hilfreich um eine Engine gegen andere Engines und somit wohl auch gegen Menschen zu verbessern. Eine Sammlung von Teststellungen kann zeigen, wie viele Stellungen ein Programm in dieser Sammlung lösen kann. Bei den heutigen Spielstärken der Programme ist es meines Erachtens aber auch sehr wichtig, dass ein Schachprogramm einen gedrosselten Spielpartner für den Nutzer bieten kann. Ich denke auch in diesem Bereich ist Shredder sehr gut und in der neuen Version sicher auch noch besser geworden. Das wird in der Regel leider nirgendwo getestet.

Was ist Deine "muss haben" Liste an Schach-/Computerschach-Literatur ?

Leider gibt es ja nicht so viel Computerschachliteratur. Das beste Buch aus diesem Bereich, welches ich jedem empfehlen kann hat aber nicht direkt mit Schach sondern mit Dame zu tun: "One Jump Ahead". Es zeigt die Entwicklung und Werdegang des weltbesten Dameprogramms Chinook aus der Sicht des Hauptentwicklers Jonathan Schaeffers. Hier konnte ich sehr viele Parallelen zu meiner eigenen Arbeit an Shredder entdecken.

Würdest Du Shredder nur anhand der Spielweise/Bewertung/Bugs erkennen ?

Direkt anhand einer Partie wohl eher nicht. Wenn ich mit zwei Engines im direkten Vergleich analysieren würde dann könnte ich wohl bald sagen, welche von beiden Shredder ist und welche nicht. Und Bugs gibt es in Shredder ja nicht :-)

Benutzt Du Ansätze aus anderen Programmierbereichen in der Schachprogrammierung ? Sind Ansätze aus der Computerschach-Programmierung auch anderswo einsetzbar oder ist Schach für Dich ein geschlossenes Bereich ?

Na ja, die Baumsuche ist ja schon universell einsetzbar, aber das meiste in Shredder ist wohl doch eher schachspezifisch. Von der Methodik bemühe ich mich hingegen schon generellen Empfehlungen zu folgen.

Wirst Du mit Shredder bei künftigen Turnieren (Paderborn, WM in China) teilnehmen oder hat es für Dich keinen Reiz mehr an solchen Turnieren teilzunehmen ?

In Paderborn und an der WM werde ich wohl bis auf weiteres Teilnehmen. Ich mag Schach und Computerschach und sich hier mit gleichgesinnten zu Treffen ist schon etwas Besonderes. Der Wettkampf reizt mich natürlich auch sehr, aber im Laufe der Jahre bin ich hier deutlich entspannter geworden. Leider reicht meine Zeit aber nicht mehr, um an allen Computerschachturnieren teilzunehmen. Shredder macht sehr viel Arbeit und in meiner Freizeit verbringe ich lieber Zeit mit meiner Familie. Die kommt nämlich leider oft zu kurz, vor allem bei einem großen Release wie jetzt bei Shredder 11, den wir ja gleichzeitig für Windows, Macintosh und Linux veröffentlicht haben.

Hast Du noch Ideen für weitere Features in Shredder und könntest Du was andeuten ?

Der neue Shredder ist ja gerade erst ein paar Tage auf dem Markt, aber natürlich gehen sofort nach dem Release schon die Planungen für die nächste Version los. Aktuell arbeiten wir aber gerade an einem Schachlern- und Trainingsprogramm. Hier gibt es nach unseren Recherchen nicht so viel Überzeugendes auf dem Markt. Wir denken, dass da sicher ein großer Bedarf ist und sind natürlich von unserer Lösung sehr überzeugt.

 
Spiel gegen Shredder Aufgabe des Tages Schachaufgaben der Woche Eröffnungsdatenbank Endspieldatenbank
Shredder Classic 5 Windows Shredder Classic 5 Windows
EUR 29,99
Shredder 13 Linux Shredder 13 Linux
EUR 49,99
Deep Shredder 13 Windows Deep Shredder 13 Windows
EUR 99,99
Deep Shredder 13 Mac Deep Shredder 13 Mac
EUR 99,99