Geschrieben von: / Posted by: Dieter Buerssner at 12 July 2000 13:22:28:
Als Antwort auf: / As an answer to: Re: Zeitverhalten von Yace 0.21 geschrieben von: / posted by: Andreas Herrmann at 11 July 2000 20:36:53:
das Problem am Fritz-WB-Adapter ist, daß nach jedem Zug ein NEW
und alle Partiezüge neu gesendet werden. Winboardprogramme die keinen
entsprechenden Fritz-Modus implemenziert haben, sind demnach stark
benachteiligt.
Problematisch sind u.a. Pondering (Informationen gehen durch New
verloren)
aber auch andere Informationen die durch vorherige Suche gesammelt
wurden sind weg (Hashtabellen-Einträge, Killerzüge ...).
Außerdem habe ich unter Fritz festgestellt daß meine eigene Engine nur
ca. 80% Prozessorzeit (sehr schwankend) während seines Zuges bekommt
(unter Winboard immer 100%).
Die Idee ist, dass eine Engine dadurch nicht so leicht durcheinander
kommen soll. Beispielsweise wird undo und remove nicht benötigt.
Ich finde nicht nur das new problematisch. Problematischer ist noch,
dass andere Befehle an die engine eine andere Semantik haben. Das
Beispiel mit dem Zusammenspiel von time/new habe ich genannt. Leider
geht die Beschreibung des Winboard Adapters darauf nicht ein
(habe ich auf jedenfall nicht gesehen), so dass man sich das alles
aus den Logs ergründen muss. Die Gefahr besteht, dass in einer
anderen Situation wieder was anderes passiert. Problematisch finde
ich auch, dass der time Befehl direkt am Anfang vor der Zugliste
kommt. Ist diese sehr lang, könnten sich einige Verzögerungen
ergeben (aber nicht untersucht). Wann soll die Uhr gestartet werden?
Wann startet die GUI die Uhr? Wieso erhalte ich kein otim?
Immerhin ist es mir gelungen eine Partie im 2 Minuten Blitz gegen
Fritz 6 auf Zeit zu gewinnen

(In toter Stellung nach ca. 150 Zügen).
Der Fritz spezifische ponder Befehl kann hier Abhilfe schaffen.
(Konnte ich mit Mathias Feists Hilfe und Crafty's source nun
einigermaßen verstehen). Aber auch hier mangelt es an Dokumentation.
Welchen Zug schlägt Fritz zum pondern vor? Vermutlich den aus der
zuletzt gesendeten Hauptvariante. Was ist, wenn dort keine Antwort
steht, weil das vielleicht der einzige mögliche Zug ist, und die
engine a Tempo zieht ohne zu rechnen. Ist ein "puzzling Modus"
möglich? Oder sollte der puzzling Mode "vorgezogen" werden, und
nicht a Tempo geantwortet, so dass zumindest eine kurze Hauptvariante
zur Verfügung steht? Soll nach der Antwort auf den geponderten Zug sofort
wieder auf easy Modus umgeschaltet werden? Muss man den easy Befehl
während des Ponderns bearbeiten können? Welche anderen Befehle
muss man während des ponderns bearbeiten können?
(Auch die Dokumentation der Winboard Schnittstelle von Tim Mann geht
nicht auf all diese Punkte ein. Manche Fragen stellen sich aber
auch unter Winboard gar nicht, da das Spiel nicht bei jedem Zug von
neuem beginnt.)
Hashtabellen-Einträge können leicht erhalten werden, wenn man
Mathias Feists Empfehlung folgt und reset implementiert. Wie das
mit den Killerzügen funktionieren soll, ist mir jedoch rätselhaft.
Weiterhin würde ich als Erweiterung für den Fritz Winboard Adapter
vorschlagen: Eine Möglichkeit, die Hashgröße, die in Fritz eingestellt
ist zu erfahren. Ditto für den Pfad zu den EGTBs. Dies würde für viele
Fälle ein programmspezifisches ini File überflüssig machen, und
damit die Installation für technisch nicht versierte/interessierte
Benutzer vereinfachen.
Ich habe mit Yace keine signifikanten Performance-Einbußen gegen
eine native Engine festgestellt (20% wären jedoch schon möglich).
Gegen die Winboard Adapter Version von TCB bekam ich jedoch nur ca 50%
der Prozessorleistung (selbstverständlich ohne permanent brain).
Mit permanent brain gegen Fritz 6 auf Einprozessorsystem bekomme ich
meist deutlich weniger als ein Drittel der Rechenleistung, Fritz 6 hingegen scheint fast ungebremst.
MfG,
Dieter