Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Battle of the Goths
- - By Reinhard Scharnagl Date 2012-01-26 11:19
Das von Haarm Geert Muller im Augenblick ausgetragene Turnier
"Battle of the Goths' 2012" kann, wie letztes Mal auch, live beobachtet
werden unter dem Link: http://80.100.28.169/gothic/chess.html

Teilnehmerliste:

Code:
1. Bihasa          Ferdinand Mosca
2. Joker80         H.G. Muller
3. SMIRF           Reinhard Scharnagl
4. TJchess10x8     Tony Hecker
5. Nebiyu          Daniel Shawul
6. Spartacus       H.G. Muller
7. TSCP Gothic     Tom Kerrigan / Michel Langeveld
8. Sjaak           Evert Glebbeek
9. Fairy-Max       H.G. Muller
10.Heretic         Martin Sedlak
11.ChessV          Gregory Strong
12.ArcBishop80     Matthias Gemuh
13.BigLion80       Matthias Gemuh

Es werden dabei jeweils 4 bekanntere 10x8 Schachvarianten in Hin-
und Rückrunden ausgespielt.

Soeben wurde eine Qualifikationsrunde abgeschlossen, in welcher sich die
neu hinzugekommenen 10x8 Engines vorsortieren durften. Die Engines,
welche dabei leider nur in die unteren Hälfte der Ergebnistabelle kamen,
spielen ab jetzt mit den Schlusslichtern des vorigen B.o.t.G. Turniers
um die hinteren Plätze.

Dabei werden bereits erzielte Resultate zwischen Engines übernommen.

Ergebnisse der Newcomer-Qualifikationsrunde:

Code:
                             Spar Nebi tscp Fair Here Sjaa
1. Spartacus                 #### 10=1 1111 1111 1111 1111
                             #### 1110 1111 1111 1101 1111   91%  36.5 (668.0, 578.3)

2. NebiyuChess               01=0 #### 0011 1111 1111 1111
                             0001 #### 1111 1111 1111 1111   81%  32.5 (700.0, 457.3)

3. tscpgothic                0000 1100 #### 0111 1111 1111
                             0000 0000 #### 1011 1100 1101   52%  21.0 (792.0, 253.0)

4. Fairy-Max                 0000 0000 1000 #### 111= 1110
                             0000 0000 0100 #### 1100 0111   34%  13.5 (852.0, 136.8)

5. Heretic                   0000 0000 0000 000= #### 0010
                             0010 0000 0011 0011 #### 0011   21%   8.5 (892.0, 136.3)

6. Sjaak                     0000 0000 0000 0001 1101 ####
                             0000 0000 0010 1000 1100 ####   20%   8.0 (896.0,  90.5)

Danach werden die Spitzen-Qualifikanten mit den Top-Engines
des vorigen B.o.t.G. Turniers um die Stockerl-Plätze ringen.

Ergebnisse des ersten B.o.t.G. Turniers 2009/10:

Code:
  Programm-Namen     Prozent  Punkte/Spiele  Buchholz, S-B

1.Joker80 n              92%   64.5 / 70    (2155.0, 1932.0)
2.TJchess10x8 0.121      70%   49.0 / 70    (2310.0, 1284.3)
3.Smirf 1.75t            68%   47.5 / 70    (2325.0, 1264.5)
4.TSCP Gothic            54%   38.0 / 70    (2420.0,  955.5)
5.Fairy-Max 4.8 v        49%   34.0 / 70    (2460.0,  758.8)
6.ChessV 0.94            41%   28.5 / 70    (2515.0,  570.8)
7.ArcBishop80 1.00       14%    9.5 / 70    (2705.0,  233.8)
8.BigLion80 2.23x        13%    9.0 / 70    (2710.0,  199.5)

Hier bleibt es spannend - es ist halt (noch) eine Klon-freie Zone.
(Und gelegentlich schaut sogar Ed Trice dort im Chat vorbei und
preist dann dezent seine Stickstoff gekühlten Rechenmonster an.)
Parent - By Michael Scheidl Date 2012-01-27 14:55
Zitat:
(Und gelegentlich schaut sogar Ed Trice dort im Chat vorbei und
preist dann dezent seine Stickstoff gekühlten Rechenmonster an.)

Stickstoff... Mir ist er eher als Fan von Silikon in Erinnerung. Das waren damals sehr außergewöhnliche Schachwerbungen.
Parent - - By Reinhard Scharnagl Date 2012-01-28 23:38
So. Nun wurden gerade die Play-Offs gestartet.
SMIRF spielt hier bei den "Guten" mit. Es ist im
Übrigen seine letzte Version, eine weitere Ent-
wicklung von SMIRF wird es nicht mehr geben.
Parent - - By Frank Rahde Date 2012-01-28 23:46
Was kommt denn nach SMIRF?

Gruß, Frank
Parent - - By Reinhard Scharnagl Date 2012-01-29 00:05
SMIRF ist in den Jahren so verbastelt worden, dass eine weitere
Entwicklung kaum Sinn machte. Es basierte auf dem ersten Design.
In der Zwischenzeit wurde viel Erfahrung gewonnen - nicht aus
fremden Sourcen, sondern aus erkannten gemachten Fehlern und
zwischenzeitlich entstandenen neuen Ideen.

Ob daraus mal ein fertiges neues Programm werden wird - das bleibt
erstmal offen. Ich habe bereits - ganz ganz langsam - mit der Umsetzung
meines Konzepts für eine monochrome Engine begonnen. Ziel ist es,
absolut symmetrisch für Schwarz wie Weiß zu rechnen, und, in der
Eröffnungsphase den Cache doppelt intensiv zu nutzen, da es ja dort
keine farbspezifischen Einträge mehr gibt, und durch eingefügte
Nullmoves Stellungen unter Perspektivwechsel auch für die jeweils
andere Seite von Interesse sind.

Nullmoves werden nicht wie beim klassischen Nullmove-Pruning auf
Basis der Nullmove-Observation benutzt. Es wird eine völlig andere
Interpretation benutzt, die absolut frei von Zugzwangproblemen bleibt.
Das wurde ansatzweise zuletzt auch schon in SMIRF realisiert, und es
hatte dort bereits in dieser Teilrealisierung das ursprüngliche Intelligence-
Feed-Back komplett abgelöst und war dennoch etwas stärker.

Es gibt leider keine reine UCI 8x8 / 10x8 GUI, wenn auch H.G.Muller
da einiges auf die Beine gestellt hat. Insofern wird alles wohl privat
bleiben, was ich da bastle - solange die Motivation nicht abebbt. Auch
ziele ich eher auf OS-übergreifende Lösungen und will weg von reinen
Windows Programmen. Eine schöne GUI für den Mac wäre nicht schlecht,
aber diese Arbeit wird sich niemals lohnen ...
Parent - - By Michael Scheidl Date 2012-01-29 16:57 Edited 2012-01-29 17:00
Zitat:
Ziel ist es, absolut symmetrisch für Schwarz wie Weiß zu rechnen,

Machen das nicht alle Engines seit jeher so? Vielleicht habe ich etwas bisher mißverstanden... Bei Pro Deo zum Beispiel kann man in folgender Stellung kleine Unterscheide feststellen (fixe Tiefe 10, jeweils nach Engineneustart):


Pro Deo 1.74 smart:
   1  00:00            21  21.000  +0.21  1.fxg7 Bxg7
(...)
   8  00:03     1.105.891  368.630  +0.57  1.b4 Nb7 2.Bg2 Nd8 3.h4 Bb7 4.h5 Nc6 5.Nxc6 Bxc6
   8  00:05     1.810.408  452.602  +0.57  1.Bxb5+
   8  00:07     2.666.144  380.877  +1.30  1.Bxb5+ Bd7 2.Bxd7+ Nxd7 3.Rhf1 Ne5 4.Qh5 g6 5.Qh3
   9  00:11     3.854.916  350.446  +1.38  1.Bxb5+ Bd7 2.Bc4 Rb8 3.h4 h6 4.Qf4 g6 5.Nf3
  10  00:19     6.655.385  350.283  +1.28  1.Bxb5+ Bd7 2.Bxd7+ Nxd7 3.Qh5 g6 4.Qh3 Rb8 5.Qf1 Qb6 6.b3
