chessmail
Schachaufgaben
shaack - 05. Okt '21
Ist das bei automatischen Schachaufgaben immer so, dass bei jedem Zug gesagt wird, ob er falsch oder richtig war? Und wäre es nicht besser, wenn man den gesamten Lösungsweg eingeben muss, ohne dass man schon bei jedem Zug gesagt bekommt, ob er jeweils richtig war? Das würde mehr der Art und Weise im Schachaufgaben Forum entsprechen. Versteht jemand, was ich meine?
Tschechov - 05. Okt '21
Ist ja klar und verständlich ausgedrückt. Die Frage ist dann die nach dem Anspruch, die man an solche Aufgaben hat. Im Forum werden ja genug teils sehr anspruchsvolle Aufgaben gepostet, da bin ich bei den von cm zur Verfügung gestellten Aufgaben eigentlich ganz froh, daß es ist wie es ist. Aber das ist natürlich nur meine Meinung.
shaack - 05. Okt '21
Das heisst Du bevorzugst, dass bei jedem Zug angezeigt wird, ob er zum richtigen Weg gehört? Bei Matt in 1 z.B. ist es ja egal. Bei Matt in 2 müsste man dann halt ein mal zwei Züge statt zwei mal einen Zug finden.
Tschechov - 05. Okt '21
Eigentlich schon.
Oli1970 - 05. Okt '21
Ich denke, da muss man differenzieren zwischen einer Schachkomposition als Aufgabe und einer Taktikaufgabe / Mattaufgabe. Der Reiz der Komposition geht flöten, wenn man die Lösung per Probieren Zug um Zug herausfinden kann. Bei der Taktikaufgabe macht es mehr Sinn, zu ziehen, und - sofern der Zug korrekt war - den Gegenzug zu bekommen und wieder selbst ziehen zu müssen.
Eine gute Taktikaufgabe kennt im Idealfall einen (= den) besten Zug bzw. eine beste Zugfolge, allenfalls eine gleichwertige Variante. Ergebnis kann das Matt, Figurengewinn, sonstiger Vorteil, Ausgleich etc. sein. Eine Schachkomposition ist ein Rätsel, sie lebt von einer Verführung, einem Schlüssel, der zur Lösung führt, verschiedenen mögliche Erwiderungen und dem letztlichen Matt und nicht zuletzt von der Vollständigkeit der Lösungsangabe (=Angabe aller Varianten).
M. E. zwei unterschiedliche Anforderungen. Ersteres ist Training, letzteres Puzzle, wenn man so will. Wenn bei der Schachkomposition eine Lösungsangabe fehlt, fehlt ein Puzzleteil, wenn der Weg vorgesagt wird, ist der Rätselspaß zerstört.
Eine gute Taktikaufgabe kennt im Idealfall einen (= den) besten Zug bzw. eine beste Zugfolge, allenfalls eine gleichwertige Variante. Ergebnis kann das Matt, Figurengewinn, sonstiger Vorteil, Ausgleich etc. sein. Eine Schachkomposition ist ein Rätsel, sie lebt von einer Verführung, einem Schlüssel, der zur Lösung führt, verschiedenen mögliche Erwiderungen und dem letztlichen Matt und nicht zuletzt von der Vollständigkeit der Lösungsangabe (=Angabe aller Varianten).
M. E. zwei unterschiedliche Anforderungen. Ersteres ist Training, letzteres Puzzle, wenn man so will. Wenn bei der Schachkomposition eine Lösungsangabe fehlt, fehlt ein Puzzleteil, wenn der Weg vorgesagt wird, ist der Rätselspaß zerstört.
cutter - 05. Okt '21
Ich finde sie auch schick, weil sie einfach was leichtes direktes zwischendurch sind, ohne dass man viel Zeit benötigt...
shaack - 05. Okt '21
@Oli1970 könnte man Schachkompositionen überhaupt als als automatisches Puzzlebrett anbieten, oder ist das Thema so komplex, dass es eh nur per Nachricht an den Ersteller gelöst werden kann?
toby84 - 05. Okt '21
es gibt durchaus eine reihe von möglichen abspielen, aber in einer sauberen lösung sollten die sowieso alle angegeben sein. der ersteller der aufgabe kann also üblicherweise bei perfektem spiel der siegreichen partei alle abfolgen angeben. allerdings gibt es oft eine art standard-zug, der auf fast alle gegnerischen antworten korrekt ist. die ausnahmen werden dann explizit angegeben. das sieht dann beispielsweise so aus:
1. Sf4 droht 2. Sh5#.
Sh5 ist also die antwort auf fast alle gegnerischen züge.
dann werden die ausnahmen aufgezählt:
1... Sf6 Tg8#
1... Dh4 e8:S#
.
.
.
so strukturiere zumindest ich meine eingesendeten lösungsvorschläge.
ps: die beispielzüge sind so willkürlich wie sinnfrei gewählt.
1. Sf4 droht 2. Sh5#.
Sh5 ist also die antwort auf fast alle gegnerischen züge.
dann werden die ausnahmen aufgezählt:
1... Sf6 Tg8#
1... Dh4 e8:S#
.
.
.
so strukturiere zumindest ich meine eingesendeten lösungsvorschläge.
ps: die beispielzüge sind so willkürlich wie sinnfrei gewählt.
cutter - 05. Okt '21
Schachkompositionen haben oft sehr viele Varianten. Und bevor man nicht alle gefunden hat, ist das puzzle nicht gelöst.
Dies in irgendeiner Form zu programmieren stelle ich mir sehr komplex vor.
Außerdem ist die soziale Komponente nicht zu unterschätzen. Manche Probleme werden in Gruppen Arbeit gelöst und ansonsten ist man auch ein bisschen stolz, wenn der Ersteller die Namen der erfolgreichen Löser veröffentlicht.
Dies in irgendeiner Form zu programmieren stelle ich mir sehr komplex vor.
Außerdem ist die soziale Komponente nicht zu unterschätzen. Manche Probleme werden in Gruppen Arbeit gelöst und ansonsten ist man auch ein bisschen stolz, wenn der Ersteller die Namen der erfolgreichen Löser veröffentlicht.
Oli1970 - 05. Okt '21
@shaack: Als automatisches Puzzlebrett sehe ich keine Umsetzungsmöglichkeit. Das wäre wohl eher die Präsentation des Puzzles und ein Button "Lösung anzeigen" zur Selbstkontrolle. Als Beispiel mal hier: yacpdb.org/#47432 - Viele erste Züge und einige Antworten, die der Rätselfreund vollständig selbst finden muss.
Die mit dem ersten Zug aufgestellte Drohung ist zu widerlegen, so dass die Lösungen - Toby nennt sie Ausnahmen - allesamt zu erarbeiten sind. Dabei ist die Vorgabe, z. B. matt in drei Zügen, einzuhalten. Schneller ist schlechte Verteidigung, langsamer ist Fehllösung. Gibst Du alle Antworten vor, ist die halbe Arbeit am Rätsel automatisch erledigt. Nicht gut.
Du wirst die Forenthreads doch sicherlich in einer Datenbank verwalten. Lass doch einfach einen Zufallsgenerator über alle Schachaufgaben-Threads laufen, prüf den ersten Beitrag, ob er einen FEN-String enthält, zeig das Diagramm und gib als Lösung einen Link zum Thread an. Schachkomposition des Tages. Gleiches geht mit den kommentierten Spielen. Spiel des Tages. Beides Handmade von chessmail-Usern, ein paar Unfälle müssen natürlich in Kauf genommen werden.
Welche Möglichkeiten siehst Du für Taktikaufgaben? Geht aus Deiner Sicht ein PGN mit einer FEN-Position und der Lösungsfolge? Spieler zieht, automatische Antwort, sofern hinterlegte der Zug getroffen wurde, ggf. mit Varianten? Also quasi wie der Viewer bei den kommentierten Spielen, nur mit verdeckter Zugfolge und automatischer Antwort? Oder wäre es eher EPD-Format? - Ich frage, weil ich etwas am Basteln bin, damit sich die Copyright-Frage nicht stellt. Es gibt Möglichkeiten, aus kompletten Spielen Aufgaben zu generieren. Funktioniert sogar gut, ist nur quälend langsam. Pgn-tactics-generator, läuft unter Python. Prüft jede einzelne Spielposition auf einen taktischen Schlag und fasst diese dann zusammen. Scheint dabei nur eindeutige Linien zu verfolgen, so dass die Lösung ebenfalls eindeutig ist.
Zum Testen habe ich eine Sammlung mit 3500 Aufgaben gefunden, nennt sich Auerswalds-Collection, ich nehme an, vom Spieler Uwe Auerswald. Die geistert im Netz an verschiedenen Stellen, z. B. hier: gorgonian.weebly.com/pgn.html, aber auch bei Lucaschess im dortigen Github-Container (im eigenen Format). Wie es mit dem Copyright dort aussieht, bleibt im Dunkeln, wird wohl Grauzone sein.
Bei wtharvey.com/ finden sich ganz unten Textfiles mit Kurzmatts, müsste man umscripten in ein geeignetes Format. Keine Aussage zur Rechtefreigabe.
Die mit dem ersten Zug aufgestellte Drohung ist zu widerlegen, so dass die Lösungen - Toby nennt sie Ausnahmen - allesamt zu erarbeiten sind. Dabei ist die Vorgabe, z. B. matt in drei Zügen, einzuhalten. Schneller ist schlechte Verteidigung, langsamer ist Fehllösung. Gibst Du alle Antworten vor, ist die halbe Arbeit am Rätsel automatisch erledigt. Nicht gut.
Du wirst die Forenthreads doch sicherlich in einer Datenbank verwalten. Lass doch einfach einen Zufallsgenerator über alle Schachaufgaben-Threads laufen, prüf den ersten Beitrag, ob er einen FEN-String enthält, zeig das Diagramm und gib als Lösung einen Link zum Thread an. Schachkomposition des Tages. Gleiches geht mit den kommentierten Spielen. Spiel des Tages. Beides Handmade von chessmail-Usern, ein paar Unfälle müssen natürlich in Kauf genommen werden.
Welche Möglichkeiten siehst Du für Taktikaufgaben? Geht aus Deiner Sicht ein PGN mit einer FEN-Position und der Lösungsfolge? Spieler zieht, automatische Antwort, sofern hinterlegte der Zug getroffen wurde, ggf. mit Varianten? Also quasi wie der Viewer bei den kommentierten Spielen, nur mit verdeckter Zugfolge und automatischer Antwort? Oder wäre es eher EPD-Format? - Ich frage, weil ich etwas am Basteln bin, damit sich die Copyright-Frage nicht stellt. Es gibt Möglichkeiten, aus kompletten Spielen Aufgaben zu generieren. Funktioniert sogar gut, ist nur quälend langsam. Pgn-tactics-generator, läuft unter Python. Prüft jede einzelne Spielposition auf einen taktischen Schlag und fasst diese dann zusammen. Scheint dabei nur eindeutige Linien zu verfolgen, so dass die Lösung ebenfalls eindeutig ist.
Zum Testen habe ich eine Sammlung mit 3500 Aufgaben gefunden, nennt sich Auerswalds-Collection, ich nehme an, vom Spieler Uwe Auerswald. Die geistert im Netz an verschiedenen Stellen, z. B. hier: gorgonian.weebly.com/pgn.html, aber auch bei Lucaschess im dortigen Github-Container (im eigenen Format). Wie es mit dem Copyright dort aussieht, bleibt im Dunkeln, wird wohl Grauzone sein.
Bei wtharvey.com/ finden sich ganz unten Textfiles mit Kurzmatts, müsste man umscripten in ein geeignetes Format. Keine Aussage zur Rechtefreigabe.
shaack - 06. Okt '21
Danke für Deine ausführliche Einschätzung. Also könnte man sagen, dass die Kompositionen im Forum richtig sind und Taktikaufgaben kann man automatisieren, so wie es Shredder macht. Noch nicht ganz klar ist mir, ob es nicht vielleicht doch besser ist, auch bei Taktikaufgaben falsche Züge nicht sofort zu markieren. Ich stelle mir das interessanter vor, wenn man auch bei zweizügigien Matts beide Züge und nicht nur einen nach dem anderen rausfinden muss. Antworten kann bei falschen Zügen ja eine Engine. Man sieht dann eventuell aber auch, warum ein Zug falsch war.
shaack - 06. Okt '21
Noch zu Deiner Frage. Ich denke, ein FEN und eine Zugfolge sollten für Taktikaufgaben reichen, so wie Lichess es hier macht: database.lichess.org/#puzzles Praktischerweise ist dort in dem CSV auch ein ELO-Wert enthalten, der den Schwierigkeitsgrad der Aufgabe angibt und Tags, die die Aufgabe kategorisieren. Bei selbst generierten hat man das ja erst mal nicht, wobei aus der chessmail Datenbank generierte Taktikaufgaben natürlich auch sehr charmant sind, man könnte direkt das Spiel verlinken, aus dem sie entstanden sind.
Oli1970 - 06. Okt '21
Danke für die Antwort(en), Stefan!
>> Ich stelle mir das interessanter vor, wenn man auch bei zweizügigien Matts beide Züge und nicht nur einen nach dem anderen rausfinden muss. Antworten kann bei falschen Zügen ja eine Engine. <<
Das wäre natürlich optimal mit der Rückgabe der Stellungsbewertung. So sähe der Löser sofort die Wirkung seines Wahlzugs.
Die Bestimmung des Elo-Werts usw. kriege ich eher nicht hin, irgendwie findet man zu jeder Teilaufgabe nur einen Teilschnipsel. Ähnliches mit der Kategorisierung. Es gibt Scripts, auch von lichess, aber halt keine fertige Gesamtlösung für einen Rundumschlag. Mein o. g. Python-Script github.com/vitogit/pgn-tactics-generator generiert PGN, ein Julia-Script (von Tactics Frenzy / Play Magnus, github.com/Play-Magnus/PuzzleGenerator und blog.playmagnus.com/generating-tactical-puzzles-with-stockfish.. ) kann EPD-/FEN-Stellungen generieren, liefert aber keine Züge, die Zuggenerierung mit SCID vs PC dazu liefert eine komplette - damit unbrauchbare - Linie mit 20 Halbzügen, lichess’ github.com/ornicar/lichess-puzzler sieht komplex aus und übersteigt damit meine Fähigkeiten - Python kenne ich nur dem Namen nach, Julia kannte ich bis vorgestern gar nicht. War ein Krampf, bis es lief.
Lichess beginnt die Puzzle mit dem Fehlzug, der Spieler ist ab zweitem Halbzug gefordert. Ich sehe den direkten Vorteil nicht, außer dass der Löser ihn eben sieht (was durchaus ein Vorteil zum Lösen sein kann). Das wäre wohl eine Festlegung, die zu treffen ist, oder man muss dem String sozusagen einen Schalter mitgeben, der bestimmt, ob der Spieler am Zug ist oder zunächst das Programm zieht (FEN lässt ja offen, ob der Spieler oder das Brett ziehen soll). Eine weitere Festlegung ist die Angabe der Zugfolge - lichess verwendet scheinbar reine Feldpositionen, jedenfalls nicht SAN mit Figurenangabe, was wohl benutzerfreundlicher wäre und ein Startangebot erleichtern würde.
Aus den chessmail-Spielen generierte Aufgaben wären wirklich charmant! Dann steht nicht nur chessmail drauf, es steckt auch drin. Zeigen, was man selbst zu bieten hat, finde ich immer den besseren Weg.
>> Ich stelle mir das interessanter vor, wenn man auch bei zweizügigien Matts beide Züge und nicht nur einen nach dem anderen rausfinden muss. Antworten kann bei falschen Zügen ja eine Engine. <<
Das wäre natürlich optimal mit der Rückgabe der Stellungsbewertung. So sähe der Löser sofort die Wirkung seines Wahlzugs.
Die Bestimmung des Elo-Werts usw. kriege ich eher nicht hin, irgendwie findet man zu jeder Teilaufgabe nur einen Teilschnipsel. Ähnliches mit der Kategorisierung. Es gibt Scripts, auch von lichess, aber halt keine fertige Gesamtlösung für einen Rundumschlag. Mein o. g. Python-Script github.com/vitogit/pgn-tactics-generator generiert PGN, ein Julia-Script (von Tactics Frenzy / Play Magnus, github.com/Play-Magnus/PuzzleGenerator und blog.playmagnus.com/generating-tactical-puzzles-with-stockfish.. ) kann EPD-/FEN-Stellungen generieren, liefert aber keine Züge, die Zuggenerierung mit SCID vs PC dazu liefert eine komplette - damit unbrauchbare - Linie mit 20 Halbzügen, lichess’ github.com/ornicar/lichess-puzzler sieht komplex aus und übersteigt damit meine Fähigkeiten - Python kenne ich nur dem Namen nach, Julia kannte ich bis vorgestern gar nicht. War ein Krampf, bis es lief.
Lichess beginnt die Puzzle mit dem Fehlzug, der Spieler ist ab zweitem Halbzug gefordert. Ich sehe den direkten Vorteil nicht, außer dass der Löser ihn eben sieht (was durchaus ein Vorteil zum Lösen sein kann). Das wäre wohl eine Festlegung, die zu treffen ist, oder man muss dem String sozusagen einen Schalter mitgeben, der bestimmt, ob der Spieler am Zug ist oder zunächst das Programm zieht (FEN lässt ja offen, ob der Spieler oder das Brett ziehen soll). Eine weitere Festlegung ist die Angabe der Zugfolge - lichess verwendet scheinbar reine Feldpositionen, jedenfalls nicht SAN mit Figurenangabe, was wohl benutzerfreundlicher wäre und ein Startangebot erleichtern würde.
Aus den chessmail-Spielen generierte Aufgaben wären wirklich charmant! Dann steht nicht nur chessmail drauf, es steckt auch drin. Zeigen, was man selbst zu bieten hat, finde ich immer den besseren Weg.
Alapin2 - 06. Okt '21
"Python" und "Julia" kenne ich nur aus dem Urwald oder vom Balkon in Verona...
aber im Ernst : Ich fände es auch genial, hier produzierte Partiefragmente als Aufgaben zu nutzen!
aber im Ernst : Ich fände es auch genial, hier produzierte Partiefragmente als Aufgaben zu nutzen!
shaack - 06. Okt '21
@Oli1970 Ja, an eine Bewertung durch die Engine habe ich auch gedacht, ist ja schon fertig programmiert unter /pages/chess-computer.html
Dass mit dem Fehlzug begonnen wird finde ich eigentlich ganz gut, so hat man etwas Umfeld der Schachaufgabe, auch wenn das gesamte Spiel nicht angezeigt wird. Es stimmt natürlich, dass dieser Zug bei vielen Schachaufgaben fehlt. Das ist tatsächlich etwas problematisch und auch ein Umschalter führt dazu, dass die Aufgaben dann nicht einheitlich sind. Vielleicht lassen wir diesen Zug einfach weg, da er eh nur bei den Lichess Aufgaben existiert und auch nicht sehr wichtig ist.
Bzgl. der Notation, das ist eigentlich egal, ob in SAN oder so wie Lichess, wäre beides auch parallel möglich.
Dass mit dem Fehlzug begonnen wird finde ich eigentlich ganz gut, so hat man etwas Umfeld der Schachaufgabe, auch wenn das gesamte Spiel nicht angezeigt wird. Es stimmt natürlich, dass dieser Zug bei vielen Schachaufgaben fehlt. Das ist tatsächlich etwas problematisch und auch ein Umschalter führt dazu, dass die Aufgaben dann nicht einheitlich sind. Vielleicht lassen wir diesen Zug einfach weg, da er eh nur bei den Lichess Aufgaben existiert und auch nicht sehr wichtig ist.
Bzgl. der Notation, das ist eigentlich egal, ob in SAN oder so wie Lichess, wäre beides auch parallel möglich.
Oli1970 - 07. Okt '21
@shaack: Der Umschalter böte nur eine zusätzliche Option. Wenn ohne Umschalter, dann wäre ich für Weglassen des Fehlzugs, da das dann das Potential erhöht, an Aufgaben zu kommen, falls noch eine Option zur Selbsterfassung käme. Buchaufgaben z. B. haben den Fehlzug in der Regel nicht.
Die Generierung braucht Zeit, ggf. auf einen Aufgabenpool zurückgreifen zu können, ist gerade am Anfang eine zusätzliche Sicherheit. Ich lasse momentan das Python-Script laufen, 4 x 10.000 Spiele. Aus Zeitgründen nur Partien mit 20 - 60 Halbzügen, da jeder Zug einzeln bewertet wird. Die vier Scripte laufen nun 24 Stunden, keine Fortschrittsanzeige (man sieht nur, dass das Script arbeitet), Stand und Ausgang ungewiss.
Unsicherheit dabei: Die spielerische Qualität der Ergebnisse steht nicht fest, nur, dass taktische Schläge mit Vorteil oder Matt bei rauskommen. Da ist der lichess-Weg nicht verkehrt, wo User jeder Aufgabe ein Plus oder Minus geben. Wenn das Minus nach ein paar Bewertungen überwiegt, könnte man diese Aufgaben irgendwann leicht aussortieren.
Und noch eine Sache dort: Beim letzten Zug wird alles akzeptiert, was matt setzt. Das setzt natürlich ein Mitlaufen einer Engine voraus, die auf Matt prüft.
Die Generierung braucht Zeit, ggf. auf einen Aufgabenpool zurückgreifen zu können, ist gerade am Anfang eine zusätzliche Sicherheit. Ich lasse momentan das Python-Script laufen, 4 x 10.000 Spiele. Aus Zeitgründen nur Partien mit 20 - 60 Halbzügen, da jeder Zug einzeln bewertet wird. Die vier Scripte laufen nun 24 Stunden, keine Fortschrittsanzeige (man sieht nur, dass das Script arbeitet), Stand und Ausgang ungewiss.
Unsicherheit dabei: Die spielerische Qualität der Ergebnisse steht nicht fest, nur, dass taktische Schläge mit Vorteil oder Matt bei rauskommen. Da ist der lichess-Weg nicht verkehrt, wo User jeder Aufgabe ein Plus oder Minus geben. Wenn das Minus nach ein paar Bewertungen überwiegt, könnte man diese Aufgaben irgendwann leicht aussortieren.
Und noch eine Sache dort: Beim letzten Zug wird alles akzeptiert, was matt setzt. Das setzt natürlich ein Mitlaufen einer Engine voraus, die auf Matt prüft.
shaack - 07. Okt '21
Bei lichess: "Generating these chess puzzles took more than 35 years of CPU time." ( database.lichess.org/#puzzles). Aber Okay, wir bräuchten ja keine 2 Millionen, sondern drei pro Tag reichen erst mal, wie von Shredder. Das Hauptproblem ist wohl die Einordnung des Schwierigkeitsgrades und der Qualität der Aufgabe.
Wie meinst Du das mit dem letzten Zug Matt, das ist bei Lichess so? Es sind ja nicht alles Mattaufgaben, soweit ich weiss.
Wie meinst Du das mit dem letzten Zug Matt, das ist bei Lichess so? Es sind ja nicht alles Mattaufgaben, soweit ich weiss.
Oli1970 - 07. Okt '21
Auf der von Dir verlinkten Seite steht: „ An exception is made for mates in one: there can be several. Any move that checkmates should win the puzzle.“ - Matt gewinnt also immer, egal, ob der gespielte Zug in der Lösung vorgesehen ist. Macht Sinn, da ja ggf. mehrere Figuren alternativ matt setzen können oder eine Bauernumwandlung als Unterverwandlung ebenso funktioniert wie in eine Dame.
Die Einordnung der Schwierigkeit könnte man hilfsweise vorläufig über die Zugzahl machen. Zweizügiger = einfach, Drei- und Vierzüger = mittel, darüber hinaus dann schwer.
Die Einordnung der Schwierigkeit könnte man hilfsweise vorläufig über die Zugzahl machen. Zweizügiger = einfach, Drei- und Vierzüger = mittel, darüber hinaus dann schwer.
brauna - 08. Okt '21
Ich überleg immer: welche “Instanz“ beurteilt, ob eine schachaufgabe leicht oder schwer ist. Ein Computer? Forget it.
toby84 - 08. Okt '21
das geht eigentlich nur statistisch. x leuten vorlegen und schauen, wie viele davon sie lösen. ich glaube nicht, dass andere wege funktionieren.
Oli1970 - 08. Okt '21
Schade, wieder kommt nur, was nicht geht. Wer soll den Wert von Aufgaben beurteilen? Ein 2600er? Oder der 1200er? Was ist denn subjektiv richtig und wie bekommt man das Mengenproblem gelöst? Mit z. B. 1000 Aufgaben bei drei pro Tag ist nicht mal ein Jahr abgedeckt. Wer macht‘s?
Statistisch in Verbindung mit einem Computer kann es so gehen, was auch das individuelle Empfinden des Lösers berücksichtigt: Jede neue Aufgabe in der Datenbank bekommt zunächst einen Startwert von vielleicht 1500 - 1600 Punkten, irgendwo chessmail-Basiswert. Beim Spielen kommen die Fernschachpunkte rein und die Puzzle werden analog zur den Spielerwertberechnung auf- oder abgewertet, sie können also maximal 20 Punkte in beiden Richtungen wandern. Ist die Differenz zwischen Spieler- und Puzzlewert zu groß, muss die Veränderung 0 (analog zur Partie) betragen, damit der Puzzlewert nicht verzerrt wird. So ähnlich läuft‘s m. W. auf anderen Plattformen auch, nur dass es dort noch ein weiteres, persönliches Puzzlerating gibt, das Fernschachrating soll sich durch puzzlen natürlich nicht ändern. Ergebnisbildung dauert je nach Puzzlehäufigkeit. Ist immer die Frage, wie kompliziert man es braucht.
Aufgaben gibt es auch noch nicht. Zwischenstand meiner Scripte: 48 Stunden Laufzeit, 17300 Partien von 40000 durchsucht, Ausbeute unbekannt. Hoffentlich rauchen die Dinger nicht ab, „vorsichtshalber“ werden die Ergebnisse erst am Ende in eine Datei geschrieben. Spaß macht‘s nicht, der Rechner ist anderweitig nicht nutzbar.
Statistisch in Verbindung mit einem Computer kann es so gehen, was auch das individuelle Empfinden des Lösers berücksichtigt: Jede neue Aufgabe in der Datenbank bekommt zunächst einen Startwert von vielleicht 1500 - 1600 Punkten, irgendwo chessmail-Basiswert. Beim Spielen kommen die Fernschachpunkte rein und die Puzzle werden analog zur den Spielerwertberechnung auf- oder abgewertet, sie können also maximal 20 Punkte in beiden Richtungen wandern. Ist die Differenz zwischen Spieler- und Puzzlewert zu groß, muss die Veränderung 0 (analog zur Partie) betragen, damit der Puzzlewert nicht verzerrt wird. So ähnlich läuft‘s m. W. auf anderen Plattformen auch, nur dass es dort noch ein weiteres, persönliches Puzzlerating gibt, das Fernschachrating soll sich durch puzzlen natürlich nicht ändern. Ergebnisbildung dauert je nach Puzzlehäufigkeit. Ist immer die Frage, wie kompliziert man es braucht.
Aufgaben gibt es auch noch nicht. Zwischenstand meiner Scripte: 48 Stunden Laufzeit, 17300 Partien von 40000 durchsucht, Ausbeute unbekannt. Hoffentlich rauchen die Dinger nicht ab, „vorsichtshalber“ werden die Ergebnisse erst am Ende in eine Datei geschrieben. Spaß macht‘s nicht, der Rechner ist anderweitig nicht nutzbar.
Oli1970 - 08. Okt '21
Kombination schafft am Anfang schon eine Differenzierungsbasis, z. B. Zweizügiger = 1400, Drei- und Vierzüger = 1700, darüber hinaus 2000. So beeinflusst in der Anfangsphase bei neuen Aufgaben eine „ferne“ Spielergruppe dann auch nicht die leichten bzw. schweren Puzzle im Wert; der Wert wird sozusagen in der Zielgruppe gemacht.
Oli1970 - 09. Okt '21
Nochmal zur Puzzlebewertung. Nach etwas Recherche lassen andere Seiten neben der beschriebenen Ratingzahl teils noch die durchschnittliche und tatsächliche Lösungszeit einfließen, wobei teils die Zeit nach dem ersten Zug stärker gewichtet wird. Das macht man wegen der Herangehensweisen Vorausberechnung vs. Zug um Zug (Trial & Error).
Ich finde Zeitmessung nicht so wichtig, zumal entsprechend viele Lösungen einfließen müssen, um Aussagekraft zu bilden und der Overhead steigt.
Was m. E. wichtig ist, ist die Ausgabe einer Puzzle-ID, um ggf. fehlerhafte Puzzle benennen zu können. Ein nettes Feature, um ggf. ein Puzzle im Forum besprechen zu können, wäre dann ein Link zum Puzzle und/oder der FEN-String zur Diagrammerzeugung.
Ich finde Zeitmessung nicht so wichtig, zumal entsprechend viele Lösungen einfließen müssen, um Aussagekraft zu bilden und der Overhead steigt.
Was m. E. wichtig ist, ist die Ausgabe einer Puzzle-ID, um ggf. fehlerhafte Puzzle benennen zu können. Ein nettes Feature, um ggf. ein Puzzle im Forum besprechen zu können, wäre dann ein Link zum Puzzle und/oder der FEN-String zur Diagrammerzeugung.
shaack - 09. Okt '21
Ja, jedes Puzzle bekommt eine ID, so wie die Schachspiele jetzt. Das ist auf jeden Fall sinnvoll.
Oli1970 - 10. Okt '21
Schachaufgaben-Generierung ist ernüchternd. Die vier Scripte à 10.000 Partien hatten eine Laufzeit von 95 bis 108 Stunden - 4 Tage und mehr im Dauerbetrieb. Ausbeute aus 40.000 Partien: 647 Stellungen. Im Nachhinein erklärlich: Ich habe die Partien von Großmeistern analysieren lassen, in der Annahme, dass hochwertige Puzzle entstehen. Dummerweise unterlaufen ihnen wenige Patzer, die lupenreine, eindeutige taktische Schläge zulassen.
Ich probiere noch eine Runde mit erstmal 4 x 1.000 Spielen aus dem Elo-Bereich 2000 - 2400. Eine Quote von 5% muss das Ziel sein, sonst wird‘s Quälerei, zumal ich den Rechner gelegentlich noch für andere Dinge brauche. ;-)
Ich probiere noch eine Runde mit erstmal 4 x 1.000 Spielen aus dem Elo-Bereich 2000 - 2400. Eine Quote von 5% muss das Ziel sein, sonst wird‘s Quälerei, zumal ich den Rechner gelegentlich noch für andere Dinge brauche. ;-)
MarkD - 15. Okt '21
Zur Bewertung von Puzzles: ich habe eine Zeit lang auf einer Seite gespielt, da ging es (in etwa, aus dem Gedächtnis heraus) so: jedes Puzzle hat eine Wertzahl (Anfangswert z. B. wie vorgeschlagen). Jeder Spieler hat eine Puzzlewertzahl. Dann ist es ein normales Spiel zwischen den beiden - bei einer Lösung unter zehn Sekunden ist es ein Sieg für den Spieler, bei einer Lösung bis zu einer Minute ein Remis, danach eine Niederlage. Das ist jetzt plakativ - bei einem Algorithmus kann man da natürlich auch alle Werte zwischen +1 und -1 als Ergebnis annehmen, abhängig von der Zeit. So erhalten die Puzzles ebenso wie die Spiele im Laufe der Zeit ganz gute Ratingwerte.
MarkD - 15. Okt '21
* ebenso wie die Spieler
Oli1970 - 17. Okt '21
Falls sich jemand für Puzzle-Generierung interessiert: Ich habe noch mit ein paar Spielen (ausgewählte 68, also nicht wirklich repräsentativ) rumexperimentiert und mit verschiedener Stockfish-Rechentiefe Puzzle generieren lassen. Auf Stufe 12 liefert das Script ähnlich viele Puzzle wie auf Stufe 16. Auf Stufe 10 und 14 waren es weniger. Zum Teil ab es leicht unterschiedliche Funde, mal war es einer mehr, mal einer weniger. Auf Default-Stufe 8 gab es eine ähnliche Anzahl, aber teilweise abweichende Lösungen - auf 12 und 16 waren die Zugfolgen der generierten Puzzle identisch.
Im Ergebnis wird die gefundene Zahl davon abhängen, welche Suchbäume die Engine zuerst durchkämmt und wie sich Hashtables befüllen. Mein Schluss daraus (für meine Hardware und meine Parameter): Depth 12 liefert ähnlich gute Ergebnisse wie Depth 16. Beschleunigung ist immens: Für weitere 4x 10.000 Partien brauchte es nur noch zwischen 10 und 14 Stunden bei 576 gefundenen Puzzles (bei Depth 16 zwischen 4 und 4,5 Tagen mit den ersten 4x 10.000, alle zwischen 20 und 80 Halbzüge lang). Die unterschiedliche Laufzeit innerhalb der jeweils 4 Scripte erklärt sich durch die gefundenen in Frage kommenden Stellungen, die dann tiefer gerechnet werden. Je schneller das Script, desto niedriger die Fundrate.
Falls also chessmail-eigene Taktikaufgaben kämen, ließe sich ein Jahresvorrat in akzeptabler Zeit generieren.
Im Ergebnis wird die gefundene Zahl davon abhängen, welche Suchbäume die Engine zuerst durchkämmt und wie sich Hashtables befüllen. Mein Schluss daraus (für meine Hardware und meine Parameter): Depth 12 liefert ähnlich gute Ergebnisse wie Depth 16. Beschleunigung ist immens: Für weitere 4x 10.000 Partien brauchte es nur noch zwischen 10 und 14 Stunden bei 576 gefundenen Puzzles (bei Depth 16 zwischen 4 und 4,5 Tagen mit den ersten 4x 10.000, alle zwischen 20 und 80 Halbzüge lang). Die unterschiedliche Laufzeit innerhalb der jeweils 4 Scripte erklärt sich durch die gefundenen in Frage kommenden Stellungen, die dann tiefer gerechnet werden. Je schneller das Script, desto niedriger die Fundrate.
Falls also chessmail-eigene Taktikaufgaben kämen, ließe sich ein Jahresvorrat in akzeptabler Zeit generieren.
Dieser Beitrag kann nicht mehr kommentiert werden