Logo "blaue" Seiten

 
 
 
 
- Anzeige -
Für den Erwerb von Schachartikeln empfiehlt Ihnen der SC Leinzell den
 Schachversand Dreier 
 
 
Testen Sie Ihr Schach!
 
Diagramm 16-2006
 
Diagramm 16 – 2006
Schwarz am Zuge benötige hier nur noch zwei Züge, um den Anziehenden zur Aufgabe zu bewegen. Wie setzte er fort?
 zur Lösung 
 
 
 
 
zur Startseite
 News | Sitekalender | Sitemap | Team | Kontakt 
zu www.chessbase.dePeter Schreiner
 
 
Multi-Engine-System Fritz 7
besprochen von Peter Schreiner - Februar 2002 - Teil 3
 
 
Das UCI-Protokoll
Viele Schachspieler mit einem PC würden die Amateurprogramme sicher als Bereicherung ihres Hobbys ansehen und häufiger einsetzen, wenn für die Einbindung und Konfiguration eine anwenderfreundliche Lösung bereit stehen würde. Das Winboard entspricht unter diesem Aspekt sicher nicht den Anforderungen dieser Zielgruppe, die Lösung mit dem Adapter ist ebenfalls nicht ideal. Zum Glück gibt es eine Alternative: Schachengines, die strikt nach den Vorgaben des UCI-Protokolls entwickelt wurden.
 
Was bedeutet UCI? UCI steht für Universal Chess Interface und ist ein von Stefan Meyer-Kahlen entwickeltes Protokoll. Der Clou: das UCI-Interface orientiert sich eng an dem Winboard-Protokoll. Dies bedeutet, dass bereits existente Winboard-Programme von den Autoren mit relativ geringem Arbeitsaufwand an den Betrieb der weit komfortabler zu bedienenden Benutzeroberflächen von Shredder 5/6 oder Fritz 7 angepasst werden können.
 
 
Vorzüge des UCI-Protokolls
Ein typisches Beispiel für den Vorzug von UCI. Nehmen wir das zuvor beim Thema Adapter beschriebene Rätselraten um den internen Zustand einer Engine? Beim präzise definierten UCI-Protokoll entfällt dieser Aspekt, da die Engine immer einen Zustand übergeben bekommt, den sie einzunehmen hat. Wie sie das macht, muss die Oberfläche in diesem Fall nicht wissen. Auch das Rückgängigmachen der Arbeit der Oberfläche entfällt, da die Engine per Definition nichts ohne Aufforderung von alleine macht. Damit sind die zwei größten Problemquellen im Zusammenspiel der Kombination Adapter + Winboard-Programm beim UCI-Protokoll einfach nicht existent.
 
Nehmen wir als Beispiel das Anhalten einer Suche? Dies geschieht immer gleich mit definierten Befehlen und Reaktionen der Engine. In der Praxis zeigt sich, dass sauber programmierte UCI-Engines wunderbar den Anforderungen an ein modernes Multi-Engine-System entsprechen. Für den Anwender bietet die Implementierung dieses Standards den Vorzug, dass die Anbindung der UCI-Engine unter den kommerziellen Guis benutzerfreundlich über einheitliche Dialogboxen mit der Maus vorgenommen werden kann. Das mühselige Editieren von Konfigurationsdateien mit einem Texteditor entfällt völlig.
 
 
Vorteile für Programmierer + Anwender
Auch für die Programmierer bietet die Umstellung auf den UCI-Standard Vorteile: Fritz 7 bietet wie kein anderes Programm zahlreiche Funktionen im Bereich der Engineforschung. Damit ist es für den Autoren eine unschätzbare Hilfe, sich einen konkreten Eindruck über den Status seines Programms zu verschaffen. Eine UCI-Engine läuft unter den Guis von Fritz 7 oder Shredder 6 ohne Performanceeinbußen. Sie unterstützt bei korrekter Implementierung des Protokolls sämtliche Ausstattungsmerkmale und Funktionen von Fritz 7 oder Shredder 6.
 
