Sehr gerne komme ich einen Wunsch von Thomas und Michael nach. Die Beiden sendeten mir einen Text zu einem interessanten Projekt. Sofern ein Leser dieser Zeilen weitere Ideen hat oder den Beiden bei Ihrem Problem helfen möchte, leite ich eine entsprechende E-Mail gerne weiter.
Engines erstellen selbstständig ein Eröffnungsbuch
Ich habe jetzt aber mal ein interessantes Projekt angefangen: Meine Schachprogramme sollen sich ihr Eröffnungsrepertoire selbst erstellen. Ich habe die Programme ein Turnier spielen lassen, wo kein Programm mit seinem eigenem Eröffnungsbuch gespielt hat, sondern mit einem von mir vorgegeben. Und dieses Buch reicht nur einen Zug weit (bzw. zwei Halbzüge), besteht dafür aber aus allen 400 Kombinationen, die mit zwei Halbzügen möglich sind. D. h. Weiß hat am Anfang 20 mögliche Züge, und Schwarz kann auf jeden dieser 20 Züge auch mit 20 verschiedenen Zügen antworten, ergibt also 20 * 20 = 400 mögliche Eröffnungen. Dabei sind dann also auch völlig exotische wie 1. a2 - a3 f7 - g6 oder "Kamikaze-Eröffnungen" wie 1. Sg1 - f3 e7 - e5.
Auf diese Idee bin ich gekommen, als ich mal probiert habe, ob Rybka 3 auch dann noch gewinnt, wenn es ganz ohne Eröffnungsbuch gegen ein anderes starkes Programm wie Fritz oder Hiarcs mit Turnierbuch spielt. Und Rybka war stark genug - es hat immer noch die große Mehrheit der Partien gewonnen! Und das brachte mich auf den Gedanken: da die Programme jetzt eh viel stärker spielen als wir Menschen, dann kommen sie wahrscheinlich auch auf bessere Eröffnungen als wir Menschen. Weil es aber zu langweilig würde, wenn die Programme ganz ohne Eröffnungsbuch spielen würden (denn dann würde jedes Programm immer mit nur mit seinem Lieblingszug eröffnen bzw. erwidern), habe ich ihnen erstmal die Bandbreite von 400 verschiedenen Eröffnungsmöglichkeiten vorgeben. Da die Fritz-GUI die Möglichkeit zum Eröffnungslernen bietet, lernt jedes Programm noch während des laufenden Turniers, welche Eröffnungszüge gut und welche schlecht für es sind. Die Eröffnungszüge, mit denen es verloren hat, werden immer seltener bis hin zu überhaupt nicht mehr ausgespielt, und die, mit denen es gewonnen hat, werden öfter ausgespielt. Und so lernt jedes Programm, die Eröffnung zu spielen, mit der es gut klarkommt. Ich glaube, Rybka spielt außer den "normalen" Eröffnungszügen wie e4, d4, Sf3, c4 auch 1. h2 - h3 recht erfolgreich. Und vielleicht ist ja h3 sogar ein besserer Eröffnungszug als e4 oder d4. Uns Menschen erscheint er minderwertig, aber vielleicht können es die Programme besser beurteilen.
Der einzige Haken bei diesem Projekt ist, dass das Eröffnungslernen in der Fritz-GUI noch nicht weit genug geht. Schön wäre es, wenn die GUI den ersten selbstberechneten Zug eines Programm auch mit in seiner Eröffnungsbibliothek abspeichern würde. Und wenn das Programm mit diesem Zug "nur" Remis gespielt oder gar verloren hat, aus einer Referenz-Eröffnungsbibliothek alternative Züge heraussuchen würde, die eine positive ELO-Performance aufweisen. Da diese Alternativzüge hauptsächlich aber wieder "nur" von Menschen stammen, wäre eine Analysefunktion ganz gut, die das Programm noch mal an die Stelle bringt, wo es seinen Remis- oder Verlustzug berechnet hat, es an dieser Stelle noch mal rechnen lässt und dann die Züge mit ins Buch aufnimmt, die das Programm für den zweit-, dritt- oder viertbesten Zug an dieser Stelle hält. Ideal wäre vielleicht eine Kombination aus beidem: Alternativzüge aus Referenzbibliothek plus selber rechnen.
Ich dachte zuerst, diese Arbeit könnte ich locker nach Ende eines Turniers per Hand machen. Aber da habe ich mich verschätzt - das ist eine Schweinearbeit! Wenn ich wirklich mal ein großes (Blitz-) Turnier veranstalte, mit 50 Programmen, Jeder gegen Jeden, sowohl mit Weiß, als auch mit Schwarz, dann ergäbe das eine Gesamtzahl von 2450 Partien. Das Turnier würde ca. 17 Tage laufen, wenn ich es ununterbrochen auf einem Rechner laufen lassen könnte. Aber die Auswertung per Hand, selbst wenn ich fleißig jeden Abend ein paar Stunden investieren würde, würde wohl so ca. 100 Tage brauchen. D. h. ich könnte bestenfalls drei Turniere pro Jahr laufen lassen, und da würden die Eröffnungsbibliotheken nicht gerade schnell anwachsen! Aber automatisieren könnte ich das Verfahren wiederum nur dann, wenn mir ChessBase das CTG-Format ihrer Eröffnungsbücher verraten würde (denn selbst würde ich das kaum entschlüsseln können, denke ich). Aber ChessBase wird bestimmt kein Interesse haben, dieses Format jemandem preiszugeben. Es ist zum Verzweifeln!
Anmerkungen von Frank Quisinsky
Grundsätzlich ist natürlich jede neue Idee willkommen. Überhaupt ist bekanntlich Computerschach so erst entstanden. Das Thema Eröffnungsbücher für Engines wird seit vielen Jahren sehr kontrovers diskutiert. Es gibt Programmierer, die die Meinung vertreten, dass eine gutes Eröffnungsbuch 200 ELO ausmachen könnte. Selbst zweifle ich an solchen Aussagen ganz erheblich. Klar, mit einem "schlechten Buch" wird die Performance geringer. Ein gutes Beispiel ist die franz. Eröffnung. Computerprogramme, die mit Schwarz spielen, erkennen das Weiße Angriffspotential nicht bzw. zu spät. Entgegengesetzt spielen Schachprogramme die meisten Varianten aus der sizilianischen Eröffnung sehr gut. Wer eine sizilianische Variante mit Weiß gegen eine starke Engine spielt muss richtig gut sein oder fordert den Wahnsinn Die Frage ist dann eher, was soll ich nach 1. e4, c5 gegen ein Schachprogramm spielen?
Ein Problem ist folgender Tatbestand:
Engine A punktet gegen Engine B schlecht in Eröffnung A. Nun wird die Eröffnung A mittels einer Lernoption deaktiviert. Oftmals stellt sich aber heraus, dass Engine A aber sehr gut gegen Engine C in dieser Eröffnung punkten würde. Und je mehr Engine Kombinationen es gibt desto mehr WirrWarr. Bei Ratinglisten haben sich Standarderöffnungsbücher entwickelt, die nicht so sehr in die Tiefe der Theorie gehen. Ein Experte auf dem Gebiet ist Sedat Canbaz. Er bietet Eröffnungsbücher zum Download an und pflegt auch beständig seine interessante Webseite.
Gehe zu: SedatChess
Eine weitere Überlegung:
Großmeister sind z. B. der Meinung, dass Schachprogramme mit sehr vielen Eröffnungssystemen völlig falsch umgehen. Auch ich teile die Meinung (sofern ich mir das überhaupt anmaßen darf) und denke, dass starke Schachspieler hier einen nicht zu unterschätzenden Vorteil haben. Allerdigns bin ich auch der Meinung, dass Schachprogramme sich als äußert hilfreich erweisen, neue Wege und mögliche starke Varianten zu finden. Je abwegiger sich ein Schachprogramm verhält desto besser wird wahrscheinlich das Ergebnis. Paradebeispiel ist die Engine Junior 2010. Die ersten Züge nach der Eröffnungstheorie gleichen "Kaffeehausschach" Zügen. Meistens sind die Züge dann die besten "Zweischneidigen Züge" aber immer wieder stellt sich auch heraus, dass die Züge gar spielbar sind.
Vorschlag:
Für ein solches Experiment sollten meines Erachtens in etwa gleich starke Engines ausgewählt werden, die in der Spielstärke nicht mehr als 50-100 ELO voneinander entfernt sind. Die Engines sollten ferner völlig unterschiedliche Spielstile aufweisen. Wahrscheinlich reichen 6 Engines aus.
Idee:
Sedat Canbaz (Türkei) kontaktieren (in englisch).
Dennoch halte ich den hier geschilderten Ansatz für sehr interessant. Auch die Idee einer neuen Option für die ChessBase Eröffnungsbücher erscheint sinnvoll. Überhaupt glaube ich auch, dass die Eröffnungstheorie noch lange nicht am Ende der Fahnenstange ist und uns Computerschachprogramme immer mehr interessante Wege aufzeigen werden. Wege, die für Schachspieler zunächst unlogisch aussehen.
Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill