Logo "blaue" Seiten

 
 
 
 
- Anzeige -
Für den Erwerb von Schachartikeln empfiehlt Ihnen der SC Leinzell den
 Schachversand Dreier 
 
 
Testen Sie Ihr Schach!
 
Diagramm 18-2006
 
Diagramm 18 – 2006
Hier wurde eine »Schachmaschine« demontiert. Wie zerlegte Weiß am Zuge die misslungene schwarze Partieanlage?
 zur Lösung 
 
 
 
 
zur Startseite
 News | Sitekalender | Sitemap | Team | Kontakt 
Rochade-EuropaPeter Schreiner
 
 
Das Computerschachglossar
von Peter Schreiner - Teil 2, F - Z
   
HashTabellen
Jedes moderne Schachprogramm verwendet im Arbeitsspeicher sogenannte HashTabellen, um die Ausführungsgeschwindigkeit des Programms zu steigern. In den Tabellen werden bereits bewertete Positionen gespeichert. Im Verlauf der weiteren Berechnungen prüft das Schachprogramm, ob die Stellung in den Tabellen bereits mit der Bewertung gespeichert wurde. Ist dies der Fall, muss die Stellung nicht erneut berechnet und bewertet werden. Diese Technik spart viel Zeit und das Programm kann deutlich tiefer rechnen. Beim Einsatz von HashTables sollten einige Regeln beachtet werden:
  1. Sehr große HashTabellen bewirken in der Regel erst bei langen Bedenkzeiten einen deutlich positiven Effekt. In Partien mit kurzen Bedenkzeiten (z.B. Blitzschach) sind auch auf sehr schnellen Rechnern kleinere HashTabellen völlig ausreichend. Achten Sie auch auf die Vorgaben und Empfehlungen der Hersteller.
  2. Wenn Sie den Maximalwert für die HashTabellen einstellen, kann es passieren, dass alle anderen Aktionen, wie z.B. das Eingeben von Zügen- erheblich ausgebremst und verlangsamt werden. Sie sollten deshalb die HashTables immer etwas unterhalb des Maximalwerts einstellen. Der Maximalwert ist nur dann sinnvoll, wenn Sie das Programm sehr lange (z.B. über Nacht) an einer Stellung rechnen lassen wollen. Nehmen Sie in diesem Fall zuerst alle gewünschten Einstellungen vor und stellen Sie dann die maximale Größe der HashTables ein. 
 
Horizonteffekt
Eine typische Eigenschaft von Schachprogrammen, eine nicht vermeidbare, ungünstige Spielsituation durch die Schaltung von Zwischenzügen so weit hinauszuschieben, das sie jenseits der aktuellen Suchtiefe liegt. Damit wird die negative Konsequenz vom Programm nicht mehr erkannt, bildlich gesprochen quasi ein "Verdrängungsmechanismus."
 
 
Knoten
Viele Schachprogramme stellen im Analysefenster die Information "Knoten pro Sekunde" dar. Diese Maßeinheit wird allgemein als Information interpretiert, wie viele Stellungen ein Schachprogramm pro Sekunde bewertet. Schnelle Programme bewerten auf aktueller Tophardware durchaus über 1 Millionen Stellungen pro Sekunde!
 
 
Lernfähigkeit
Einer der markantesten Unterschiede zwischen menschlichen und elektronischen Schachspielern besteht darin, dass der Mensch aus seinen Fehlern lernt. Kritische Zeitgenossen werden diese Behauptung natürlich anzweifeln und mit Sicherheit fällt es leicht, zahlreiche Gegenbeweise aus dem täglichen Leben für diese These aufzuführen. Wir wollen nicht zu philosophisch werden und uns auf den Idealfall beschränken.
 
Nehmen wir an, ein Anfänger verliert eine Figur durch ein Motiv, das ihm zuvor noch nicht bekannt war, wie z.B. eine simple Bauerngabel. Im Idealfall wird er nach Kenntnis des Motivs nicht mehr auf diese Finte hereinfallen und aufgrund der Erfahrung den Figurenverlust vermeiden. Anders sah es lange Zeit bei den Schachprogrammen aus, die beharrlich ein und denselben Fehler immer wieder konsequent wiederholten. Dies konnte man sehr schön bei reinen Computermatches verfolgen, wo bestimmte Verlustpartien in identischer Form problemlos reproduzierbar waren.
 
Auch für den Anwender war es nach den ersten Triumphen wenig befriedigend, wenn er sein Programm immer wieder mit dem gleichen Trick oder der gleichen Zugfolge besiegen konnte. Also lag es nahe, im Schachprogramm einen Algorithmus zu implementieren, der dieses wenig intelligente Verhalten abstellt und das Programm zu einem schwieriger auszurechnenden Gegner prädestiniert.
 
Ein erster Ansatz wurde auf kommerzieller Ebene von den Amerikanern Kathe + Dan Spracklen bei den Elite-Avantgarde Schachcomputern der Firma Fidelity realisiert. Bei den Rechnern dieser Baureihe wurde ein bestimmter Zug nicht mehr ausgespielt, wenn im unmittelbar darauffolgenden Zug die Bewertung drastisch absackte. Alternativ wurde einfach der zweitbeste Zug ausgespielt. Es ist klar, dass dieses Verfahren in erster Linie nur taktisch effizient war, weil für den Rechner schwierig zu erkennende, positionelle Aspekte, die langfristig zur der schlechten Stellung führten, überhaupt nicht berücksichtigt wurden. Mittlerweile verfügen allen Top-Programme über ausgefeilte Lernfunktionen. Die Lernfunktionen aktueller Programme haben folgende Ziele:
  • Wiederholung von Gewinnpartien bzw. Vermeidung der Wiederholung von Verlustpartien
  • Verbesserte Leistungsfähigkeit in Partien und Analysen
  • Wiedererkennung von Kombinationen
  • Eigenständige Verbesserung und Modifikation des Eröffnungsbuchs
Die meisten aktuellen Schachprogramme realisieren diese Anforderungen über die HashTabellen. Die kritischen Stellungen werden inkl. der Bewertung in einer Lerndatei permanent abgespeichert. Beim Start einer Partie wird das Lernfile in den RAM geladen und beständig überprüft, ob ein Eintrag für die aktuelle Position vorliegt. In der Praxis bedeutet dies, dass jedes Mal, wenn sich während der Berechnung eine deutliche Veränderung der Bewertung ergeben hat, die entsprechende Position inkl. Bewertung permanent gespeichert wird.
 
Falls eine einmal gelernte Stellung erneut berechnet werden muss, dann kann das Programm auf die gespeicherten Informationen zurückgreifen und einen eventuell besseren Zug ausspielen. Diese Technik stellt einen gewissen Fortschritt dar, ist aber bei weitem nicht optimal. Nach wie vor greift das Verfahren erst dann, wenn die Bewertung drastisch abgefallen ist. Die vorausgehenden positionellen Strukturen, die zu der kritischen Position führten, werden mit dieser Methode nicht berücksichtigt.
 
Eine weitere Schwachstelle bei diesem Verfahren liegt darin, dass es nur identische Stellungen berücksichtigt, die in der Lerndatei gespeichert sind. Ein echter Durchbruch hinsichtlich künstlicher Intelligenz würde darin bestehen, wenn die Lernfunktion auch in Situationen greifen würde, wo ein ähnliches Motiv auftritt. Für einen Menschen ist das kein Problem, denn er kann die früher gemachte Erfahrung auch auf Situationen übertragen, die nicht 100% mit der Erfahrungssituation identisch ist.
 
Die meisten Top-Programme nehmen selbständig Modifikationen am Eröffnungsbuch vor. Ungünstige Abspiele werden einfach in der Ausspielpräferenz heruntergesetzt oder deaktiviert, während Eröffnungsvarianten mit deutlich positiven Resultaten vom Schachprogramm mit einer höheren Präferenz versehen werden. Dieses Verfahren hat den großen Vorteil, dass sich das Ausspielverhalten des Programms in der Eröffnungsphase langfristig selbständig optimiert. Dadurch ist das Programm in der Lage, schlechte Eröffnungsvarianten auszusortieren, bzw. vorteilhafte Varianten anzustreben, nachdem sie einmal gespielt wurden.
 
 
Positionsbaum
Alle Schachprogramme rechnen in der Anfangsphase einer Partie nicht selbst, sondern rufen ihre Züge aus einer vorgespeicherten Datei, der sogenannten Eröffnungsbibliothek ab. Mit Hilfe des Eröffnungsbuches spielt das Schachprogramm im Idealfall Züge aus, die sich in der Turnierpraxis bewährt haben. Die Vorzüge sind klar: der Computer spart erheblich Bedenkzeit ein, weil er die Züge nicht berechnen muss und vermeidet gleichzeitig grobe strategische Fehler in der Eröffnung. Bei aktuellen Schachprogrammen wie Shredder 5 und der Fritz-Familie liegt die Bibliothek in Form eines Positionsbaums (auch Eröffnungsbaum genannt) vor, bei dem alle gespeicherten Züge miteinander verknüpft sind.
 