Die Akzeptanz einer UCI-Engine dürfte bei den Anwendern ungleich größer sein, da hier die aufwendige Konfiguration und Einbindung im Unterschied zu den Winboard-Programmen entfällt. Wichtige Grundoptionen und enginespezifische Besonderheiten können, müssen aber nicht wie bei den Winboard-Engines über externe Konfigurationsdateien eingestellt werden. Aus diesem Grund kann ein Autor davon ausgehen, dass er mit einem deutlich größeren Feedback durch den "normalen Schachspieler" rechnen kann, was für die Weiterentwicklung des Programms eine unschätzbare Hilfe darstellt.
 
Das UCI-Protokoll ist ein freies Protokoll. Dies bedeutet, dass ein Autor UCI ohne Lizenzgebühren auch für kommerzielle Zwecke nutzen darf. Dieser Aspekt ist nicht zu unterschätzen. Viele Verfechter des Winboards weisen immer wieder darauf hin, dass das System und die darunter laufenden Winboard-Programme kostenlos sind. Bei kritischer Betrachtung stellt man aber fest, dass diese Behauptung nur bedingt stimmt. Zumindest für die spielstärksten Winboard-Programme wie z.B. Nimzo 2000, Gandalf u.a. ist ein Obolus fällig. Der Käufer kann diese Programme dann allerdings nur unter dem rudimentär ausgestatteten Interface des Winboards oder mit Hilfe eines Adapters unter den kommerziellen Guis betreiben.
 
 
Eine UCI-Engine unter Fritz 7 einbinden
Wie funktioniert nun die Einbindung einer UCI-Engine unter der neueste Update-Version von Fritz 7? Die Einbindung einer UCI-Engine lässt sich dialoggesteuert mit der Maus erledigen, ohne dass eine einzige Textdatei editiert werden muss. Schauen wir uns das am besten einmal am Beispiel der aktuellen Shredder 6-Engine an, die von dem Schöpfer des UCI-Standards, Stefan Meyer-Kahlen, konzipiert wurde. Das Prinzip ist aber für alle UCI-Engines gleich, sofern die Autoren strikt die Vorgaben des Protokolls einhalten.
 
In Fritz 7 existiert im Menü Engine der neue Eintrag UCI-Engine erstellen. Es wird die Dialogbox UCI Engine bearbeiten eingeblendet, über die man eine neue UCI-Engine unter Fritz 7 einbinden kann. Zusätzlich besteht die Möglichkeit, die Parameter einer bereits eingebundenen Engine zu modifizieren und die Änderung unter einem anderen Namen zu speichern. Dazu später noch mehr.
 
Zunächst muss Fritz 7 wissen, wo die einzubindende UCI-Engine auf dem Rechner gespeichert ist. Über den Schalter "Durchsuchen" kann man mit der Maus einfach den Pfad zu der Engine angeben. Ein wichtiges Detail: die UCI-Engine kann in einem beliebigen Pfad oder Verzeichnis gespeichert sein.
 
Nachdem der Pfad angegeben wurde (im Beispiel von Shredder 6 muss die Datei "Engine.exe" ausgewählt werden), stellen wir fest, dass in den Dialogfeldern "Name" und "Autor" automatisch der Name der Engine und des Autoren eingetragen wurde. Über den Schalter "Parameter" kann man Änderungen an den Standardeinstellungen der Engine vornehmen. Dies funktioniert allerdings nur dann, wenn solche Optionen vom Autoren der jeweiligen Engine implementiert wurden.
 
Nach einem Klick auf OK ist die Einbindung abgeschlossen. Das waren alle Schritte, die notwendig sind, damit eine UCI-Engine mit den Standardeinstellungen unter Fritz 7 mit der Taste F3 geladen werden kann.
Engine laden
UCI-Engine unter Fritz 7 laden
 
Ein schönes Beispiel dafür, wie man Software anwenderfreundlich konzipiert und entwickelt. Der Vergleich mit den zuvor beschriebenen Verfahren spricht für sich. Experimentierfreudige Naturen beschäftigen sich häufig mit den Bewertungsparametern einer Engine. Das ist über den Schalter Parameter möglich, falls eine Engine dies unterstützt.
 
Wenn einige Parameter geändert wurden, kann man die modifizierte Engine separat speichern: sie wird von Fritz 7 quasi wie eine eigenständige Engine behandelt. Dabei muss man einige Feinheiten beachten. Wird eine UCI-Engine mit den Standardparametern eingebunden, kann der Name im Eingabefeld Name nicht verändert werden. Soll eine Engine mit veränderten Parametern eingebunden werden, muss der Originalname bei der neuen Bezeichnung zwingend enthalten sein. Auch der Originalname des Engine-Autoren kann nicht entfernt werden.
 
Anhand eines praktischen Beispiels wird deutlicher, worum es geht. Nehmen wir an, Sie haben die UCI-Version von Shredder 6 unter Fritz eingebunden und einige der Parameter geändert. Diese modifizierte Engine soll und muss im Ladedialog mit einem anderen Namen angezeigt werden. Die Standardvorgabe für die Engine lautet "Shredder 6", ein gültiger Name für die modifizierte Variante wäre z.B. "Shredder 6-Taktikmonster", weil hier der Originalname der Engine integriert ist.
Engine bearbeiten
UCI-Engine unter Fritz 7 bearbeiten
 
Nicht gültig wäre ein Phantasiename wie "Meine Engine." Warum diese Einschränkung, die in Shredder nicht vorhanden ist? In Shredder kann man jederzeit für eine modifizierte Schachengine eine eigenen Namen vergeben und sich selbst als Autor eintragen. Der Grund für diese Beschränkung liegt darin, dass manche Zeitgenossen sich offensichtlich gerne mit fremden Federn schmücken und modifizierte UCI-Engines auf Schachservern und in Zeitschriften als eigenständig entwickelte Programme ausgeben! Mit Hilfe dieser Einschränkung wird durchgesetzt, dass immer Klarheit darüber herrscht, wer die eingesetzten Engine wirklich entwickelt hat.
 
 
Sie haben einen Dualrechner?
Ein Tipp für Anwender von Dualrechnern. Wenn Sie eine parallelfähige Engine laden, wird die Anzahl der verfügbaren Prozessoren automatisch ermittelt. Dies ist z.B. bei Shredder 6 der Fall. Wenn Sie nun im Fall von Shredder 6 unter der Fritz 7 Gui Enginematches gegen andere Engines spielen wollen, empfiehlt es sich, der Engine nur einen Prozessor zuzuweisen. Schließlich sollen beide Engines mit gleichen Voraussetzungen an den Start gehen. Andererseits wird es häufig vorkommen, dass Sie die Engine mit volle Performance betreiben wollen, in diesem Fall mit beiden Prozessoren.
 
Lösung: definieren Sie einfach über die Parameter zwei Engines. Stellen Sie die Parameter auf Thread=1 und vergeben für diese "Single-Prozessor-Version" z.B. die Bezeichnung "Shredder 6-Single." Sie erkennen eine wesentliche Feinheit: der Originalname der Engine ist bei der Namensgebung berücksichtigt. Sie können jederzeit unter Fritz 7 diese Variante laden, wenn die Engine nur einen Prozessor nutzen soll.
 
 
Ausblick
Die Entwicklung von Fritz geht ganz deutlich in die Richtung eines offenen, kommunikativen Systems. Neben der Anbindung an den F7-Schachserver bietet die Implementierung des UCI-Protokolls deutliche Vorteile für die Anwender und die Programmierer von Schachengines. Mir ist durchaus bewusst, dass einige fanatisierte Winboard-Anhänger dies ganz anders sehen werden. Aufschlussreich ist die Bewertung beider Konzepte durch den mehrfachen Computerschachweltmeisters Stefan Meyer-Kahlen, der als Autor einiger Winboard-Adapter und des UCI-Protokolls wohl unbestritten einiges von der Materie versteht:
 
