Ein Cook bei Fuddled Men und ein Bug in Jacobi v0.6.6

Hinweise von Bernd Gräfrath (Mülheim/Ruhr)

In der Ausschreibung des 5. Retroblog-Thematurniers („Beweispartien mit Fuddled Men“) wurden sechs Beispiele als Illustrationen gebracht. Ich hatte sie alle mit Jacobi v0.6.6 getestet und auf dieser Grundlage für alle ein „C+“ angegeben. Nun hat mich François Labelle gerade darüber informiert, daß die Version v0.6.6 einen Bug hat, der dazu führt, daß ein Cook bei Illustration FM1 übersehen wurde. In dieser Version wurde die Rochade nicht erlaubt, obwohl der scheinbare Angreifer der Gegenseite noch „fuddled“ ist. Aber die folgende Lösung ist legal: 1.d4 Sh6 2.Lxh6 e5 3.dxe5 Ld6 4.Dxd6 0-0 5.Sd2 Te8 6.Dxc7 d5 7.0-0-0 Txe5 8.Lf4 Lg4 9.Kb1 Te3 10.Dxd8, denn die wDd6 verhindert nicht 4.– 0-0! Damit ist FM1 kaputt. Dieser Bug ist repariert in Jacobi v0.6.7 RC3: Diese Version findet den Cook (und gibt für die anderen fünf Beispiele zum Glück immer noch ein C+). Wie François schreibt, war das das erste Mal, daß aufgrund eines „C+“ von Jacobi ein dualistisches Problem als korrekt veröffentlicht wurde. Aber das wird jedem Prüfprogramm irgendwann passieren, und ich bin froh, daß es Jacobi gibt! Auch bei diesem Cook wird übrigens vorausgesetzt, daß nach der Rochade der beteiligte Turm nicht „fuddled“ ist (und so sieht es nicht nur Jacobi, sondern auch WinChloe).

English Summary

François Labelle has informed me that there is a bug in Jacobi v0.6.6 which made it overlook a cook in my problem FM1 (see the announcement of the Retroblog’s thematic tourney on proof games with Fuddled Men): 1.d4 Sh6 2.Bxh6 e5 3.dxe5 Bd6 4.Qxd6 0-0 5.Sd2 Re8 6.Qxc7 d5 7.0-0-0 Rxe5 8.Bf4 Bg4 9.Kb1 Re3 10.Qxd8. Jacobi v0.6.6 did not see that castling is allowed if the attacking piece is fuddled: The wQd6 does not prevent 4.– 0-0! This cook can be found by the latest version, Jacobi v0.6.7 RC3 (and the other five illustrations are still regarded as „C+“). This is the first time that a dualistic problem has been published after receiving a „C+“ from Jacobi!

Anmerkung von TB

Den erwähnten Release-Kandidaten könnt ihr finden, wenn ihr auf der Jacobi-Hauptseite nach unten scrollt. Bei solchen Vor-Versionen ist die Benutzung natürlich “stets auf eigene Gefahr, Eltern haften für ihre Kinder”, da neue Fehler nie ausgeschlossen werden können. Ihr solltet nach der Freigabe von v0.6.7 unbedingt auf die dann offizielle Version wechseln.

Software-Updates

In den letzten Tagen hat es zwei Updates für Programme zur Prüfung (auch) von Retros bzw. Beweispartien gegeben:

  • Teddy in der Version 1.9.0, das Frontend für Prüfprogramme, unterstützt nun auch Euclide und damit die wesentlichen Testhilfen für uns Retro-Freunde: neben Euclide nämlich Natch, Jacobi und Popeye.
  • Von Popeye ist die Version 4.83 erschienen; es ist hauptsächlich ein Bug-Fix-Release, enthält aber auch zwei neu unterstützte Bedingungen.

Viel Spaß mit diesen neuen Versionen!

Drei Springer

Update vom 11.08.2019

Am Dienstagabend erhielt ich eine ziemlich überraschenden Mail: Ein Mitarbeiter des Bundeswettbewerb Informatik (getragen von der Gesellschaft für Informatik, Fraunhofer IUK-Technologie und dem Max-Planck-Institut Informatik, gefördert vom Bundesministerium für Bildung und Forschung) machte mich auf die dritte Aufgabe der zweiten Runde des 37. Bundeswettbewerb Informatik 2018/2019 aufmerksam.

In der waren die Endspiele König und drei Springer gegen König zu untersuchen: “Schreibe ein Programm, das für eine gegebene Stellung und ein Zielfeld feststellt, ob Weiß erzwingen kann, dass der schwarze König auf diesem Zielfeld matt gesetzt wird. … Zudem ist folgendes Schachproblem zu lösen: Der schwarze König steht in der obersten Reihe des Spielbretts und die weißen Figuren in der untersten Reihe. Für welche Felder kann Weiß erzwingen, dass der schwarze König dort matt gesetzt wird? Dieses Schachproblem ist noch offen! Es ist nur bekannt, dass es für die Eckfelder des Spielbretts möglich ist.”

Und hier gab es wirklich Neues: Das Matt kann nicht nur auf den Eckfeldern, sondern auf allen Randfeldern erzwungen werden. Hier findet ihr die genaue Aufgabenstellung sowie die Lösungshinweise.

Ein sicher interessantes “akademisches ” Ergebnis; besonders interessant ist aber die generelle “retroanalytische” Herangehensweise durch Zurückspielen von der Mattstellung. Dieser generelle Ansatz ist natürlich nicht neu; mit dem hatte bereits D. Relp (Pseudonym für Helmut Mertes) sein “Verzeichnis aller Hilfsmatt-Aufgaben mit dem Material KS-KS” erstellt, das er 1975 bei Peter Kniest in Wegberg veröffentlichte. Das Verfahren ist für direkte Mattforderungen allerdings komplizierter als beim Hilfsmatt, da sich Schwarz ja wehren kann, und so gibt es auch Stellungen (siehe etwa Beispiel 5), in denen der weiße Sieg unmöglich ist, da Schwarz den Schlag eines der weißen Springer erzwingen kann.

Übrigens: Auch die beiden anderen Aufgaben sind sehr interessant und für Informatik-affine Leser höchst empfehlenswert!

Zwei Verifikations-Beispiele aus dem Wettbewerb:

Beispiel 3

Beispiel 5

Nachtrag 11.08.2019:

Hier die von Joost (herzlichen Dank!) im Kommentar angegebene Studie von Herbstmann und Kubbel.

Anzeige von Beweispartien

Endlich konnte ich einmal nach einem PGN-Plug-In für den Blog schauen…

Wofür soll das gut sein? Damit können beispielsweise Beweispartien “auf einem Brett” dynamisch angezeigt werden. Damit könnt ihr euch dann durch die Lösung klicken oder auch mit den Pfeiltasten navigieren. Damit ist das Nachvollziehen von Beweispartien am Bildschirm sicher einfacher als bisher. Das sollte übrigens auch vernünftig auf Smartphones funktionieren — wenn nicht, sagt mir bitte Bescheid!

Hier ein kleines Beispiel:

Beispiel

Wofür kann diese Anzeiagert noch verwendet werden? Natürlich für Auflöse-Aufgaben (dabei solltet ihr aber dann “rückwärts ziehen”…) und auch für einige wenige Märchen-Beweispartien (z.B. Duellantenschach), weil da jeder legale Märchenzug auch ein legaler orthodoxer Zug ist UND die Schachgebots-Regeln wieder orthodox sind. Schach Schach-960 unterstützt dieses Plugin auch.

Nicht funktioniert es etwa mit Verteidigungsrückzügern, zumindest, wenn sie über Varianten verfügen, und die meisten Märchenbedingungen. Aber immerhin…

Es handelt sich übrigens um das RPB Chessboard Plugin von Yoann Le Montagner.

Wie gefällt euch das insgesamt? Ist euch übrigens das rechte Knöpfchen schon aufgefallen? Auf eure Kommentare bin ich gespannt!

Teddy 1.8.1

Vor knapp drei Jahren hatte ich hier über zwei unterschiedliche Programme berichtet – und heute können sie zusammenarbeiten!

