Donnerstag, 26. August 2010

FastFruit

Vor zwei Tagen kam in diesem Beitrag der Verdacht auf, dass Fruit 2.1 bei sehr kurzen Bedenkzeiten überdurchschnittlich erfolgreich agiert. Lagen doch auf einem Resurrection II Schachcomputer (500 MHz XScale) im Aktivschach nur 137 Elo zwischen Fruit 2.1 und Shredder 12. Fruit spielte, auf dem 8-mal langsameren 200 MHz StrongARM, sogar nur 72 Punkte schwächer.

Um den Verdacht zu erhärten und ein Zufallsergebnis auszuschließen, kommt es jetzt zu einem Ultra-Blitz-Match. Teilnehmer sind Houdini 1.03a, Shredder 12 und Fruit 2.1. Ausgetragen auf einem Asus EeePC 901 mit Intel Atom N270 1.6 GHz Prozessor unter WinXP. Dieser ist rund 90-mal schneller als der 200 MHz StrongARM des Resurrection.

Als Turniermanager gelangt LittleBlitzer 2.4 zum Einsatz. Damit lassen sich automatische Wettkämpfe zwischen UCI-Engines mit Bedenkzeiten von z.B. 1"+0.1" bewältigen. Jede Seite erhält so eine Sekunde für die gesamte Partie plus 100 ms Zeitgutschrift für einen ausgeführten Zug. Als Eröffnungsvorgabe dienten Dann Corbits 400 neutrale Positionen, die mit beiden Farben zu absolvieren sind. Das Rundenturnier (Jeder gegen jeden) ging völlig problemlos über die Bühne. Vielen Dank an Nathan Thom, dem Programmierer von LittleBlitzer; er ist auch Autor der Engine LittleThought.

Hier die überraschenden Ergebnisse mit 1 Thread, 32 Bit, Ponder OFF und 8 MB Hash

LittleBlitzer 2.4 auf Atom 1.6 GHz, 1"+0.1" pro Spiel 
Games Completed = 2400 of 2400 (Avg game length = 9.005 sec)
Time = 24924 sec elapsed, 0 sec remaining

 1.Fruit 2.1       639.5/1600    564-885-151
                   (L: m=815 t=0 i=0 a=70)
                   (D: r=84 i=34 f=16 s=11 a=6)
                   (tpm=95.0 d=7.2 nps=0)
 2.Houdini 1.03a  1074.0/1600    999-451-150
                   (L: m=202 t=0 i=0 a=249)
                   (D: r=77 i=27 f=25 s=9 a=12)
                   (tpm=91.1 d=9.9 nps=323110)
 3.Shredder 12     686.5/1600    585-812-203
                   (L: m=621 t=0 i=0 a=191)
                   (D: r=121 i=37 f=25 s=10 a=10)
                   (tpm=96.5 d=7.0 nps=218780)

Bayeselo Auswertung
Rank Name                Elo    +    - games score oppo. draws
   1 Houdini 1.03a      2932   11   11  1600   67%  2791    9%
   2 Shredder 12        2800   10   10  1600   43%  2857   13%
   3 Fruit 2.1          2781   11   11  1600   40%  2866    9%

Shredder wurde für die Auswertung auf 2800 Elo gesetzt. Der Abstand zu Houdini ist sehr ähnlich wie auf aktueller Hardware unter "normalen" Bedenkzeiten. Aber Fruit 2.1 liegt weit über den zu erwartenden 2500 Elo.

Im Durchschnitt dauerte eine Partie 9 Sekunden und pro Zug wurde ca. 95 ms gerechnet. Bezogen auf den StrongARM wären das 8,5 Sekunden/Zug, also rund ein Viertel der Aktivschachbedenkzeit des Resurrection. Übrigens ging keine einzige Partei wegen Zeitüberschreitung oder illegaler Züge verloren (siehe oben bei Lost: t=0 und i=0).

Update 1 vom 27.08.10:

Fruit 2.1 und Ruffian 2.1.0 im Gauntlet gegen Critter, Houdini, Onno, Shredder und Sjeng auf deutlich schnellerem Intel Core2Quad; ansonsten wie gehabt.
 
Bayeselo Auswertung
Rank Name                  Elo    +    - games score oppo. draws
   1 Houdini 1.03a        2933   15   15  1600   70%  2757    4%
   2 Shredder 12          2800   14   14  1602   55%  2757   14%
   3 Critter 0.80         2794   14   14  1604   55%  2757   15%
   4 Fruit 2.1            2763    8    8  4803   46%  2796   15%
   5 Deep Sjeng 3.0       2755   14   14  1603   50%  2757   21%
   6 Ruffian 2.1.0        2750    8    8  4802   44%  2799   15%
   7 Onno 1.0.4           2745   14   14  1598   48%  2757   21%

LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1", Gauntlet Fruit 2.1 
Games Completed = 4803 of 4800 (Avg game length = 9.226 sec)
Time = 11652 sec elapsed, -7 sec remaining
 1.Fruit 2.1      2221.5/4803    1857-2217-729
                  (L: m=1968 t=0 i=0 a=249)
                  (D: r=417 i=141 f=106 s=27 a=38)
                  (tpm=95.6 d=8.4 nps=0)
 2.Critter 0.80   419.0/802    359-323-120
                  (L: m=153 t=0 i=0 a=170)
                  (D: r=81 i=18 f=14 s=4 a=3)
                  (tpm=72.4 d=10.0 nps=965792)
 3.Deep Sjeng 3.0 382.5/801    303-339-159     
                  (L: m=280 t=0 i=0 a=59)
                  (D: r=77 i=44 f=24 s=3 a=11)
                  (tpm=73.8 d=8.6 nps=0)
 4.Shredder 12    424.0/801    373-326-102
                  (L: m=132 t=0 i=0 a=194)
                  (D: r=59 i=12 f=20 s=3 a=8)
                  (tpm=93.9 d=8.8 nps=759572)
 5.Houdini 1.03a  551.0/800    535-233-32
                  (L: m=58 t=0 i=0 a=175)
                  (D: r=18 i=2 f=5 s=4 a=3)
                  (tpm=94.9 d=12.6 nps=1733459)
 6.Onno 1.0.4     389.0/800    293-315-192
                  (L: m=222 t=0 i=0 a=93)
                  (D: r=127 i=30 f=22 s=9 a=4)
                  (tpm=95.8 d=10.7 nps=1281003)
 7.Ruffian 2.1.0  416.0/799    354-321-124
                  (L: m=258 t=6 i=0 a=57)
                  (D: r=55 i=35 f=21 s=4 a=9)
                  (tpm=70.3 d=7.3 nps=2320562)

LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1", Gauntlet Ruffian 2.1.0
Games Completed = 4003 of 4000 (Avg game length = 8.565 sec)
Time = 9142 sec elapsed, -7 sec remaining
 1.Ruffian 2.1.0 1705.0/4003    1410-2003-590
                  (L: m=1805 t=24 i=0 a=174)
                  (D: r=294 i=105 f=90 s=40 a=61)
                  (tpm=78.0 d=7.3 nps=2324921)
 2.Critter 0.80   460.0/802    401-283-118
                  (L: m=165 t=0 i=0 a=118)
                  (D: r=60 i=22 f=14 s=8 a=14)
                  (tpm=73.8 d=9.8 nps=939128)
 3.Deep Sjeng 3.0 415.0/802    329-301-172     
                  (L: m=228 t=0 i=0 a=73)
                  (D: r=77 i=38 f=29 s=10 a=18)
                  (tpm=75.5 d=8.4 nps=0)
 4.Shredder 12    465.0/801    404-275-122
                  (L: m=139 t=0 i=0 a=136)
                  (D: r=74 i=14 f=13 s=10 a=11)
                  (tpm=94.3 d=8.7 nps=738953)
 5.Houdini 1.03a  572.0/800    556-212-32
                  (L: m=65 t=1 i=0 a=146)
                  (D: r=13 i=5 f=5 s=6 a=3)
                  (tpm=95.2 d=12.5 nps=1716253)
 6.Onno 1.0.4     386.0/798    313-339-146
                  (L: m=236 t=0 i=0 a=103)
                  (D: r=70 i=26 f=29 s=6 a=15)
                  (tpm=96.0 d=10.7 nps=1279029)
Oldies, but Goldies ... auch Ruffian 2.1.0 schlägt sich weitaus besser als erwartet. Muß dabei sogar 30 Verluste wegen Zeitüberschreitung verkraften. Diesmal liegt die hochgerechnete Bedenkzeit bereits über der eines 200 MHz StrongARM im Aktivschach.


Update 2 vom 28.08.10:

Fruit 2.1 nochmal gegen Shredder 12 auf Core2Quad. Aber diesmal mit Franks 5120 Eröffnungen.
 
LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1"
Games Completed = 10243 of 10240 (Avg game length = 10.172 sec)
Time = 30096 sec elapsed, -9 sec remaining
 1.Fruit 2.1     4643.0/10243    3992-4949-1302
                  (L: m=4467 t=0 i=0 a=482)
                  (D: r=763 i=248 f=147 s=42 a=102)
                  (tpm=96.4 d=9.0 nps=0)
 2.Shredder 12   5600.0/10243    4949-3992-1302     
                  (L: m=1904 t=0 i=0 a=2088)
                  (D: r=763 i=248 f=147 s=42 a=102)
                  (tpm=99.1 d=8.7 nps=901163)

Bayeselo Auswertung
Rank Name              Elo    +    - games score oppo. draws
   1 Shredder 12      2800    3    3 10243   55%  2763   13%
   2 Fruit 2.1        2763    3    3 10243   45%  2800   13%


Fazit: Erneut kein Verlust wegen Zeitüberschreitung bei über 10000 Partien! Andere "moderne" Engines bestätigen weitgehend ihren relativen Abstand zu Shredder. Aber Fruit 2.1 und Ruffian 2.1.0 punkten, bei extrem kurzen Zeitkontrollen, deutlich über den Erwartungen.

Keine Kommentare: