You are here: Home > Tips + Tricks  > Engine Tournaments

Engine Tournaments

Last update: FQ January 23rd, 2005 (22:15 MEZ)
This review is only available
in German!  

Die Geschichte der Engineturniere
von Alexander Schmidt


Verfügbare Arena Version bei Veröffentlichung des Berichtes: Arena 1.1

Ich erinnere mich noch sehr gut an die Zeit als die ersten starken Schachprogramme für den PC auf den Markt kamen. Schon damals vor etwa 20 Jahren hatte ich unter anderem Spaß daran die Programme gegeneinander antreten zu lassen. Zu dieser Zeit hatte jedes Programm noch eine eigene Oberfläche und man mußte die Züge mühsam von Hand eingeben.

Anfang der neunziger Jahre wurde mit Winboard die Idee geboren mehrere Schachprogramme unter einer Oberfläche zu nutzen und automatisch gegeneinander spielen zu lassen. Mit Winboard hatten interessierte Computerschachfreunde auch endlich die Möglichkeit eine Schachengine zu erstellen ohne sich um die graphische Darstellung kümmern zu müssen, mitte der neunziger Jahre eroberten dann mehr und mehr Amateurprogramme die Festplatten der User.

Mit Fritz 4 setzte auch Chessbase die Idee einer Multi-Engine-GUI um. Zuerst wurde nur ein eigenes Protokoll unterstützt, neben den kommerziellen Programmen Fritz, Junior und Hiarcs wurden auch noch einige Amateurprogramme wie Crafty und Comet als Chessbase Native Engines angeboten. Später konnte man dann auch die immer größer werdende Anzahl der Winboard Engines mittels eines Adapters unter den Chessbase Oberflächen nutzen, allerdings kam es dabei immer wieder zu Problemen. Chessbase fand keine Möglichkeit die Fritz GUI mit dem Winboard Protokoll vernünftig zu verknüpfen sodass dieser Winboard Adapter von Chessbase nicht weiter gepflegt wurde.

Im Jahr 2000 wurde von Stefan Meyer-Kahlen (Shredder) und Rudolf Huber (SOS) das UCI Protokoll entwickelt. Ziel war es ein universelles Protokoll zu erstellen das zum einen zur Architektur aufwendiger kommerzieller GUI's wie Fritz und Shredder paßte und zum anderen dem User die Möglichkeit gibt die Einstellungen der Engine direkt in der GUI vorzunehmen.

 

Die richtige GUI für Engineturniere

In der Zwischenzeit gibt es viele GUI's die Winboard und UCI Engines unterstützen und die Möglichkeit bieten Engineturniere auszutragen. Arena hat hier zweifellos die größten Möglichkeiten, selbst kommerzielle GUI's können mit den enormen Funktionen von Arena nicht mithalten. Es gibt nur noch wenige Programme die weder UCI noch Winboard kompatibel sind, wer auf Fritz, Junior, Chesstiger, Hiarcs und Anaconda nicht verzichten möchte muss natürlich auf die Fritz GUI zurückgreifen. Der Nachteil von Fritz ist natürlich die fehlende Unterstützung von Winboard Engines. Zwar gibt es die Möglichkeit diese mittels des wb2uci Adapters von Odd Gunnar Malin unter Fritz zu nutzen, allerdings kann es dabei immer mal wieder zu Problemen kommen. Des Weiteren werden auch von verschiedenen Seiten immer wieder Probleme von UCI Engines unter Fritz gemeldet was ernsthafte Enginetests unter Fritz in Frage stellt.

 

Engineturniere unter Arena

Zuerst muss man natürlich aus der Vielzahl der verfügbaren Winboard und UCI Engines die Teilnehmer des Turniers auswählen. Mit ein wenig stöbern auf den Arena Seiten und den entsprechender Links findet man Informationen zu den Engines und deren Spielstärke. Spannender ist es natürlich sich selbst ein Bild von den jeweiligen Programmen zu machen.

 

Konfiguration der Engines

Bei vielen Engines müssen vor dem Spielen gewisse Parameter eingestellt werden. Die Wichtigsten sind die Größe der Hashtabellen, der Pfad zu den Endspieldatenbanken (Tablebases), der Tablebasecache und die Eröffnungsbücher. Bei Winboard Engines müssen die Einstellungen in einer Konfigurationsdatei oder an der Kommandozeile vorgenommen werden. Hierzu sollte man sich unbedingt die Informationen des Engineauthors auf der Homepage oder in der readme Datei zu Gemüte führen. UCI Engines können direkt und einfach unter Arena konfiguriert werden. Die wichtigsten Einstellungen können für alle UCI Engines in der Motorenverwaltung gemeinsam eingestellt werden. Im Gegensatz zu anderen GUI's werden bei Arena die Einstellungen der Engines automatisch gespeichert sobald sie geändert wurden. Beim nächsten Start der Engine bleiben die Einstellungen erhalten.