Best move: Bxb5, Value: +1.28, Depth: 10, Time: 00:28.590, 6.655.385 Nodes, 350.283 N/sec.


Pro Deo 1.74 smart:
   1  00:00            21  21.000  -0.20  1. ... fxg2 2.Bxg2
(...)
   8  00:03     1.107.538  553.769  -0.56  1. ... b5 2.Nb2 Bg7 3.Nd1 h5 4.Bb2 h4 5.Nc3 Nxc3 6.Bxc3
   8  00:05     1.823.246  364.649  -0.56  1. ... Bxb4+
   8  00:08     2.636.698  376.671  -1.30  1. ... Bxb4+ 2.Bd2 Bxd2+ 3.Nxd2 Rhf8 4.Ne4 Qh4 5.g3 Qh6
   9  00:11     3.875.098  352.281  -1.37  1. ... Bxb4+ 2.Bd2 Bc5 3.Rb1 h5 4.h3 Qf5 5.g3 Nf6
  10  00:20     6.765.937  338.296  -1.28  1. ... Bxb4+ 2.Bd2 Be7 3.Rb1 Nb6 4.Nxb6+ cxb6 5.Qc4 h5 6.Bb4 Bxb4+ 7.Rxb4
Best move: Bxb4, Value: -1.28, Depth: 10, Time: 00:27.561, 6.765.937 Nodes, 338.296 N/sec.

Knotenzahl und PV sind nicht identisch; vereinzelte Bewertungsabweichungen von 1/100. Aber der Output von Tiefe 1 und die erste PV auf Tiefe 8 stimmen genau überein.
Parent - By Reinhard Scharnagl Date 2012-01-29 20:51
[quote="Michael Scheidl"]... Machen das nicht alle Engines seit jeher so? Vielleicht habe ich etwas bisher mißverstanden ...[/quote]
Tatsächlich ist dies alles andere als selbstverständlich. Es fängt alleine schon mit der
Reihenfolge an, in der Züge generiert werden. Hier gehört sehr viel Disziplin und Fein-
abstimmung dazu, um das in der Programmierung auch nur ungefähr zu erreichen.

Mit dem neuen Ansatz besteht aber technisch gar keine Möglichkeit mehr, gespiegelte
Stellungen (intern) überhaupt als unterschiedlich zu erkennen. Das trifft auch auf im
Cache gespeicherte Ergebnisse zu. Das führt - wie bereits angesprochen - zur einer
Reduktion des Rechenaufwands während der Eröffnungsphase, da nach Nullmoves
dort regelmäßig Stellungen entstehen, die in gespiegelter Form auch auf der Gegenseite
vorkommen werden.

Da in den einzelnen Routinen nirgends mehr auf Schwarz oder Weiß abgefragt wird,
entfällt der Zwang, bestimmte Funktionen doppelt vorzuhalten, parallel zu pflegen
oder auf Symmetrie hin zu optimieren. Die Wartbarkeit wird also zudem verbessert.

Ich habe zuvor bereits alternativ versucht, in C++ über Templates mittels nur je einer
Source je Funktion diese vereinigte Wartbarkeit zu erreichen, was auch gelang, jedoch
wurden die Ziele Symmetrie und Cache-Bündelung auf diese Weise nicht hergestellt.

So bin ich zuletzt zu dem monochromen Ansatz gelangt, der mit einer vermutlich
ungewöhnlichen Datenstruktur all diese Ziele ohne Umweg zwangsläufig mit liefert.
Up Topic Hauptforen / CSS-Forum / Battle of the Goths

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill