Hallo Rasmus,
ja...so hatte ich mir das auch zusammengereimt. Als Beispiel kannst du Stockfish nehmen, dann movetime = 5sec, und nach dem unendlich Pondering zB 7sec warten, dann antwortet er sofort bei "ponderhit".
Das ist natürlich doof, wenn der User genau 5sec Rechenzeit erwartet. Ist nur ein Beispiel, bei dem ich erklären muss, das hier kein picochess Fehler vorliegt.
Und auch ich war erstaunt, bei der Implementierung, das ich "unendlich" & "Zeiten" beim "go ponder" mitgeben muss.
Das ist doch Käse. Warum erlaubt man nicht die Zeiten beim "hit" zu schicken - macht doch viel mehr Sinn. Naja, ist vergebene Liebesmühe.
Jürgen

Zitat von
Rasmus
Namd Jürgen,
Möglicherweise sieht der Algorithmus der Engines so aus, daß sie die Zeit bestimmen, die sie in Anbetracht der Gesamtsituation für den Zug gerne aufwenden möchten und dies dann auch tun. Dann würde bei einem Ponderhit die zuvor auf Nutzerzeit geponderte Zeit natürlich von der Zeit abgezogen, die die Engine auf eigene Uhr rechnet, und die Bedenkzeit wäre immer noch die ausgangsmäßig gewollte.
Der Sinn eines Ponderhits wäre damit nicht eine tiefere Rechnung bei selbem Zeitverbrauch, sondern bei gleicher Rechentiefe Zeit zu sparen. Die gesparte Zeit würde dann auf die anderen Züge verteilt, wo kein Treffer ist.
Kannst Du mal eine der Opensource-Engines verlinken, die sich so verhält und in C geschrieben ist?
Ja, weil sie sonst mit der Kombi aus go ponder / ponderhit nicht klarkämen. Wobei ich das bei meiner Engine so eingebaut habe, daß sie kein Ponderflag angibt, aber wenn die GUI das ignoriert, funktioniert es trotzdem. Die tatsächliche Berechnung wird jedoch erst bei ponderhit bzw. wenn kein Treffer ist beim nächsten normalen go gestartet.