In den Hashtabellen speichert ein Schachprogramm Rechenergebnisse um sie später nicht erneut berechnen zu müssen. Man sollte immer darauf achten, dass die Hashtabellen nicht zu groß eingestellt werden da ansonsten der Speicher auf die Festplatte ausgelagert wird und das Programm enorm verlangsamt wird. Wer beim Spiel der Engines einen starken Festplattenzugriff bemerkt sollte unbedingt die Einstellung der Hashtabellen überprüfen. Prinzipiell sollten die Hashtabellen möglichst groß eingestellt werden. Man sollte allerdings daran denken, dass das Betriebssystem einiges an Hauptspeicher belegt und beim Austragen von Engineturnieren immer zwei Programme Hashtabellen belegen. Im Zweifellsfall sollte man ein Speichertool wie Taskinfo verwenden um sicherzustellen, dass die Hashtabellen nicht zu groß eingestellt sind.

Tablebases sind komprimierte Datenbanken in denen komplette Endspiele gespeichert sind, zur Zeit sind Endspiele mit bis zu 6 Figuren als Tablebases erhältlich. Wenn ein Schachprogramm Tablebases unterstützt spielt es beim erreichen solcher Positionen perfekt. Auch schon vor dem erreichen solcher Stellungen greifen Schachprogramme in der Suche auf die Tablebases zu. Allerdings ist es nicht erwiesen, dass Tablebases ein Schachprogramm letztendlich stärker machen da der Zugriff auf die Festplatte das Programm im Gegenzug verlangsamt. Um den Engines den Zugriff auf die Tablebases zu ermöglichen müssen zwei Dinge eingestellt werden. Zum einen natürlich der Pfad zu dem Ordner in dem die Tablebases abgelegt sind, zum anderen die Größe des Tablebasecaches in dem Informationen zwischengespeichert werden. Beim nutzen von 4 Steiner Tablebases ist ein Cache von 4 bis 8 MB völlig ausreichend, bei 5 Steinern sollten es schon 16 bis 32 MB sein.

In Eröffnungsbüchern werden die ersten Züge einer Partie gespeichert. Viele Engines benutzen eigene Bücher die oft auf den Spielstil der Engine zugeschnitten sind. Es besteht auch die Möglichkeit so genannte GUI Bücher zu verwenden, dabei entscheidet nicht die Engine über die ersten Züge sondern die GUI. Arena bietet sogar die Möglichkeit zwei GUI Bücher zu verwenden. In der Praxis verwendet man dann ein Hauptbuch das möglichst einen großen Bereich der Eröffnungstheorie abdeckt und ein Motorenbuch das auf den Stil der Engine zugeschnitten ist. Die ersten Züge werden dann aus dem Enginebuch gewählt, wenn keine Züge mehr im Enginebuch gespeichert sind werden die Züge aus dem Hauptbuch gewählt. Eine weitere Möglichkeit ist es Partien von vorgegebenen Stellungen auszutragen.

 

Das Turnier

Nachdem die Engines konfiguriert sind steht einem Wettkampf nichts mehr im Wege. Beim öffnen des Turnierfensters von Arena ist schon auf den ersten Blick zu erkennen welche Vielzahl an Möglichkeiten Arena in diesem Bereich zu bieten hat.

Unter Einstellungen werden die Engines, die Zeitkontrolle, die Art des Turniers und die Anzahl der Runden ausgewählt und ein Name für das Turnier vergeben.

Unter Optionen wird die Schachvariante gewählt. Hier kann man auch Eröffnungsstellungen bestimmen falls keine Eröffnungsbücher verwendet werden sollen.

Unter Speichern kann man wählen welche Dateien auf der Festplatte gespeichert werden und die Pfade ändern. Die Partien werden als PGN Datei gespeichert sodass man sie nach dem Turnier nachspielen kann.

Unter Paarungen wird die Liste der zu spielenden Partien und die bisherigen Einzelergebnisse angezeigt. Hier können Resultate auch bearbeitet werden falls es während dem Turnier zu Problemen kommt.

Unter Starten/Beenden kann man entscheiden ob die Engines zwischen den Partien neu gestartet werden sollen. Diese Option sollte aktiviert werden da ansonsten mit manchen Programmen Probleme auftreten können.

Unter Fehler-Überwachung besteht die Möglichkeit Stellungen in denen eine Engine einen groben Fehler macht als fen Datei automatisch abzuspeichern.

 

