Dr. Roland Stuckardt

IT-Beratung - Sprachtechnologie - Medienanalyse

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Schachengine Fischerle

Fischerle

E-Mail Drucken PDF

... ist ein Schachmotor, der den Standard UCI (Universal Chess Interface) implementiert und folglich mit gängigen Turnierplattformen wie beispielsweise Arena kompatibel ist. Es wurde in der Sprache Java implementiert und basiert auf State-of-the-Art-Techniken der Spielbaumsuche (Minimax, Backward-Pruning, Ruhesuche (QS), Selektive Suche usw.) sowie zur Suchbeschleunigung (optimierte Zugsortierung, Transpositionstafel, Killerzugheuristik, Iterative Vertiefung, PVS/MVS usw.). Die wesentlichen Techniken werden nachfolgend ausführlich beschrieben.

Schachstellungen werden auf der Grundlage von Rotated Bitboards repräsentiert. Als Bitboard-Engine ist Fischerle zugeschnitten auf und empfohlen für den hoch performanten Einsatz auf 64-Bit-Systemen.

Da Java-basiert, läuft Fischerle auch in 32-Bit-Umgebungen. Die in den Distributionen inkludierte 32-Bit-Version nützt die hier etwas kompaktereren Speicherprofile der Transpositionstafeln aus, mehr Einträge zu alloziieren, ist jedoch grundsätzlich code-identisch mit der empfohlenen 64-Bit-Version.

Aktuelle Distribution: Fischerle_0_9_50 (15. Mai 2014)

Fischerle partizipiert in Turnieren der Amateur Series von CCRL 40/40.

See as well the Chess Engine Fischerle pages at

 

Systemumgebung

E-Mail Drucken PDF

Für die Java-basierte Schachmaschine Fischerle gelten folgende Anwendungsvoraussetzungen und Empfehlungen:

  • Java Runtime Environment,
  • empfohlen für den Einsatz unter Arena 3.5 via UCI-Protokoll,
  • unterstützt ferner rudimentär ChessGUI (getestete Version: 0.240k).
  • entwickelt und getestet auf Windows 7 Professional 64 Bit, läuft als Java-Motor jedoch auch auf anderen Plattformen,
  • proprietäre, auf den Einsatz unter Windows zugeschnittene Fischerle-Benutzeroberfläche für Detailkonfiguration und Test.
 

Distributionen

E-Mail Drucken PDF

History of published releases:

Fischerle_0_9_50 (May 15th, 2014):

  • the king plays a more active role in late middlegame / early endgame;
  • most instances of some important types of draw (viz., particular positions of type king vs. rook pawn or king vs. rook pawn and wrong-colored bishop) are now properly recognized;
  • configuration file config.ini enables the user to alter some supplementary settings (such as the font and font sizes to be employed for displaying chess pieces in Fischerle's proprietary GUI).

Fischerle_0_9_30b (August 10th, 2013):

  • this is the first officially published distribution;
  • official 32 bit version, featuring properly adapted (i. e., slightly increased) numbers of hash table entries, has been added on April 23rd, 2014.
 

Spielstärke

E-Mail Drucken PDF

Die Spielstärke gemäß CCRL 40/40 liegt bei Elo 2185 entsprechend Weltranglistenplatz 213 (Stand: 5. Oktober 2013).

Da der genannte Elo-Wert in Turnieren und Einzelpartien ausschließlich gegen Schachmotoren gemäß dem spezifischen CCRL-40/40-Teststandard ermittelt wurde, lässt sich dieser nicht direkt mit den bekannten FIDE-Elo-Werten menschlicher Schachspieler vergleichen. Wie aus detaillierten Studien bekannt ist, weisen Schachmotoren dieses CCRL-Spielstärkenbereichs typischerweise eine taktische Spielstärke auf, die mindestens im Bereich menschlicher Großmeister liegt, was jedoch andererseits nicht für den positionellen Bereich sowie für die Behandlung bestimmter, strategisch anzugehender Endspiele gilt.

Da sich die meisten Schachmotoren derselben Basisalgorithmen bedienen, dürfte zwischen CCRL-40/40-Elo-Ranking und FIDE-Elo-Ranking zwar zumindest eine gute Korrelation bestehen. Signifikante Abweichungen sind jedoch beispielsweise in denjenigen Fällen möglich, in denen sich ein Motor geeigneter opponentenbezogener Strategien bedient ("Falls Gegner aus Fleisch und Blut: Bevorzuge offene / taktische Stellungen!") bzw. ein menschlicher Schachmeister Anti-Computer-Schach spielt ("Spiele irreguläre Eröffnungen!" / "Bevorzuge geschlossene / positionell zu behandelnde Systeme!" /"Vermeide taktische Scharmützel!"- pointiert formuliert: "Do nothing, but do it well!" (Zitat David Levy)).

Eine direkte "Umrechnung" von CCRL-40/40-Elo nach FIDE-Elo, wie sie andernorts vorgeschlagen wurde, erweist sich insofern als methodisch zumindest problematisch, wenn nicht gar unmöglich. Eine definitive Antwort auf die Frage, wie die Spielstärke Fischerles im Vergleich zu menschlichen Schachspielern, d. h. gemessen in FIDE-Elo, zu bewerten ist, ließe sich somit nur auf der Basis entsprechender Turniere auf Meisterebene geben.

 

Zum Namen

E-Mail Drucken PDF

"Ein Mensch, was ka Schach spielt, ist ka Mensch."

Radierung aus der Serie

 

 

 

 

 

 

 

 

 

Radierung aus der Serie "Die Blendung", © Doris Neidl, Wien.

Siegfried Fischer, genannt Fischerle ist eine Figur aus Elias Canettis Roman "Die Blendung", und zwar ein buckliger Zwerg und Zuhälter mit einem Faible für Schach. Fischerle hält sich für ein Schachgenie; er träumt davon, einmal genug Geld zu machen, um nach Amerika reisen und dort den damaligen Schachweltmeister Capablanca herausfordern zu können.

Interessanterweise schuf Canetti sein Erstwerk "Die Blendung" und damit die Figur Fischerle bereits in den Jahren 1931/32, also einige Jahrzehnte bevor der spätere Weltmeister Robert ("Bobby") Fischer die internationale Schachbühne betreten sollte.

 

Projektziele & Phasen

E-Mail Drucken PDF

Explorieren, was im Rahmen eines nichtkommerziellen Projektes mit begrenztem Aufwand unter Rückgriff auf wohldokumentierte klassische und neuere Algorithmen und Techniken sowie frei verfügbare Ressourcen (Partiensammlungen, Endspieldatenbanken etc.) heute möglich ist. Ein Gefühl dafür zu entwickeln, wie weit man im Rahmen eines "Teilzeit-Projekts" kommt, bzw. an welchem Punkt die großen Herausforderungen beginnen.

Angestrebt wird ausdrücklich nicht, den "großen" Schachmaschinen (Fritz, Shredder, Rybka & Co.) Konkurrenz zu machen,  in denen ja i. A. bereits einige zehn Personenjahre kontinuierliche Entwicklungsarbeit und ein entsprechend reichhaltiger Erfahrungsschatz stecken. Angestrebt wird jedoch sehr wohl, mittelfristig eine Engine zu schaffen, die mit Schachprogrammen konkurrieren kann, die das Ergebnis ähnlicher eher "privat" ausgerichteter Anstrengungen sind.

Entsprechend diesen Zielsetzungen wurden auf oberster Ebene folgende drei Projektphasen definiert:

In Projektphase 1 (→ Fischerle 0.1) soll ein lauffähiges Schachprogramm entstehen, das die grundlegenden Schachregeln korrekt implementiert, hierbei jedoch bereits über anschlussfähige - sprich: möglichst effiziente, wartbare und wohldokumentierte - Datenstrukturen zur Stellungsrepräsentation sowie zur Zugausführung verfügt.

In Projektphase 2 (→ Fischerle 0.5) soll qua Implementierung wohldokumentierter klassischer Strategien zur Suchbeschleunigung und flankierender Module wie Eröffnungsbuch etc. sowie einer schrittweisen Verfeinerung / Optimierung der Basisdatenstrukturen eine Schachengine geschaffen werden, die stärker spielt als ihr Entwickler. Angestrebt wird eine Spielstärke von FIDE-Elo 2000.

Gegenstand von Projektphase 3 (→ Fischerle 1.0) soll es dann sein, die Schachengine qua Implementierung verfeinerter State-of-the-Art-Algorithmen insbesondere des Forward Pruning auf eine Spielstärke von 2400 bis 2500 FIDE-Elo, also auf den Level eines Internationalen Meisters, zu bringen.

 

Meilensteine

E-Mail Drucken PDF

10. August 2013: erste Distribution Fischerle_0_9_30b veröffentlicht. Spielstärke der 64-Bit-Version ca. 2180 Elo (CCRL 40/40).

6. Februar 2012: Projektphase 2 (Fischerle 0.5) abgeschlossen.

30. September 2011: Projektphase 1 (Fischerle 0.1) abgeschlossen.