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!

Jacobi V0.2

17.11.17: Programmname (!) korrigiert … Dank an Bernd Gräfrath für den Hinweis!

Erst vor ein paar Tagen hatte ich auf die Freigabe des ersten Releases von Jacobi hingewiesen, des neuen Prüfprogramms von François Labelle speziell für Märchen-Beweispartien, da hat er schon eine neue Version (V0.2) veröffentlicht, die bekannt gewordene Fehler behebt, aber auch eine teilweise deutliche Beschleunigung des Programms mit sich bringt.

Es lohnt also, die Entwicklung dieses interessanten Programms weiter zu verfolgen!

Jacobi

Jacobi ist ein neues Computer-Prüfprogramm speziell für Märchen-Beweispartien (aber auch noch eine Menge Anderes) und schließt damit eine echte Marktlücke, denn orthodoxe Beweispartien lassen sich ja bereits sehr gut mit Natch oder Euclide prüfen.

Autor François Labelle hat es vor wenigen Tagen im Internet zur Verfügung gestellt: Das Lösen erfolgt auf dem eigenen Rechner, die Benutzungsschnittstelle hingegen steht im Internet zur Verfügung. Die Benutzungsschnittstelle ist ein wenig gewöhnugnsbedürftig und orientiert sich etwa an Popeye. Besonders hervorzuheben ist der “PG demolition mode”, der aufgrund von Heuristiken zunächst die “gefährlichsten” Abspiele sucht, um so möglichst schnell Nebenlösungen zu finden — gerade während des Kompositionsprozesses besonders praktisch, da zeitsparend.

Jacobi hat wie zu erwarten bereits erfolgreich “zugeschlagen”, so hat das Programm schon in seiner Betatest-Phase einige Märchenberweispartien gekocht, und auch von einem Komponisten habe ich den ersten “Erfolg” beim Kochen einer bereits veröffentlichten Aufgabe mitgeteilt bekommen. Gleichzeitig kann er nun einige Aufgaben, an deren Korrektheit er nicht glauben wollte, mit dem Gütesiegel “C+ (Jacobi)” versehen.

Probiert Jacobi einfach aus — es ist für Komponisten und Preisrichter sicherlich eine unschätzbare Hilfe!

Popeye 4.79

Heute hat Thomas Maeder die neue Version 4.79 von Popeye freigegeben, die ihr wie immer bei github herunterladen könnt.

Die neue Version unterstützt nun die “partielle Paralyse”, die beim Sake-Turnier im Zusammenhang mit dem WCCC das Thema bildet; Aufgaben dafür können nun also mit Popeye geprüft werden.

Darüber hinaus gibt es einige Fehlerbehebungen, u.a. auch bei der Bedingung “verlorene Steine”, die in diesem Jahr in Andernach das Kompositionsthema war.

Ich kann euch das Update nur dringend empfehlen.