Am 18. Februar hatte ich hier über die Fehler in Euclide 0.99 berichtet, die Bernd Gräfrath und Silvio Baier entdeckt hatten.
Heute hat nun Étienne Dupuis die Version 1.00 von Euclide freigegeben, die diese Probleme behebt. Ihr könnt die neue Version von Euclide’s Homepage herunterladen.
Übrigens lässt sich die Frage, was den eigentlich “Co+” bedeutet, nicht nur auf mögliche Fehler bei Euclide reduzieren: So ist die neueste Popeye-Version im Wesentlichen ein Bugfix-Release — aber noch spannender finde ich die Frage der Interpretation von Märchenschach-Bedingungen, speziell deren Verknüpfung. Und hier interpretieren die drei “Marktführer” (in alphabetischer Reihenfolge) Alybadix, Popeye und WinChloe Bedingungen häufig unterschiedlich und kommen damit zu unterschiedlichen Prüfergebnissen (was für den einen korrekt ist, ist für den anderen vielleicht unlösbar oder nebenlösig).
Eigentlich reicht also eine Angabe “Co+” nicht aus; sie benötigt die Zusatzinformation, mit welchem Programm in welcher Version getestet wurde, um aussagekräftig zu sein.
das ging ja erfreulich schnell mit der korrektur. prima!
dank an étienne, pascal und silvio!
ich habe die version 1.00 heruntergeladen und effektiv damit sowohl bei der aufgabe von bernd als auch bei der version von silvio die lösungen erhalten.
ps: auch ich bin der meinung, dass der vermerk “C+” immer durch die angabe des prüfprogramms samt versionsnummer ergänzt werden sollte.
… und selbst die Angabe “Co+ nach Programm XY, Version xy” darf nicht das letzte Wort sein: Menschliche Urteilende müssen immer noch sagen dürfen, daß eine bestimmte Implementierung einer Märchenbedingung (oder der Verbindung verschiedener Märchenbedingungen) einfach falsch ist. Programmierer dürfen nicht immer einfach sagen: “It’s not a bug, it’s a feature!” Vgl. dazu die Diskussion auf
http://juliasfairies.com/problems/jf-2014-i/no-481/
Étienne Dupois konnte aus welchen Gründen auch immer keinen Kommentar hier abgeben, drum kopiere ich ihn aus seiner Mail an mich hierher:
First, « C+ » means that a chess problem has been declared sound (i.e. it has only the intended solution(s) and no other) by a computer program. However, as hinted above, it is almost impossible to verify the program itself. As time goes on, we can become confident in a program, but that does not mean one day someone will not stumble upon a bug. For chess problem software, it is much easier for example to solve a mate in two than to validate the uniqueness ot a proofgame. It is thus a good thing that we have two proofgame solving programs.
Then, thanks to Pascal Wassong and Silvio Baier who forwarded the bug report, I was able to fix the bug, and release Euclide 1.00. The problem occured when a promoted piece made a switchback before being captured. I fixed a similar bug a few years ago when a promoted piece made a switchback but without being captured. In both cases, Euclide got confused between the last move of the pawn as a pawn (the promotion) and the last move of the pawn as a promoted piece, as both ends up on the same square.
Although I made a mistake in Euclide’s code, the real mistake was to code logic deductions in the first place. I should have wrote only « brute-force » algorithms rather than try to make some « human » deductions. By writing only (clever) algorithms, there would have been much less room for logic mistakes like this one.