Crafty ist ein kostenloses Schachprogramm von Robert Hyatt, einem amerikanischen Informatiker. Es ist in der Lage, Partien gegen menschliche Großmeister zu gewinnen, insbesondere im Blitzschach. Im November 2006 wurde Crafty, Version 18.12 auf AMD Athlon 1,2 GHz, in der Rangliste der SSDF mit einer Wertungszahl von 2616 auf Platz 36 geführt.
Es wird seit 1994 stetig weiterentwickelt. Sein Vorgänger Cray Blitz gewann die Computerschachweltmeisterschaften 1983 und 1986. Der Programmcode ist portierbar, so läuft Crafty unter Linux und Microsoft Windows. Das Programm benutzt das XBoard-Protokoll und kann mit entsprechenden Schach-Frontends verwendet werden. Die aktuelle Version ist 25.2.
Bei der Computerweltmeisterschaft 2004 belegte Crafty in der Version 19.15 den vierten Platz, punktgleich mit Fritz 8, hinter Junior 8 als Weltmeister und Shredder 8. Ein Jahr später belegte Crafty den fünften Platz von zwölf teilnehmenden Programmen. Dabei lief es auf einem AMD-Opteron-System mit vier Prozessoren und bewertete damit über 16 Millionen Stellungen pro Sekunde.
Das Programm spielt fast ununterbrochen im Internet Chess Club gegen Menschen und andere Schachprogramme. Die Ergebnisse werden genutzt, um Schwächen zu erkennen und das Programm kontinuierlich zu verbessern. In den letzten Jahren ergab sich jedoch keine signifikante Steigerung der Spielstärke mehr. Man spricht daher von der Crafty-Schwelle: Schachprogramme, die stärker sind als Crafty, gehören mindestens zu einer erweiterten Spitzenklasse. Derzeitiger Entwicklungsschwerpunkt ist die Parallelisierung.
Der Quellcode von Crafty ist zugänglich, die Nutzung des Quellcodes und des Programms wird aber von der Lizenz beschränkt. Crafty ist somit keine freie Software und erfüllt nicht die Open-Source-Definition. Der Quellcode wird von vielen Programmierern als Vorlage für die Implementierung grundlegender Funktionen genutzt, daher kam es auch schon zu Plagiatsvorwürfen bei Computerschachturnieren.
Crafty ist eins der Programme, die im SPEC-CPU-Benchmarktest enthalten sind. Es ist auch als eine zusätzliche Schach-Engine in Fritz enthalten und beherrscht in dieser Fassung sogar den Multivarianten-Analysemodus.
Technische Details
Crafty ist in ANSI-C- und Assembler-Routinen geschrieben. Es gibt optimierte Versionen für unterschiedliche Plattformen.
Crafty benutzt eine Bitboard-Datenstruktur für das Spielfeld, zahlreiche Optimierungstechniken der Alpha-Beta-Suche wie Pruning, Killer-Heuristik, Quiescent-Suche und Null-Zug-Suche sowie Hashtabellen. Im Endspiel kann Crafty Endspiel-Datenbanken nutzen. Die Software bietet über einstellbare Parameter viele Konfigurationsmöglichkeiten durch den Benutzer.
Quellen
Weblinks
- Homepage (englisch)