Die Besonderheit des Positionsbaums besteht vor allem darin, dass zu jedem Zug eine Vielzahl wichtiger Informationen gespeichert ist. Mit Hilfe dieses Konzeptes ist es beispielsweise überhaupt kein Problem herauszufinden, wie häufig ein bestimmter Zug gespielt wurde, welche Erfolgsquote damit für den An- oder Nachziehenden zu erwarten ist oder in welchem Zeitraum eine bestimmte Fortsetzung besonders häufig angewandt wurde. Im Grunde genommen fungiert ein gut gepflegter Positionsbaum nicht nur als Bibliothek, sondern gleichzeitig als Datenbank zur Einschätzung und Bewertung von allen möglichen Fragen, die im Zusammenhang mit der Eröffnungstheorie auftreten können. Die Vorzüge des Konzeptes sind signifikant:
 
1. Der Anwender kann sich schnell und gezielt auf eine bestimmte Eröffnungsvariante vorbereiten und alle bisher in dieser Variante gespielten Züge auf ihre Tauglichkeit untersuchen. Außerdem erkennt er auf "einen Blick", wo die bisher bekannte Theorie zu Ende ist und muss dazu nicht erst diverse Schachbücher oder elektronische Partiedatenbanken durchstöbern. Da der Positionsbaum von dem Schachprogramm gleichzeitig als Eröffnungsbuch benutzt wird, besteht die Möglichkeit, die neu gewonnenen Kenntnisse direkt gegen den Computer auszuprobieren und zu trainieren.
 
2.Die Schachprogramme nutzen die Informationen aus dem Positionsbaum kreativ. Wenn es zum Beispiel in einer gegebenen Stellung zwei Züge zur Auswahl gibt, von denen der eine dreimal gespielt worden ist und mit dem die Partie auch dreimal verloren wurde, der andere jedoch nach 100 Partien eine Quote von 60% hat, wird das Programm diese Information entsprechend interpretieren und den erfolgversprechenderen Zug ausspielen.
 
Ein weiterer Vorzug des Konzeptes besteht darin, dass der Anwender das Ausspielverhalten in der Eröffnung besser beeinflussen und kontrollieren kann. Durch eine Vielzahl von Einstellmöglichkeiten kann man fast stufenlos bestimmen, ob das Programm nur die besten Züge spielen soll oder aber abwechslungsreicher auch einmal potenziell schlechtere Züge wählen soll. Weiterhin kann man die Präferenzen auf die Hauptvarianten oder die Nebenvarianten beschränken.
 
3.Ein weiterer Vorzug des Positionsbaumkonzeptes besteht darin, dass man den Baum leicht durch den Import aktueller Partien ergänzen und aktualisieren kann. Dadurch ist gewährleistet, dass die Bibliothek in eröffnungstheoretischer Hinsicht immer auf dem aktuellsten Stand bleibt.
 
Wie immer im Leben: wo viel Licht, da gibt es auch Schatten. Im Fall des Positionsbaums beschränkt sich der Nachteil darauf, dass die eingebetteten Informationen recht viel Festplattenspeicher benötigen. Für einen gut aufgebauten Positionsbaum sind im Schnitt 150 MB, eher mehr, einzuplanen. Dies sollte aber in Anbetracht der riesigen und gleichzeitig erschwinglichen Festplatten kein großes Handicap mehr darstellen.
 
 
Permanent Brain
Als Permanent Brain bezeichnet man die Fähigkeit eines Programms, während der Bedenkzeit des Gegners weiterzurechnen. Alle wichtigen Schachprogramme nutzen diese Technik. Das Schachprogramm setzt seine Berechnungen während der Bedenkzeit des Gegners im Hintergrund fort. Falls der Gegner den erwarteten Zug ausspielt, greift das Programm auf die ermittelten Ergebnisse zurück und wird umgehend oder zumindest sehr schnell seinen Antwortzug ausspielen. Dies spart bei einer hohen Trefferquote sehr viel Bedenkzeit und führt zu einer deutlichen Steigerung der praktischen Spielstärke.
 
Falls Sie gerne Stellungstests oder Lösungsvergleiche mit ihren Schachprogrammen absolvieren, sollten Sie das Permanent Brain abschalten. Ansonsten könnte es passieren, dass das Programm auf bereits berechnete Werte in den HashTabellen zugreift. Dies erschwert konkrete Vergleiche von ermittelten Lösungszeiten ganz erheblich.
 
 
Ranglisten
Analog zu den Ranglisten für menschliche Schachspieler gibt es auch Wertungslisten für Schachprogramme und Schachcomputer. Die international am meisten beachtete Rangliste, die auch regelmäßig in der RE abgedruckt wird, ist die SSDF-Liste aus Schweden. Eine ähnliche gute Reputation genießt die von Eric Hallsworth regelmäßig publizierte Wertungsliste der Zeitschrift Selective Search. Bei der Interpretation der Elozahlen sollte man immer berücksichtigen, dass die Werte auf reinen Computerpartien basieren.
 
 
Suchtiefe
Jedes Schachprogramm rechnet eine bestimmte Anzahl an Zügen im voraus. Wurden alle plausiblen Zugmöglichkeiten analysiert, fängt das Programm erneut mit der Berechnung an, rechnet dann jedoch einen Halbzug tiefer. Jedes Schachprogramm unterschiedet bei der Suche zwischen sinnvollen und sinnlosen Zügen. Die nach Ansicht des Programms sinnvollen Züge werden tiefer analysiert, dies bezeichnet man auch als selektive Suche. Das Überprüfen der restlichen Züge wird als vollständige Suche bezeichnet. Fast alle Schachprogramme zeigen sowohl die selektive als auch die vollständige Suche im Analysefenster an. Dabei sollte man wissen, was in der Computerschachterminologie ein "Halbzug" bedeutet, Ein Halbzug ist jeweils ein Zug von Weiß oder Schwarz. Ein Zug besteht also immer aus zwei Halbzügen.
 
 
Schachdatenbank
Eine der wichtigsten PC-Anwendungen ist für den aktiven Spieler eine Schachdatenbank. Mit Hilfe einer Schachdatenbank ist es möglich, Partien und Positionen inkl. Varianten, Text und Grafiken in Sammlungen zu speichern. Aktuelle Partiesammlungen wie z.B. die Megabase 2001 beinhalten mehr als 1,7 Millionen Schachpartien aus den historischen Anfängen bis zur jüngsten Turnierpraxis. Mit Hilfe einer Schachdatenbank ist eine gezielte Auswertung dieser riesigen Datenbestände, z.B. bei der Vorbereitung auf bestimmte Gegner, problemlos möglich. Dank der ausgeklügelten Suchfunktionen ist die Zusammenstellung von Trainingsunterlagen für Eröffnung, Mittelspiel oder Endspiel überhaupt kein Problem. Ein führende Position hat das Datenbanksystem ChessBase 8.0, das von fast allen Spitzenspielern genutzt wird. Alternativen sind Chess Assistant 6.0 und die Chess Academy 2000.
 
 
Tablebases
Als Tablebases bezeichnet man Endspieldatenbanken, die von Eugene Nalimov entwickelt wurden. Aktuelle Schachprogramme können die in diesen Endspieldatenbanken gespeicherten Informationen sehr effizient – bereits in der Suche – nutzen. Bei einem Zugriff auf eine bestimmte Position wird immer ein ganzer Abschnitt der Datenbank entpackt und in den Arbeitsspeicher kopiert. Bei einem erneuten Zugriff prüft das Programm, ob sich die Stellung bereits im Speicher befindet. Falls dies zutrifft, wird die Information aus der Tabelle im Arbeitsspeicher abgerufen. Falls sich die Stellung nicht im Speicher befindet, wird wieder auf der Festplatte nachgeschaut, die Informationen des entsprechenden Abschnitts werden entpackt und in den RAM geladen.
 
Aufbau einer Endspieldatei
Es gibt für jeden Endspieltyp zwei Dateien, in denen das Zugrecht festgelegt wird; eine für Weiß und eine für Schwarz am Zug. Anhand des Dateinamens kann man sofort erkennen, welches Endspiel in den Dateien enthalten ist.
Beispiel: KQRK.NBB enthält das Endspiel König + Dame gegen König + Turm. Die Kürzel, z.B. Q (Queen) stehen für die Figurenbezeichnung aus dem Englischen. Die Erweiterung des Dateinamens NBB bedeutet konkret N=Neu, B=Base, B=Schwarz (black) am Zug; .NBW steht also für N=Neu, B=Base, W=Weiß (white) am Zug.
Der Dateiname enthält eine zweite Erweiterung mit der Bezeichnung *.EMD, die für die komprimierten Tablebases steht. Im Prinzip braucht sich der Anwender darum nicht zu kümmern, da die entsprechenden Programme automatisch auf die Tablebases zugreifen.
 
 
Winboard
Die Freeware Winboard von Dr. Tim Mann steht im Internet unter www.research.digital.com/SRC/personal/Tim_Mann/ auf der Webseite von Tim Mann zum Download bereit. Das Programm stellt eine universelle Benutzerschnittstelle zum Einbinden von Schachengines dar und kann außerdem zum Spielen auf Schachservern im Internet eingesetzt werden.
 
Peter Schreiner
 
zum Seitenanfang zurück |