Reinhard Scharnagl Interview
“20 Fragen” mit Reinhard Scharnagl (Autor von
Smirf & FullChess) Deutsche Version
Das Interview wurde von Christopher Conkie, Michael Diosi & Alex Schmidt durchgeführt.
Hallo Reinhard. Vielen Dank für Deine Einwilligung diese Fragen zu beantworten.
Ich bedanke mich für die Gelegenheit, ein paar mögliche Missverständnisse ausräumen zu können, die meine Person und meine Aktivitäten rund um das Computerschach betreffen.
Frage 1.
Möchtest Du bei der WCCC in Torino oder bei der nächsten FRC-Weltmeisterschaft teilnemen, wäre es schön Dich dabei zu sehen ?
Darüber habe ich noch nicht wieder ernsthaft nachgedacht. SMIRF hat bestimmt einige Fortschritte gemacht, aber es ist sicher noch nicht so weit, sich mit den Großen zu messen. Man darf nicht vergessen, dass ich stellenweise versuche, das ‘Rad’ neu zu erfinden. Das ist sicher nicht effizient, und ich bemerke bei Postings in verschiedenen Foren auch, dass wahrscheinlich überall ähnliche Lösungsansätze existieren, dennoch bleibe ich bei meiner Vorgehensweise.
Vor der Chess Classic Mainz 2005 habe ich es lockerer gesehen und mich darauf gefreut, eine Reihe kompetenter Mitstreiter zu treffen. Ich habe dazu im Vorfeld versucht, SMK noch rechtzeitig für ein kompatibles X-FEN Format zu gewinnen und so auch für eine formale Nicht-Trennung vom traditionellen Schach und Chess960. Leider habe ich dabei aber auf Granit gebissen. Und so zwingt heute sein UCI-Protokoll die Chess960 fähigen Engines unnötiger Weise in verschiedene Betriebsarten und propagiert seine inkompatible FEN-Erweiterung. Schlimm war nicht so sehr diese eine abweichende Lösung – womit im Anfang solcher Chess960 Turniere zwangsläufig zu rechnen war – wohl aber, diese prompt öffentlich abzusegnen und so als quasi-Standard zu proklamieren.
Das Ganze hat mich gelehrt, dass ich trotz besserer Argumente nicht ernst genommen werde, solange mein SMIRF nicht wirklich konkurrenzfähig ist – was aber leider eher unwahrscheinlich ist. Und solange ich eher als ein Störfaktor der Szene wahrgenommen werde, bleibe ich lieber abseits. Im Übrigen fehlen mir zur Zeit auch die Mittel für Reisen.
Frage 2.
Was waren die Quellen für Ideen/Informationen bei der Arbeit an Deiner Engine ?
Früher gab es kaum andere Möglichkeiten, als sich selber etwas auszudenken. Gelegentlich habe ich mich rein theoretisch mit der Materie beschäftigt und diverse Literatur wie die Reihe “Advances in Computerchess” zur Hand genommen.
Die meisten Ideen erscheinen mir von der Problemstellung her induziert, und so wundert es mich kaum, in Diskussionen Parallelen zu anderen Lösungen zu entdecken. Auf der anderen Seite bin ich aber wieder erstaunt, wenn ich bemerke, dass Details – soweit ich sie mitbekomme – mitunter doch stark abweichen, zuletzt mal wieder an meiner 90° gekippten Brettgeometrie auf einer 15x14 Struktur.
Es kommt vor, dass mir über Nacht ein völlig neuer Lösungsansatz einfällt, der dann irgendwann ausprobiert wird. Ich habe schon gelegentlich beschrieben, dass ich zwischenzeitlich mit zwei Schachbrettern statt einem experimentiert habe, um die störende Farbe aus der Figurdefinition heraus zu bringen. Auf jedem der Bretter standen nur die eigenen Figuren, die gegnerischen hatten alle den Typ Feind. Eine Spiegelung des gegnerischen Bretts führte zu identischen Routinen für jede Seite. So mussten statt eines Farbwechsels einfach nur die Zeiger auf das aktive und passive Brett getauscht werden.
Entscheidend für wirklich kreative Ansätze ist die Distanz zum Althergebrachten. So hat es geholfen, dass ich schon lange Zeit nicht mehr selber aktiv Schach spiele, heute also eher ein Patzer bin. Ich kann auch damit leben, dass eine mit viel Aufwand erarbeitete Lösung plötzlich von mir selber wieder auf den Müll geworfen wird, falls eine bessere Idee auftaucht.
Das Schlimmste, was man machen könnte, wäre, sich gleich zu Anfang seine “Ideen” aus Open Source Projekten zu holen. Das erstickt jede Kreativität im Keim. Das endet im Patchworking und schlimmstenfalls im Clonen. Einmal habe ich kurz in GNU Schach Sourcen geschaut, um zu sehen, was es denn mit der Open Source tatsächlich so auf sich hat. Ich habe sie sofort wieder entsorgt. Wer daraus mittels der Kommentierung etwas gelernt haben will, der findet mein Erstaunen.
Frage 3.
FRC-Engines benutzen kein Eröffnungsbuch. Kannst Du Dir eine solche Entwicklung auch bei normalen Schachengines vorstellen, also dass diese über genügend Wissen über eine Eröffnung verfügen welches ein Eröffnungsbuch unnötig macht ?
Hier dürfte ein Missverständnis vorliegen. Klar, für den vom traditionellen Schach her kommenden Schachfreund scheint beim Chess960 etwas zu fehlen, dabei ist doch alles da – denn es könnte ja auch die Stellung 518 (Normalschach) ausgelost werden. Ich habe von Bemühungen gehört, mittels Distributed Computing in kurzer Zeit zu einer Unzahl an Chess960 Partien zu kommen und auf diesem Weg eine Art Eröffnungsbibliothek aufzubauen. Menschen könnten dieses Wissen ohnehin kaum nutzen, denn wer soll am Ende 960 mal die gesamte Eröffnungstheorie aus Jahrhunderten der Spielpraxis abertausender Schachspieler parat haben? Doch in Wirklichkeit liegt ja gerade der Reiz des Chess960 darin, sich von Anbeginn an nicht statisch reproduzierend sondern dynamisch kreativ mit den vorliegenden Positionen auf dem Brett auseinander zu setzen.
Für Erinnerungsakrobaten, die eine Partie zumeist während der von ihnen abgespulten Eröffnung zu gewinnen pflegen, mag Chess960 nicht das ideale Spiel sein. Für Nachwuchsspieler, die ohne große anfängliche Hürden ihre Befähigung zum Schach unmittelbar erproben möchten, ist es dagegen aber einfach ideal.
Im Computerschach wird aus demselben Grund unmittelbar die wahre Qualität der Engine getestet. Schach hat sich immer schon durch die Beschränktheit der Mittel ausgezeichnet. Wieso ein Schachprogramm (während einer Wertungspartie) hier unbeschränktes Nachschlagewissen nutzen darf, habe ich nie verstanden. Es gibt wenig unintelligenteres, als in einer Tabelle nachzuschlagen, auch wenn es de facto effizient sein mag.
Die Tatsache, dass herkömmliche Chess-Engines mit Eröffnungsbibliotheken arbeiten, hat deren generische Fähigkeit, Eröffnungen zu behandeln, zumeist vor einer wirklichen Überprüfung in Partien geschützt. Wie soll es da (außerhalb des Nachschlagewissens) zu Fortschritten kommen? Ähnlich wie bei den Wenigsteiner-Tabellen im Endspiel führt es eher zu einer unmerklichen Degenerierung der nicht nachschlagenden Programmteile. Absonderlichkeiten in diesen Phasen fallen ja gar nicht mehr auf. Ich behaupte nicht, dass Programme mit Nachschlagewissen schlechter spielen, ich sage nur, dass hierin keine Fortschritte in der Programmintelligenz möglich sind. Nur dort, wo die Mittel beschränkt bleiben, kann Intelligenz entstehen und sichtbar werden.
Chess960 spielenden Programmen bleibt also auf die Dauer gar nichts anderes übrig, als auch in der Eröffnungsphase intelligenter zu werden. Sie befinden sich in einer härteren Trainingssituation als herkömmliche Schachprogramme. Partien erlauben daher schneller Aussagen über Stärken und Schwächen der Programme. Damit ist Chess960 ein ideales Erprobungsfeld für Engines.
Dieser Effekt verstärkt sich natürlich noch einmal, geht man zum 10x8 Schach über. Der FullChess Ansatz von SMIRF bedeutet einfach eine Beschäftigung mit Varianten, die das traditionelle Schach weitgehend kompatibel beinhalten. So bleiben gemachte Erfahrungen prinzipiell übertragbar. Tatsächlich spielt in SMIRF auch nur eine einzige Engine alle diese Varianten.
Frage 4.
Du hast an der letzten FRC-Weltmeisterschaft wegen eines Disputs bezüglich des FRC-Protokols nicht teilgenommen. Wie sieht die Situation jetzt aus, sind irgendwelche Kompromisse in Sicht ?
Wie ist Deine Meinung dazu nachdem ein wenig Zeit vergangen ist ?
Diesen Disput habe ich oben bereits angesprochen. Ich habe damals prognostiziert, dass das Chess960 Schaden nehmen wird. Mir wurde postwendend “religiöser” Eifer unterstellt. Dagegen trat ich – nach meinem Verständnis – für eine Art von Qualitätssicherung ein und für den Respekt gegenüber bereits gewachsenen Lösungen wie Partiedatenbanken, Tools und anderen Programmen.
Wer das Buch “Play Stronger Chess by Examining Chess960” von Gene Milener zur Hand nimmt, wird klar erkennen, welche befürchtete Konfusion ich meine. Darin werden allein drei verschiedene Arten aufgeführt, wie sich die 960 Startstellungen durchnummerieren ließen. Glücklicherweise ist Fritz wenigstens in diesem Bereich wieder auf eine gemeinsame Linie eingeschwenkt. Ich gebe wirklich zu, ich war angenehm überrascht und konnte es zuerst kaum glauben.
Was dagegen das X-FEN angeht, so bin ich zutiefst enttäuscht. Ich hatte in den leider erfolglosen Mailings mit SMK versucht, mit Argumenten zu überzeugen, und Kompromissvorschläge gemacht, alles leider ohne Erfolg. Das hat mich jedoch nicht davon abgehalten, dennoch in einem Punkt auf SMK zuzugehen. Somit stellt heute das aktuelle X-FEN einen leider abgelehnten Kompromissvorschlag dar, an dem es wirklich nichts mehr auszusetzen gibt.
Ich halte es für eine schachpolitische Entscheidung, mit einer UCI-Erweiterung, die Chess960 ohne Not als inkompatible Variante statt als kompatible Obermenge behandelt, Chess960 künstlich auszugrenzen. Beweisen lässt sich das aber kaum. Heute ist es also nicht mehr an mir, sich zu bewegen. Falls jene Einschätzung ein Missverständnis ist, könnte SMK das mit dem angekündigten Shredder10 ganz leicht wieder richtig stellen.
Frage 5.
Implementierung von Endspielwissen in Schachengines ist nicht einfach. Viele der Programmierer gehen einen anderen Weg und implementieren die Möglichkeit des Zugriffs auf Endpieldatenbanken so dass sie sich weniger oder gar nicht um das Endspielwissen kümmern müssen. Welchen Weg verfolgst Du mit SMIRF ?
Wenigsteiner-Tabellen halte ich für einen gelungenen Marketing-Gag. 99.9% aller Partien würden ohne Tablebases genauso ausgehen wie mit. Für theoretische Überlegungen und Analysen mögen sie tatsächlich sinnvoll sein, im praktischen Spiel sind sie aber ohne Bedeutung. Ein Auto zu besitzen, dass 250 km/h fahren kann, hilft im Stau wenig, aber es hebt den Status und man fühlt sich besser. Immerhin gibt es ja auch exotische Teststellungen, in denen Wenigsteiner-Tabellen tatsächlich nützlich sind.
Frage 6.
Im letzten Jahr wurden mehrere starke Engines veröffentlicht. All dies geschah trotz der Behauptung man könnte die Spielstärke von Engines nicht mehr steigern. Siehst Du noch mehr Potential für eine Spielstärkensteigerung und wo kommt dieses Potential her ?
Wenn ich diese Frage sachgerecht beantworten könnte, wäre mein SMIRF sicher stärker. Natürlich werden schnellere Prozessoren sofort größere Spielstärke mit sich bringen. Ähnliches gilt für die bald Mode werdenden Multi-Core CPUs. Ich selber kann wohl nur wenig dazu beitragen. Meine Vorstellung ist, dass in Bälde die Programme mehr Rücksicht auf die Personalität ihres Gegners nehmen werden. Das kann auf verschiedene Weise geschehen. Meine Vorstellung läuft darauf hinaus, Schach (außer im Endspiel) nicht mehr als Nullsummenspiel zu betrachten, denn es fehlt die dazu notwendige vollständige Information. Damit würde aber der Grundansatz des eindimensionalen MiniMax hinfällig.
Frage 7.
Bist Du vom menschlichen Wissen in Schachengines beeindruckt ? Wenn ja, wie ist Deine Meinung über künftige Fortschritte auf diesem Gebiet ?
Was genau soll das sein? Kann man das einem Programm ansehen? Nachschlagewissen beeindruckt mich rein gar nicht. Wenn es um die Einprogrammierung menschlicher Regeln geht, so bin ich eher skeptisch. Ständig findet man Ausnahmen, werden alte Theoriebücher widerlegt. Ich kann mein eigenes Verhalten nur sehr unzureichend beschreiben, also werde ich mich davor hüten, so etwas einzuprogrammieren. Stattdessen versuche ich, elementarere Prinzipien zu finden.
Falls es wirkliche Großmeister gibt, die sowohl programmieren und sich selber präzise beobachten können, mag es erfolgreich sein. Aber selbst dann riete ich zur Fuzzy Logic statt zu starren Regeln. Hat man dann ein spielstarkes Programm fertig gestellt, wer will entscheiden, was vom einprogrammierten Schachwissen stammt und was nicht?
Sich auf Schachwissen zu verlassen, kann aber auch das Denken blockieren. Man kann etwa einem Turm als einprogrammierte Erfahrung den Wert von fünf Bauerneinheiten zumessen. Besser ist es aber, zu verstehen, wieso er diesen Wert hat, und diese elementareren Ursachen unmittelbar in eine Bewertungsroutine einfließen zu lassen. Rückgriff auf Erfahrung darf Nachdenken nicht ersetzen. Schachwissen – was immer man darunter verstehen mag – sollte also das (zeitlich) allerletzte sein, was man implementiert (in SMIRF dürfte es noch kaum welches geben).
Frage 8.
Was würde Dich mehr erfreuen, wenn Deine Engine FRC Weltmeister würde oder einen Supergrossmeister in einem 10 Partien Match zu schlagen ?
Beides wird wohl kaum geschehen. Ein Problem ist, dass Programme gegeneinander spielen, die völlig unterschiedlich entstanden sind. Interessant sind Matches zwischen Engines, die unter vergleichbaren Voraussetzungen geschrieben wurden. Angesichts zahlreicher Open Source Projekte sehe ich das beim 8x8 Schach aber kaum mehr als möglich an. Es macht ja auch wenig Sinn, an einen 5000-Meter-Rennen teilzunehmen, wenn sich Kurzstreckler als Gegner alle Nase lang abwechseln dürfen. Insofern würde mir ein Sieg in einem 10x8 Capablanca Random Schach Turnier wahrscheinlich sehr viel mehr bedeuten.
Frage 9.
Was sind Deine zukünftigen Pläne bezüglich SMIRF und FRC Programmierung ?
Zur Zeit ist leider Stillstand. Ich habe nur die GUI ein klein wenig überarbeitet. Es fehlt mir aktuell ein wenig an Motivation. So gibt es leider noch immer keinen interessierten Sponsor, und die wenigen Fans fragen nach einer UCI Version, interessieren sich also traditionell nicht für SMIRFs 10x8 Fähigkeiten.
Noch arbeitet SMIRF intern mit einer 32 Bit Zugdarstellung, eine auf 16 Bit habe ich mir bereits ausgedacht, was bei 80 Feldern und zusätzlichen Flags nicht ganz einfach war. Das würde zu einer Verdichtung der gecacheten Daten führen und zu einer beschleunigten Sortierung vorbewerteter Züge.
Meine Deeskalationssuche ist ebenfalls noch der erste Wurf, genau wie meine Feinbewertung. Es wundert mich ein wenig, dass nun SMIRF bereits mit diesen ad hoc Lösungen schon auf irgendwo zwischen 2400 und 2500 Elo einzuschätzen sein sollte.
Noch immer hat SMIRF kein effektives 0-Move Pruning. Möglicherweise ist mein internes Zugfiltersystem auch bereits genügend effektiv, aber ich glaube es nicht so recht. Im Prinzip ist alles neu zu konzipieren. Die aktuelle Pause könnte also auch zu einer kreativen Zäsur für SMIRF werden.
Frage 10.
Auf Deiner Homepage erwähnst Du ein SMIRF Go Projekt. Kannst Du uns bitte mehr darüber sagen ?
In meinem Leben habe ich sicher öfters Go als Schach gespielt. Ich finde, es beschäftigt im Gegensatz zum Schach beide Gehirnhälften. Es zu programmieren ist eine völlig andere Aufgabe als Schach. Das hat sehr viele Gründe. Die beim 10x8 Schach schon erkennbare Lokalität von taktischen Auseinandersetzungen ist hier unübersehbar. Gibt es beim 10x8 Schach schon 1/4 mehr Züge als beim 8x8 Schach, so sind es beim Go noch bedeutend mehr Möglichkeiten. Ich sehe also das 10x8 Schach bewusst als eine Zwischenstufe an hin zu den Anforderungen, die das Go-Spiel aufweist.
Leider gibt es beim Go offenbar kein wirklich brauchbares Computer-Protokoll, das z.B. auch das Pondering regeln würde. Meine Versuche, in der Szene der Go-Programmierer auch in Hinsicht darauf Kontakte zu knüpfen, sind leider nicht erfolgreich verlaufen. So habe ich bislang nur versucht, bestimmte theoretische Vorbereitungen zu treffen. Ich glaube z.B., einen sehr effektiven Weg zum Auf- und Abbau von Brettzuständen gefunden zu haben.
Der von vielen eingeschlagene Weg der Mustererkennung ist nichts für mich. Ich halte ihn sogar für kontraproduktiv. Mustererkennung kann dort Großes leisten, wo die Menge relevanter Muster begrenzt und bekannt ist. Das zweifle ich aber beim Go stark an. Ich halte es für aussichtslos, hier den Menschen simulieren zu wollen, es geht darum, die Maschinen gemäßen Spielprinzipien herauszuarbeiten, oder was ich dafür halten werde.
Das größte Geheimnis ist aber, zu verstehen, was das Setzen eines einzelnen Steines auf dem Brett überhaupt bedeutet. Das habe ich leider noch immer nicht in Gänze verstanden. Ich merke, das klingt noch sehr bescheiden, aber wichtig ist eben, eine innere Distanz herzustellen und die gemachten Gewohnheiten völlig zu ignorieren.
Frage 11.
Planst Du mit SMIRF Go an irgendwelchen Turnieren teilzunehmen oder ist es mehr ein privates Projekt ?
Das wird von den gemachten Fortschritten abhängen und auch davon, ob es mit vernünftigen Preisen ausgestattete Turniere gibt. Eine Reise nach Korea oder Japan werde ich mir aber kaum leisten können. Zum Glück kann Software alleine deutlich kostengünstiger um den Globus wandern.
Frage 12.
Auf Deiner Web-Seite wird ein interessantes Verfahren für die Figurenbewertung vorgestellt. Wie ist Deine Meinung bezüglich der Ergebnisse auf diesem Gebiet mit Capablanca-Schach sowie in normalem Schach ?
In meinem beschriebenen Ansatz war es das Ziel, den Wert von Figuren auch auf anderen Geometrien als 8x8 und für ungewohnte Gangarten herzuleiten. Das scheint mir ganz gut gelungen zu sein. Die Überlegungen beruhten ursprünglich auf nur zwei Aspekten einer Figur: wie viele Felder kann sie bewirken (betreten) und wie viele Richtungen (Figuren) kann sie bedrohen (decken). Das schien zunächst auszureichen. Im Laufe der Beschäftigung mit dem 10x8 Schach bemerkte ich aber, das die Transportabilität einer Figur auch eine Rolle spielt, wie schnell also ihre Wirkung auf dem Brett wandern kann. Das hat zu geringen Veränderungen in den berechneten Werten geführt.
Oft wird missverstanden, dass bei einem möglichen Abtausch von Figuren nur dieser so gefundene Mittelwert eine Rolle spielen würde. Das ist natürlich nicht so. Mit einer Figur verschwinden auch ihre positionellen Wirkungen vom Brett. Dort, wo sich Wirkungen von Figuren überlagern, dominiert der Einfluss der geringerwertigen Figur. Ein Bauer kann immer riskieren, zurück geschlagen zu werden, eine Dame fast nie. Der positionelle Wirkwert ist dort also etwa 1/x zum mittleren Tauschwert.
Es gibt aber nach wie vor keine einheitliche Sichtweise zu diesen Werten. Es wird wohl auch so bleiben.
Frage 13.
Vor kurzem hast Du einen Design-Wettbewerb für eine neue Schach-Variante gewonnen. Um eine grössere Popularität zu erfahren muss Capablanca-Schach richtig vermarktet werden. Die Veröffentlichung der Spezifikationen sowie der Spielregeln scheint der logische Weg zu sein um es den Programmieren zu erlauben eine entsprechende Engine herzustellen. Wirst Du etwas davon veröffentlichen und, falls ja, was ?
Das Capablanca Random Schach (CRC) ist absolut frei. Ich habe es auf http://www.chessvariants.org/ veröffentlicht. Auch über http://de.wikipedia.org/wiki/Capablanca-Random-Chess ist es zu finden. Auf http://www.brainking.com kann man es sogar online und gratis spielen. Wer möchte, kann sogar eine C++ Routine bekommen, welche gültige CRC (und Chess960) Positionen erzeugt. Auch dies wurde bereits mehrfach veröffentlicht. Manche haben danach gefragt und bekamen es dann prompt.
Ich halte CRC für eine ideale Trainingsumgebung für FullChess Programme. Darum habe ich auch das freie TMCI Protokoll (Third Millennium Chess Interface) als Vorschlag veröffentlicht. Ich bin für konstruktive Vorschläge und Kritik hierzu immer offen.
Frage 14.
Kannst Du uns bitte die Vor- und Nachteile des X-FEN im Vergleich zum Shredder FEN erklären ? Es wäre hilfreich für die Uneingeweihten unter uns die Unterschiede der beiden Ansätze zu erklären. Wieso ist X-FEN besser geeignet für Schachsoftware als der Shredder FEN ?
Nun ja, es ist eigentlich ganz einfach. Zunächst einmal zielt X-FEN darauf ab, den ganzen FullChess Bereich (besonders das Chess960) abzudecken, ohne mit dem Bestehenden inkompatibel zu werden. Dazu zählen das bereits existierende (rochadelose) Shuffle-Chess als auch das bereits bekannte Pseudo-FRC (18 Stellungen), bei dem König und Türme an bekanntem Ort stehen, und natürlich selbstverständlich darunter erst recht das traditionelle Schach.
Die Schwierigkeit besteht darin, dass nicht (wie beim traditionellen Schach) sofort klar ist, mit welchem Turm eine Rochade durchgeführt werden darf, falls mehrere Türme auf einer Seite ihres Königs stehen. FEN kodiert ja nicht, welche Figur bereits bewegt wurde, sondern nur, auf welcher Seite Rochadepotenzen bestehen. Beim klassischen Schach kann nur ein in einer Ecke stehender Turm gemeint sein, beim Chess960 wird aber im Zweifelsfall eine zusätzliche, entscheidende Information nötig. Das X-FEN trifft hier eine klare Default-Regelung, welche in 99.99% aller Fälle ausreicht, indem die Rochadepotenz standardgemäß dem am weitesten außen stehenden eigenen Turm dieser Seite zukommt – völlig kompatibel zum Althergebrachten. Somit ist nur für den verschwindenden Rest aller Fälle, falls also ein innerer Turm die Rochadepotenz besitzen sollte, eine zusätzliche Information nötig. X-FEN löst diesen seltenen Fall, indem es den traditionellen Rochade-Tag (KQkq) durch den Spaltenbuchstaben des betroffenen inneren Rochadeturms ersetzt (in entsprechender Groß- / Kleinschreibung). Das Ergebnis ist eine eindeutige Darstellung von Chess960 Positionen, die bei herkömmlichen Positionen in keinem Fall zu einer anderen Darstellung als mit dem traditionellen FEN führt, sie ist also 100% abwärtskompatibel.
Diese X-FEN Darstellung wurde in zahlreichen Auflistungen von Chess960 Startpositionen, Chess960-Datenbanken usw. bereits fleißig verwendet, als mit Shredder plötzlich ohne Not eine völlig inkompatible Lösung präsentiert und vermarktet wurde. Unter dem Shredder-FEN wird grundsätzlich auf die traditionellen Rochade-Tags (KQkq) verzichtet, stattdessen wird grundsätzlich der Spaltenbuchstabe der betroffenen Türme verwendet. Chess960 ist eine Obermenge zum traditionellen Schach, deshalb münden zahlreiche Partien in Mittel- und Endspiele, die vom klassischen Schach durch nichts unterschieden sind. Das trifft besonders zu für die traditionelle Startstellung 518 als auch für die übrigen Pseudo-FRC Stellungen sowie für die aus ihnen hervorgehenden Positionen.
Kodierte Stellungen erhalten daher – je nach willkürlicher Shredder Perspektive – völlig unterschiedliche FEN-Strings zugeordnet, obwohl es nur eine einzige, wirkliche Brettsituation gibt. In dem gleichzeitig erweiterten UCI-Protokoll wurde dieser Missgriff konsequent fortgesetzt. Nun wird darin ohne Not eine strikte Trennung zwischen künstlichen Betriebsarten Chess960 und Standard Schach verlangt. Dabei kann eine Chess960 befähigte Engine grundsätzlich immer Chess960 spielen, denn ein korrekter X-FEN String enthält ja stets eindeutig sämtliche erforderlichen Informationen.
Wie bekannt sein dürfte, hat Arena früh den Grundstock dafür gelegt, auch Chess960 / FRC spielbar zu machen. Ein paar kreative Menschen haben versucht, eine Lösung zu finden, ohne dabei eine UCI-Erweiterung vorwegzunehmen. Das mag der Grund für den damalig halbherzigen Weg gewesen sein, was das UCI-Protokoll angeht. Das Abwarten zahlte sich leider nicht aus.
Mit dem Shredder-FEN kam nun aber ohne Not auch ein Bedürfnis auf, Chess960 Partien von klassischen Partien zu trennen, weil eben Shredder diese künstliche Unterscheidung verlangt, nur um Positionen richtig deuten zu können.
Dabei ist eine Unterscheidung in solche Betriebsarten völlig kontraproduktiv. Eine Engine braucht nur einmalig der GUI zu signalisieren, dass sie Chess960 / FRC versteht, andernfalls wird sie keine solche Positionen serviert bekommen. Rochadezüge können, sofern der König dabei mehr als einen Schritt macht, wie gewohnt per Quell- und Zielfeldkoordinate mitgeteilt werden, ansonsten macht der König ersatzweise scheinbar einen Zug auf den betroffenen Rochadeturm. Hierdurch ist zudem eine klare Geste für die Eingabe einer Rochade auf der GUI festgelegt. Und das alles ist eben voll abwärts kompatibel.
Diesen empfohlenen Weg kann man in SMIRF austesten, und zwar als konkrete Lösung, nicht als Phantasie.
Frage 15.
Ein kurzer Blick in die Vergangenheit....... Wie lange beschäftigst Du Dich mit der Schachprogrammierung und wie hast Du damit angefangen ?
Mit Computerschach beschäftige ich mich schon sehr lange. Mein erstes Programm habe ich auf einem Sharp MZ80K in Assembler verbrochen. Danach gab es eine lange Pause mit gelegentlichen kleinen Studien zur Datenstruktur von Schach. Seit meinem Unfall habe ich aber unfreiwilliger Weise etwas mehr Zeit übrig bis zu einer erhofften Neuanstellung. So habe ich mich ungefähr die letzten zwei Jahre einfach immer wieder einmal mit SMIRF beschäftigt und mich dazu in Bezug auf Borland und Microsoft Entwicklungsoberflächen auf dem Stand gehalten.
Frage 16.
Planst Du ein weieters Buch was nicht nur FRC sondern auch das Capablanca-Schach abdeckt ? Das Buch ist immer noch erhältlich und dient als grundlegende Referenz für solche die sich mit dieser Schach-Variante beschäftigen. Wir sind sicher eine Englische Ausgabe wäre sehr erfolgreich. Hast du weitere Pläne für Bücher auf diesem Gebiet ?
Tatsächlich habe ich mir überlegt, zusammen mit einer beizufügenden SMIRF Version, ein entsprechend aktualisiertes Buch evtl. zweisprachig zu veröffentlichen. Mein erstes Buch über Chess960 wurde als Book-on-Demand veröffentlicht, ist also leider nicht unmittelbar im Buchhandel zu finden. So hat mich das erste Buchprojekt definitiv mehr gekostet als mir eingebracht. Ich glaube aber, als konventionell verlegtes Buch wäre diese neue Idee sicher erfolgreich. Noch bin ich aber auf der Suche nach einem entsprechenden Verlag. Leider bin ich nicht erfahren genug in solchen Dingen.
Frage 17.
Wer hat Dich am meisten beeinflusst, sowohl im Schach als auch in der Programmierung ?
Mein Vater hat mir das Schachspielen beigebracht. Bobby Fischer hat mich in seinen guten Zeiten sehr fasziniert. Dennoch bin ich insgesamt als Spieler wohl eher ein Patzer geblieben.
In meinem Leben habe ich viele Programmiersprachen verwendet: FORTRAN, SIMULA, LISP, FORTH, diverse ASSEMBLER, BAL, COBOL, C, C++, BASIC. Die Z80-Zeit hat mich gelehrt, sparsam mit Ressourcen umzugehen. Der Umgang mit Entscheidungstabellen war eine gute Lehre zur ökonomischen Sequenzierung kausaler Zusammenhänge. Der Wechsel auf die objektorientierte Programmierung und die Gestaltung entsprechender relationaler Datenbankstrukturen hat mich trainiert, Problemfelder zu analysieren und unter wechselnden Perspektiven zu betrachten. All das wende ich nun auf das Schach an.
Frage 18.
Was ist der beste Weg ein Schach-Programm zu schreiben. Was wäre Dein Ratschlag an Programmierer die sich daran versuchen wollen ?
Viele versuchen sich, kaum dass sie ein wenig programmieren können, gleich an einem Schachprogramm, und am besten gleich mit einer eigener Oberfläche. Doch ist es kaum möglich, sich so etwas mal eben aus dem Ärmel zu schütteln und dabei auch noch ein leistungsfähiges Ergebnis zu erhalten.
Viele gehen dann die vermeintliche Abkürzung der Open Source Schach Projekte. Leider verpassen sie dabei die niemals wieder kehrende Chance, mit wirklich eigenen Ideen an das Problem heranzutreten. Sie werden zu Kopisten oder zu Patchworkern. Wer darin einen Erfolg zu sehen vermag, hat es gut. Ich aber rate davon ab. Besser ist es, die Anforderungen zunächst einmal herunter zu schrauben und nicht gleich mit den Ergebnissen Jahrzehnte langer Arbeit konkurrieren zu wollen.
Wer sich trotzdem nicht nur mit einer grundsätzlichen Lösung zufrieden geben will, sondern ein gut spielendes Resultat erarbeiten möchte, sollte zunächst einmal sein Handwerk verstehen lernen. Dazu gehört dann auch, arbeitsteilig vorzugehen und modular zu denken. Mein Tipp: ein Protokoll auswählen und eine bestehende GUI verwenden. (Leider aber basieren die meisten Protokolle auf umgelenkten STDIN und STDOUT Streams, und schon geht wieder die Suche nach Lösungsmodellen los. Es wäre nun wirklich an der Zeit für etwas Moderneres.)
Ob ich Bücher wie „Schach am PC“ oder „Das Große Computerschachbuch“ empfehlen sollte, weiß ich nicht so recht. Im Prinzip sind sie wunderbar, wenn nur nicht die Versuchung so groß wäre, die enthaltenen Sourcen zu verwenden. Ich halte mehr von theoretischeren Abhandlungen. Auch das Beobachten und Mitreden in Schach-Foren kann helfen, nur sollte man sich nicht gleich zu Anfang zu dem vermeintlichen Allheilmittel Bitboard bekehren lassen.
Frage 19.
Welche sind die beeindrückendsten Partien die von SMIRF gespielt wurden ? Wir meinen dabei sowohl Capablanca also auch FRC960 Partien. Hast Du irgendwelche Lieblingsstellungen die Du uns zeigen kanst welche die neuen Konzepte dieser Varianten verdeutlichen ?
Eigentlich sehe ich die Partien von SMIRF noch sehr kritisch und glaube nicht, dass sie Wert wären, besonders herausgestellt zu werden. Schön war es, Ende 2004 in der 10x8 GothicChess WM mithalten zu können trotz einer viel zu kurzen Vorbereitungszeit. Leider sah ich mich Ende 2005 gezwungen, meine Teilnahme beim entsprechenden Folge-Ereignis abzubrechen, da das dortige System nicht dazu in der Lage war, einmal unterbrochene Partien sinnvoll wieder aufzunehmen.
Mir ist es viel wichtiger, darauf hin zu weisen, dass SMIRF inzwischen auch weitere Varianten beherrscht wie das Embassy Chess (MBC) oder das Chess480. Eine weitere, völlig neue Variante schwebt mir noch vor, das Tabu-Schach. Hierin würde ein anderer, bisher völlig vernachlässigter Aspekt des Schachspiels variiert. Ich hoffe also, weiter kreativ zu bleiben.
Frage 20.
Kannst Du uns bitte etwas über Dein Interesse an Sumerischer Mathematik erzählen ? Wie wurde Dein Interesse daran geweckt und welche andere Gebiete interessieren Dich am meisten ?
Im Laufe der Menschheitsgeschichte hat es immer wieder Rückschläge und Stillstände in Wissenschaft und Kultur gegeben. Niemals (vor unserer Zeit) war das Innovations-Tempo aber so hoch wie in den Zeiten der Sumerer. Ich habe einmal für die Englische Firma HiSoft eine komplette Fließkomma-Arithmetik Bibliothek für einen Z80 Pascal-Compiler geschrieben (numerische Coprozessoren gab es ja noch nicht), da war ein Bezug zu den bereits binär multiplizierenden Sumerern nicht ganz fern. Mir gefällt es nicht, dass unsere Altvorderen oft als primitive Wesen hingestellt werden. Auch begeistert mich ihr mehr praktischer Umgang mit der Mathematik eher als der esoterische bei den Griechen.
Wer wissen möchte, wieso ein Kreis genau 360 Grad besitzt und wer bereits etwa 4000 vor Chr. den genauen Erdumfang kannte, kann ja mal auf meiner Homesite http://www.chessbox.de herum stöbern. Danach wird man vielleicht sogar dazu in der Lage sein, Pi mittels einer Waage zu bestimmen. ;-)
Vielen Dank für die Beantwortung der Fragen. Wir wünschen Dir alles Gute und weiterhin viel Spass mit SMIRF, FullChess und Capablanca Chess.
The Smirf and FullChess homepages can be found at http://de.geocities.com/rsmuenchen/ & http://www.chessbox.de/Compu/fullchess1.html
Exactachess © 2006
|