Die ursprüngliche Popeye-Grafikoberfläche Teddy kann seit einiger Zeit auch als Benutzungsschnittstelle für (Jacobi und) das Beweispartie-Prüfprogramm Natch dienen. Dabei können die Natch Parameter konsistent mit der Teddy Oberfläche eingegeben, die Stellung dann durch Klicken ins Diagramm oder Eingabe der FEN Notation geändert werden. Für letzteres muss das Eingabefeld für FEN zunächst über das „Einstellungen“ Menü aktiviert werden. Dann aber ändern Eingaben im Diagramm oder im FEN-Feld synchron die Anzeigen im jeweils anderen Feld -– sehr komfortabel!

Übrigens finde ich das Eingabediagramm auch sehr praktisch z.B. zum Nachspielen vom Märchen-Beweispartien, was mit vielen Programmen nicht möglich ist, da dort die „orthodoxe Legalität“ von Zügen überprüft wird, die beispielsweise das Spielen einer Circe-Beweispartie ausschließt. Die Partieanfangsstellung kann man einfach mit Klick auf den mit drei schwarzen und weißen Bauern markierten Knopf aufbauen; klasse!

Probiert Teddy doch einfach mal aus – mir gefällt es sehr gut, ich finde es extrem nützlich. Vielleicht lernt das Programm ja auch bald noch, mit Euclide umzugehen?!

Quartz 47

Vor wenigen Tagen ist die neueste Ausgabe von Quartz im Internet erschienen: Nummer 47 beschäftigt sich u.a. intensiv mit der Bedingung “Isardam” im Beweispartien und berichtet über interessante Entwicklungen rund um das gerade für Märchen-Beweispartien hervorragend geeignete Prüfprogramm Jacobi.

Quartz ist besonders für jene interessant, die sich auch für Märchen-Retros interessieren, hier gibt es quasi in jeder Ausgabe etwas zu entdecken. Viel Spaß bei der Lektüre!

Constraints

Prüfprogramme für Beweispartien haben besonders dann große Probleme, in überschaubarer Zeit ein Prüfergebnis zu liefern, wenn sowohl bei Weiß als auch bei Schwarz “freie”, also nicht aus dem Diagramm ableitbare Züge vorhanden sind: Beim “Brute Force” Rechnen, also der Berücksichtigung aller theoretisch möglichen Züge, führt dies schnell zu extremen Prüfzeiten, die etwa exponenziell mit der Anzahl der freien Züge wächst. Wie sagte mal ein Professor während meines Studiums? “Nichts wächst so schnell wie exponenziell.” (Schaut euch mal die Ackermannfunktion an, wenn ihr sehen wollt, wie schnell “exponenziell” wachsen kann!)

Kann man einem Prüfprogramm nun “menschliche Erkenntnisse” zum Beispiel zu Reihenfolgen von Zügen oder zur Mindest- und Höchstzahl von Zügen eines Steins mitteilen, so kann man damit die Prüfzeiten drastisch verkürzen — man muss sich dabei “nur” darüber im Klaren sein, dass dies keine vollständige Computerprüfung darstellt, denn wenn die Überlegungen zu möglichen Einschränkungen (englisch: “constraints”) des Suchbaums einen Denk- oder Notationsfehler enthalten, kann das Ergebnis unseres Rechenknechts (englisch: “computer”) natürlich nicht korrekt sein.

Natch und Euklide enthalten rudimentäre Möglichkeiten, solche “constrains” einzugeben und zu nutzen; diese wurden bei Jacobi noch erweitert. In dem interessanten Artikel “Solving program Jacobi equipped with constraints — a new tool to check proof games” haben nun Michel Caillaud, Nicolas Dupont und François Labelle anhand von jeweils drei orthodoxen und Märchen-Beweispartien die Möglichkeiten ausführlich dargestellt. Dieser lesenswerte Artikel kann auf Julias Fairy-Seite als pdf-Datei gelesen bzw. direkt heruntergeladen werden.

Sehr empfehlenswerte Lektüre!