Das Rundenturnier

In einem Rundenturnier spielt jeder gegen jeden. Mit der Anzahl der Runden legt man fest wie viele Partien pro Match gespielt werden sollen. Hier sollte man nach Möglichkeit eine gerade Zahl angeben damit jedes Programm die gleiche Partienanzahl mit den schwarzen und weißen Steinen spielen darf. Mit der Option Rutschsystem wird die Reihenfolge der Partien festgelegt, bei deaktivierter Option werden zuerst alle Partien der Engine gespielt, die in der Teilnehmerliste oben steht.

Arena bietet auch die Möglichkeit während eines Rundenturniers die Teilnehmer zu ändern. Dies ist z.B. hilfreich wenn kurz nach Beginn des Turniers eine Engine upgedated wurde. Hierbei sollte man nur darauf achten, dass die neue Engine in der Teilnehmerliste an der gleichen Stelle steht wie der Vorgänger um die Farbverteilung in den Partien nicht zu verändern. Wenn die Partien der älteren Version nicht wiederholt werden sollen kann man den Knopf "Motor ersetzen mit neuer Version" benutzen. Hierbei werden allerdings die Ergebnisse der beiden Versionen gemischt.

Nachdem ein Rundenturnier beendet wurde können Teilnehmer problemlos hinzugefügt oder entfernt werden. Diese Möglichkeit sollte man allerdings nur bei einer geraden Rundenzahl in Anspruch nehmen da ansonsten wieder die Farbverteilung verändert wird. Arena speichert alle Ergebnisse des Turniers. Falls man sich entschließt einen Teilnehmer der entfernt wurde später wieder zu integrieren bleiben die alten Ergebnisse erhalten, die Partien müssen nicht erneut gespielt werden.

Auf diese Weise kann man ein Turnier mit seinen Lieblingsengines austragen und es auf einfache Weise auf dem aktuellen Stand halten indem ältere Versionen ersetzt oder neue Engines hinzugefügt werden.

 

Das Schweizer System

Hierbei handelt es sich um eine Turnierform die im Schach häufig angewendet wird. In der ersten Runde werden die Paarungen ausgelost oder anhand von Ranglisten vorgegeben. Ab der zweiten Runde spielen möglichst die Teilnehmer mit gleicher Punktezahl gegeneinander sodass im Laufe des Turniers die Teilnehmer mit ähnlicher Spielstärke gegeneinander spielen und am Ende eine einigermaßen gerechte Tabelle entsteht. Die Teilnehmerzahl sollte gerade sein, die Rundenzahl ungerade. Je mehr Runden gespielt werden desto gerechter wird die resultierende Tabelle.

Bei einem Turnier nach Schweizer System sollte man die Teilnehmerliste nicht mehr ändern.

 

Der Spießrutenlauf

Der Spießrutenlauf ist eine Turnierform ähnlich dem Rundenturnier, allerdings werden nur die Partien der Engine ausgetragen die in der Teilnehmerliste oben steht.

 

Die Partien

Die Partien eines Turniers werden in PGN Dateien gespeichert. Dies bietet den Vorteil, dass die Datenbanken auch mit anderen Programmen geöffnet und bearbeitet werden können. Arena bietet auch die Möglichkeit die abgelaufene Zeit und die Bewertungen in der PGN Datei abzuspeichern, beim nachspielen der Partie unter Arena werden die Informationen dann angezeigt, die Schachuhr zeigt die verbrauchte Zeit an und die Bewertungsstatistik zeigt den Verlauf der Bewertungen. Welche Informationen in der PGN Datei gespeichert werden wird im Menü Optionen - Oberfläche unter PGN eingestellt.

 

Veröffentlichen von Turnierergebnissen

Natürlich ist auch die Computerschach Community an den Turnierergebnissen interessiert. Arena speichert Turniertabellen im Text- und HTML Format. Die Tabellen können aus der Arena Oberfläche einfach durch kopieren und einfügen in Foren oder auf einer Homepage veröffentlicht werden. Die Tabellen werden zusätzlich in Dateien gespeichert, mit entsprechenden Tools kann das Veröffentlichen von Turnieren automatisiert werden. Wer seine Turnierpartien live übertragen möchte kann dies tun indem die Option "PGN speichern nach jedem Zug" aktiviert ist. Mit externen Tools besteht dann die Möglichkeit diese Livepartie in eine html Datei zu konvertieren und ebenso wie die Tabellen automatisch auf einen Webserver hochzuladen.

Geschrieben von Alexander Schmidt
am 23.01.2005

 

 

Powered by CMSimple_XH | Template by CMSimple_XH | (X)html | css | Login