Woran leidet dieses Programm?

Sep 02 2020

Ein Programm mit dem Namen Lxndr.exea readme.txterschien plötzlich auf meinem Desktop. Die Readme-Datei lautet

Ich glaube, ich zeige einige Symptome. Glaubst du, ich leide darunter?

Nun, obwohl definitiv etwas mit meinem Computer nicht stimmt, habe ich keine Ahnung, worum es in der ausführbaren Datei geht.

Genau wie die vernünftige Person, die ich bin, habe ich damit herumgespielt, indem ich es ausgeführt habe. Wenn Sie zunächst lxndr.exe -?die Eingabeaufforderung aufrufen, erhalten Sie die folgende Ausgabe:

C:\users\me>lxndr.exe -?

lxndr [-p pos] [-d d] [-t time] [-b]

Options:
    -p pos      fenny position; default: random
    -d d        [redacted]
    -t time     max time (milliseconds)
    -b          !w; default: false

Dann habe ich es mit einigen Werten für -dund ausgeführt -t:

C:\users\me>lxndr.exe -d 10 -t 500
Output: [redacted] - 100ms - !

C:\users\me>lxndr.exe -d 22 -t 100
Output: [redacted] - 100ms - ??

C:\users\me>lxndr.exe -d 15 -t 200
Output: [redacted] - 190ms - ?

C:\users\me>lxndr.exe -d 8 -t 7
Output: [redacted] - 7ms - ??

C:\users\me>lxndr.exe -d 25 -t 75000
Output: [redacted] - 5000ms - !!

C:\users\me>lxndr.exe -d 20 -t 800
Output: [redacted] - 700ms - ?!

C:\users\me>lxndr.exe -d 60 -t 8000
Output: [redacted] - 8000ms - ??

Woran leidet dieses Programm?


Anmerkungen:

  1. Mit der beabsichtigten Antwort können Sie a) erklären, wofür dieses Programm verwendet werden könnte, b) die Ausgabe und bestimmte Teile davon ausführlicher erklären, c) die Bedeutung jeder Option beim Aufrufen ableiten -?und d) den Namen der ausführbaren Datei erklären.
  2. Konzentrieren Sie sich nicht zu sehr auf die genauen Zahlen, die ich in meinen "Test" -Eingängen und -Ausgängen habe.

Hinweis Nr. 1:

Sobald Sie herausgefunden haben, dass dieses Puzzle mit Schach zusammenhängt, müssen Sie insbesondere die Bedeutung der letzten Ausgabe herausfinden. Warum sollte ein Motor so "versagen"? Welche "Krankheit" muss es haben, die zum Namen der ausführbaren Datei passt?

Die Antwort ist nicht technisch. Die Antwort hat mehr mit Wissen über bestimmte Dinge rund um Schach zu tun (Sie könnten dieses Problem lösen, wenn Sie nur die Grundlagen des Spiels kennen!) Und nichts mit (Schach-) Programmierung. Die Tatsache, dass dies ein Programm ist, ist genau die Art und Weise, wie ich beschlossen habe, es zu präsentieren. Wenn Sie die Antwort nach dem Lesen dieses Hinweises nicht kennen, kann es sein, dass Sie etwas googeln müssen.

Antworten

4 GarethMcCaughan Sep 02 2020 at 18:06

Zuallererst natürlich

lxndr.exe ist ein Schachprogramm.

Die Optionen sind

-pfür eine Position in FEN (Forsyth-Edwards-Notation; "fenny"); -dfür die Tiefe zu suchen; -tist genau das, was es sagt; -bbedeutet eher schwarz als weiß, um sich zu bewegen.

Die Ausgabe vom Ausführen des Programms besteht aus

etwas, das redigiert wurde, was die Wahl des Programms sein könnte, sich in der gegebenen Position zu bewegen oder zu bewerten, welcher Spieler um wie viel voraus ist; wie lange es gedauert hat, um zu suchen; und eine Art Bewertung eines Zuges (vielleicht der Zug, den er gewählt hat, aber es ist nicht klar, wie er eine solche Bewertung liefern würde, ohne eine zusätzliche, längere Suche durchzuführen). Die Bewertung wird in traditionellen Schach-Annotation-Begriffen ausgedrückt, so dass z. bedeutet einen wirklich schrecklichen Schachzug und !! bedeutet eine brillante. (Obwohl das Kommentieren von etwas als !! im Allgemeinen nicht nur bedeutet, dass es der beste Zug ist, sondern dass es irgendwie schwer zu finden war. ZB, obwohl 1. e4 der beste Eröffnungszug sein könnte, würde niemand ihm zwei Ausrufezeichen geben weil jeder weiß, dass es eine gute Wahl ist.)

So

Wenn Sie zunehmen, erhalten -dSie tiefere Suchanfragen und damit langsamere Zeiten. -d 60Wie im letzten Beispiel ist es extrem tief für alles andere als eine einfache Endspielposition, in der alles auf alles andere übertragen wird, weshalb diese Suche durch das Zeitlimit unterbrochen wurde.

Der Name des Programms

scheint eine Abkürzung von "Alexander" zu sein.

Also, was ist das Problem? Gut,

Der Großmeister Alexander Kotov schrieb ein Buch mit dem Titel "Think like a Grandmaster", mit einer berühmten Illustration im Eröffnungskapitel, in der er einen Spieler beschreibt, der ziemlich unorganisiert über eine Reihe plausibler Kandidatenbewegungen nachdenkt und zu keinem klaren Ergebnis kommt Schließlich dachte ich: "Aha! Was ist, wenn ich stattdessen so und so spiele?" und das sofort zu tun ... was ein schrecklicher Fehler ist, wie sie erkannt hätten, wenn sie tatsächlich systematisch über das und das nachgedacht hätten. Diese Art von geistigem Versagen wird gelegentlich als Kotov-Syndrom bezeichnet .

Und das scheint das zu sein, was am Ende mit dem Programm passiert ist.

Pedantische Anmerkung:

Es macht nicht wirklich Sinn, dass das Programm selbst seine eigenen Züge kommentiert, es sei denn, es folgt jedem mit einer längeren, besseren Suche :-). Aber OP hat im TSL-Chat bestätigt, dass dies nur deshalb so schwierig war, weil es zu schwierig gewesen wäre, die Idee zu vermitteln, dass beispielsweise etwas anderes die Annotation durchführt. Stellen wir uns also vor, dass nach der Suche Stockfish NNUE oder Leela Chess Zero oder so ausgeführt wird, um zu entscheiden, wie gut der Zug wirklich ist. Ich denke, die redigierte Ausgabe enthält wahrscheinlich die Anfangsposition und den gewählten Zug.

5 Glorfindel Sep 02 2020 at 04:17

Einige Beobachtungen, die für andere hilfreich sein können, um das Rätsel vollständig zu beantworten:

Ich denke, es hängt mit Schach zusammen:
- "Fenny" bezieht sich auf die FEN-Notation von Schachpositionen
- "d" könnte die Tiefe sein, dh die Anzahl der (Halb-) Züge, die das Programm benötigt, um vorauszudenken
- es ist üblich, die Anzahl von zu begrenzen Wenn eine Schachengine denkt
- der Parameter "b" ist eine Abkürzung für "Schwarz zum Bewegen" und ist die Umkehrung von "Weiß zum Bewegen"
- enthält die Ausgabe? und!, die häufig verwendet werden, um schlechte und gute Züge im Schach zu beschreiben, und deren Kombinationen ihre eigene Bedeutung haben
- "lxndr" sind die Konsonanten von Alexander, dem Vornamen des ehemaligen Schachmeisters Alekhine.