"Für den Winboard-Adapter habe ich keine Ambitionen mehr! Ich sehe nicht ein, warum ich meine Zeit damit verbringen soll, mich mit einem minderwertigen und nicht genau spezifiziertem Protokoll zu beschäftigen, welches ich nur durch unzähliges Trial and Error einigermaßen gut implementieren kann. Seit Shredder 5 gibt es das UCI-Protokoll. Dies ist sehr einfach zu implementieren und jeder kann es in sein Programm einbauen, damit es auch unter Shredder laufen kann."
 
An eine Freeware wie das Winboard darf man natürlich nicht die gleichen Maßstäbe wie an ein kommerzielles Produkt anlegen. Meiner Ansicht nach ist das Winboard ein überholtes Konzept, das in der Vergangenheit unbestritten seine Berechtigung gehabt hat. Auf Dauer wird es mit UCI nicht konkurrieren können, wenn nicht essentielle Verbesserungen kommen sollten. Die beschriebenen Unzulänglichkeiten und die nur rudimentär implementierten Möglichkeiten zur Engineforschung können nicht überzeugen, wenn man es mit dem komplexen Funktionsumfang von Fritz 7 vergleicht.
 
Natürlich gibt es noch andere kommerzielle Produkte, wie z.B. Chess Assistant 6.1, die ebenfalls eine Schnittstelle zu UCI bieten. Im Gegensatz zu diesen Programmen hat Fritz 7 einen viel höheren Verbreitungsgrad und die UCI-Engines profitieren in vollem Umfang von der Funktionsvielfalt dieser ausgereiften Benutzerschnittstelle. Gerade im Bereich der Engineforschung wie Enginematches, Testsuites, Engineturniere, Eloauswertung, usw. lässt Fritz 7 nicht nur das Winboard, sondern auch kommerzielle Konkurrenten deutlich hinter sich.
 
Dies wird für viele Autoren ein großer Anreiz sein. Schon aus diesem Grund ist davon auszugehen, dass in Kürze mit einer großen Zahl von UCI-Engines zu rechnen ist. Wie sieht es mit der Verfügbarkeit aus? Für erste Versuche steht auf der Website von ChessBase die UCI-Engine Pharaon von Frank Zibi zum Download bereit. Von dem Computerschach-WM im Blitzschach, Michael Borgstädt, ist ebenfalls eine UCI-Version seines Programms angekündigt. Wer Shredder 5/6 besitzt, kann alle Shredder Versionen und SOS unter Fritz 7 einsetzen. Im Internet werden die Amateurengines Yace, AnMon oder Pepito auch als UCI-Variante und vor allem als Freeware vertrieben.
 
Wir haben uns bei der Besprechung des neuesten Fritz 7-Updates vor allem auf die Implementierung des UCI-Protokolls konzentriert. Das Update bietet zahlreiche weitere Funktionen, auf die wir in nächsten Ausgabe noch konkreter eingehen werden. Ein Highlight ist z.B. eine nochmals stark verbesserte Version der Fritz-Engine, die in meinen ersten Tests die Konkurrenz deutlich in die Schranken weist. Auf dem Schachserver ist es jetzt mit Hilfe von Netmeeting möglich, mit Hilfe einer Webcam Videokonferenzen mit dem Spielpartner durchzuführen. Es ist ungemein reizvoll, wenn man sich mit Hilfe dieses Features direkt mit einem Spielpartner in Übersee unterhalten und Auge in Auge kommunizieren kann.
 
Das aktuelle Fritz 7-Update ist - wie bereits zuvor erwähnt - auf dem Fritz 7-Schachserver verfügbar und wird automatisch beim Einloggen zum Download angeboten. Alternativ können sie das Update mit dem Kauf des neuen ChessBase-Magazins erwerben. Nähere Informationen dazu finden Sie unter www.chessbase.com
 
Peter Schreiner
 
zum Seitenanfang zurück |