Die ultimative Programm-Rangliste...
...gibt es bekanntlich nicht. Zu unterschiedlich sind die Rahmenbedingungen, unter denen die vielen internationalen Tester(-Gruppen) ihre Engine-Turniere und -Matches ausspielen lassen. Die verwendeten Rechner-Typen, die Bedenkzeiten, die Programm-Parameter und Pondering-Einstellungen, die Eröffnungsbücher und Endspiel-Datenbanken, die Gegner-Anzahl und -Qualität, die Festlegung der div. Hash-Größen - dies alles scheint eine jede der zahlreichen Computer-Ranglisten unverwechsel-, ja unvergleichbar zu machen.
Oder vielleicht doch nicht?
Untersuchen wir mal ein paar der von Programmierer- und Anwenderschaft meistkonsultierten Rankings im Hinblick auf jene Top-Stamm-Engines (32bit/1CPU), welche in allen diesen fraglichen Rangierungen gelistet sind - etwaige hier unterschiedlich benannte Versionen sind übrigens völlig identisch spielende, allenfalls Bug-bereinigte Engines -, und stellen wir dann die «bereinigten» Tabellen nebeneinander.
Das sich ergebende Bild ist verblüffend...
| CEGT |
CCRL |
COMP |
CSS |
CEGT-Blitz |
|
| 01. Rybka 2.2 |
Rybka 2.2 |
Rybka 2.2 |
Rybka 2.2 |
Rybka 2.2 |
|
| 02. Loop 10.32f |
Loop 10.32f |
Loop 10.32f |
Toga II 1.2.1 |
Loop 10.32f |
|
| 03. Shredder 10 |
Shredder 10 |
Shredder 10 |
Shredder 10 |
Shredder 10 |
|
| 04. Toga II 1.2.1a |
Toga II 1.2.1a |
Toga II 1.2.1a |
Loop 10.32f |
Toga II 1.2.1a |
|
| 05. Hiarcs 10 |
Spike 1.2 Turin |
Fruit 2.2.1 |
Fruit 2.2.1 |
Fritz 9 |
|
| 06. Fritz 9 |
Fruit 2.2.1 |
Fritz 9 |
Fritz 9 |
Spike 1.2 Turin |
|
| 07. Fruit 2.2.1 |
Fritz 9 |
Spike 1.2 Turin |
Hiarcs 10 |
Junior 10 |
|
| 08. Spike 1.2 Turin |
Hiarcs 10 |
Hiarcs 10 |
Spike 1.2 Turin |
Hiarcs 10 |
|
| 09. Junior 10 |
Junior 10 |
Junior 10 |
Junior 10 |
Ktulu 8 |
|
| 10. Ktulu 8 |
Naum 2.0 |
Ktulu 8 |
Ktulu 8 |
Fruit 2.2.1 |
|
| 11. Naum 2.0 |
Ktulu 8 |
Naum 2.0 |
Naum 2.0 |
Naum 2.0 |
|
| 12. SmarThink 1.0 |
Glaurung 1.2.1 |
SmarThink 1.0 |
SmarThink 1.0 |
ChessTiger 15 |
|
| 13. ChessTiger 15 |
SmarThink 1.0 |
Glaurung 1.2.1 |
Glaurung 1.2.1 |
SmarThink 1.0 |
|
| 14. Scorpio 1.8 |
Scorpio 1.8 |
Scorpio 1.8 |
ChessTiger 15 |
Scorpio 1.8 |
|
| 15. Glaurung 1.2.1 |
SlowCBlitzWV2.1 |
ChessTiger 15 |
Scorpio 1.8 |
Ruffian 2.1.0 |
|
| 16. Gandalf 6.0 |
CMaster10000 |
CMaster10000 |
Pro Deo 1.1 |
CMaster10000 |
|
| 17. CMaster10000 |
ChessTiger 15 |
Gandalf 6.0 |
CMaster10000 |
SlowCBlitzWV2.1 |
|
| 18. SlowCBlitzWV2.1 |
Gandalf 6.0 |
SlowCBlitzWV2.1 |
Ruffian 2.1.0 |
Gandalf 6.0 |
|
| 19. Ruffian 2.1.0 |
Ruffian 2.1.0 |
Ruffian 2.1.0 |
Gandalf 6.0 |
Pro Deo 1.1 |
|
| 20. Pro Deo 1.1 |
Pharaon 3.5.1 |
Pharaon 3.5.1 |
SlowCBlitzWV2.1 |
Pharaon 3.5.1 |
|
| 21. Pharaon 3.5.1 |
Delfi 5.0 |
Pro Deo 1.1 |
Delfi 5.0 |
WildCat 6.0 |
|
| 22. Delfi 5.0 |
Pro Deo 1.1 |
Delfi 5.0 |
Aristarch 4.5 |
Delfi 5.0 |
|
| 23. WildCat 6.0 |
WildCat 6.0 |
WildCat 6.0 |
SOS 5.0 |
SOS 5.1 |
|
| 24. SOS 5.1 |
Aristarch 4.5 |
Aristarch 4.5 |
Pharaon 3.5.1 |
Aristarch 4.5 |
|
| 25. Aristarch 4.5 |
Jonny 2.83 |
Jonny 2.83 |
WildCat 6.0 |
Colossus 2000f |
|
| 26. Jonny 2.83 |
Colossus 2000f |
SOS 5.0 |
Jonny 2.83 |
Anaconda 2.0.1 |
|
| 27. Anaconda 2.0.1 |
Anaconda 2.0.1 |
Anaconda 2.0.1 |
Anaconda 2.0.1 |
Glaurung 1.2.1 |
|
| 28. Colossus 2000f |
SOS 5.1 |
Colossus 2000f |
Colossus 2000f |
Jonny 2.83 |
|
| 29. Quark 2.35 |
Quark 2.35 |
Amyan 1.597 |
Amyan 1.594 |
Quark 2.35 |
|
| 30. Amyan 1.597 |
Amyan 1.597 |
Quark 2.35 |
Quark 2.35 |
Amyan 1.597 |
|
|
|
|
|
|
|
|
|
|
|
|
|
...denn schon ein kurzer Blick dokumentiert: Zwar ist totale Identität natürlich unmöglich, aber die Ranglisten, so unterschiedlich sie auch generiert worden sind, sehen sich sehr ähnlich, die Abweichungen sind marginal bzw. im statistischen Rauschen angesiedelt. Sogar bei den Blitz-Rankings «CSS» und «CEGT-Blitz» zeigt sich - von den üblichen zwei, drei Ausreißern abgesehen - eine frappante Übereinstimmung.
Damit kann als erwiesen betrachtet werden: Nicht die «Verpackung» (=Books&Bases) und auch nicht der «Transport»(=Hardware), sondern v.a. der «Inhalt» (=Codes&Algorithmen) ist's, der über die relative Turnier-Performance einer Schach-Engine entscheidet.
Andersrum gesagt, und keineswegs trivial: Gute Programmierung ist durch nichts - auch nicht durch schnelle Hardware und Datenbanken - zu ersetzen...
Engangs erwähnte ich, dass es die «alleinseligmachende» Rangliste nicht geben kann - aber Annäherungswerte lassen sich durchaus ermitteln! Eine Methode hierzu ist simpel: Man ordne jeder der 30 obigen Engines gemäss ihrer jeweiligen Platzierung Zahlen von 1-30 zu, und addiere diese zu einem Gesamtergebnis.
Dabei entsteht sie also dann doch, nämlich...
Die ultimative Rangliste
01. Rybka 2.2 150
02. Loop 10.32f 143
03. Shredder 10 140
04. Toga II 1.2.1a 137
05. Fritz 9 125
06. Fruit 2.2.1 122
07. Spike 1.2 Turin 121
08. Hiarcs 10 119
09. Junior 10 112
10. Ktulu 8 105
11. Naum 2.0 101
12. SmarThink 1.0 93
13. ChessTiger 15 84
14. Scorpio 1.8 84
15. Glaurung 1.2.1 75
16. Chessmaster10000 73
17. Gandalf 6.0 67
18. SlowChessBlitzWV 2.1 67
19. Ruffian 2.1.0 65
20. Pro Deo 1.1 57
21. Pharaon 3.5.1 50
22. Delfi 5.0 47
23. WildCat 6.0 40
24. Aristarch 4.5 35
25. SOS 5.1 31
26. Jonny 2.83 25
27. Anaconda 2.0.1 21
28. Colossus 2000f 20
29. Quark 2.35 8
30. Amyan 1.597 7
CH-Rothenburg, 10.Dez.2006