Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / LS-Rangliste: Stockfish DD mit adaptive Contempt
- - By Stefan Pohl Date 2013-12-07 05:48
The result of Stockfish DD with adaptive Contempt (by Jörg Oster) is now online.

http://ls-ratinglist.beepworld.de

Stefan

(Perhaps you have to clear your browsercache or reload the website)
Parent - - By Stefan Pohl Date 2013-12-07 05:54
Hallo zusammen,

ich habe es schon gleich auf meiner Website gepostet, aber hier auch gerne noch mal (auf Deutsch): Das bemerkenswerte an diesem Resultat ist, daß die Zahl der Remisen durch 3fache Zugwiederholung von 28% (Stockfish DD default) auf etwas über 17% gesenkt werden konnte. Das ist in absolut-Zahlen eine Reduktion um fast 40% (!).Damit hat es Jörg Oster geschafft, eine echte Schwäche der Stockfish-Engine (Remisanfälligkeit durch 3fache Zugwiederholung) zu eliminieren, ohne dabei die Spielstärke in Mitleidenschaft zu ziehen. Toll!
Ich kann nur hoffen, daß Jörg es schafft, Marco Costalba davon zu überzeugen, seine Modifikation in den "offiziellen" Stockfish zu integrieren.

Nächster Test für die LS-Rangliste ist nun Komodo TCEC. Ergebnis voraussichtlich am Dienstag.

Stefan
Parent - By Frank Quisinsky Date 2013-12-07 10:16 Edited 2013-12-07 10:25
Hallo Stefan,

das ist sehr gut aber auch die Version 05.12.2013 mit syzygy SSE42 x64 spielt gigantisch.
Die Remisquote in meinem Test bislang 1-2% niedriger als die der Version vom 03.11.2013 aber auch der Zügedurchschnitt der eh schon gering mit 86% ist geht weiter runter.
Derzeit auch ca. 5 ELO über Houdini 3 Pro. Aber der Test läuft erst.

Wenn SF das hält ca. 25 ELO mehr zur Version vom 03.11.2013 die ich zuletzt getestet habe. Und das in nur einem Monat !!
Die Version vom 05.12.2013 gefällt mir auch besser, spielt wieder aggressiver im Mittelspiel.
Denke zu Houdini 4 sind es wahrscheinlich unter meinen Bedingungen ca. 40 ELO (mal schauen wenn ich Houdini 4 dann teste). SF wird Houdini 4 wahrscheinlich im Februar / März eingeholt haben wenn dieses Tempo so weiter geht.

Vielleicht werde ich meine Ratingliste doch wieder veröffentlichen aber erst im kommenden Jahr.
So richtig fehlt mir die Motivation hierzu.

Ist auch nicht so wichtig ... spiele mit Ponder = on, 22.25 Minuten pro Partie auf i7 vierte mit 4.3 GHz und einem Core und 4-Steiner.

Im Grunde gleiche Bedingungen wie die SWCR-1 nur das die Hardware genau doppelt so schnell ist wie der Q9550 und ich daher 40 in 5 anstatt 40 in 10 spielen lasse.

Stats
Move average  : 179.89 = 89,945

White wins    : 3690 (35.14%)
Black wins    : 2590 (24.76%)
Draws         : 4220 (40.19%)
White perf.   : 55,24%
Black perf.   : 44,76%

ECO A00-A99   : 2184 games (20.8%)
ECO B00-B99   : 3034 games (28.9%)
ECO C00-C99   : 1654 games (15.8%)
ECO D00-D99   : 1891 games (18.0%)
ECO E00-E99   : 1737 games (16.5%)

Das ist geil ...
Ich produziere mit dem SWCR Buch das gleiche Verhältnis wie die aktuelle GM Theorie im ECO Code der letzten 5 Jahre. Meine das gleiche Verhältnis aber an dem Buch habe ich ja auch mehr als ein Jahr gearbeitet.

Hoffe die Änderung von Jörg ist dann in den kommenden Versionen enthalten.

Gruß
Frank

PS: Den einzigen wirklich Aussetzer in meiner Liste habe ich mit Komodo. Komodo 6 ist bei mir ca. 40 ELO schwächer als Houdini 3. Bei den vielen anderen Ergebnisse komme ich sehr gut an Deine Ergebnisse heran obwohl ich deutlich mehr Zeit gebe und deutlich mehr verschiedene Engines im Test habe. Das verwundert mich ein wenig. Aber auch an CEGT oder andere Listen sind bislang alle Ergebnisse plausibel. Lediglich bei Houdini gab es kleine Schwankungen bis Partienummer 750 ca.. Dann hatte ich hier aber auch wieder das durchschnittliche Ergebnis anderer Listen.
Parent - - By Chess Player Date 2013-12-07 10:30
Stockfish DD x64s  remis=47%
Stockfish DD adapC x64s  remis=46%


Remis durch 3fache Zugwiederholung wurden zwar reduziert aber im endeffekt bleibt remis=remis wie man sehen kann.
Parent - - By Stefan Pohl Date 2013-12-07 12:15
Chess Player schrieb:

<code>Stockfish DD x64s  remis=47%
Stockfish DD adapC x64s  remis=46%</code>

Remis durch 3fache Zugwiederholung wurden zwar reduziert aber im endeffekt bleibt remis=remis wie man sehen kann.


Stimmt zwar, aber die nervigen frühen Remisen durch Zugwiederholung sind eben deutlich reduziert. Dadurch ist auch die Dauer der Partien gestiegen von ca. 157 Sekunden pro Partie auf ca. 168 Sekunden pro Partie. Zudem hat bayeselo durch das Runden die Werte näher zusammengeführt, als sie sind. Die Remisquote ist de facto um fast 2% gefallen. Das ist nicht sehr viel, aber auch besser als Nichts.

Stefan
Parent - - By Lyudmil Tsvetkov Date 2013-12-07 12:49
Hallo, Stefan.
Wuerde interresant sein das Score von Stockfish DD mit adaptive Contempt gegen die Vorgaenger-Version mit dem Score gegen vielen Gegner als in Ihren Tests zu vergleichen.
Die andere interessante Info ist wie Stockfish DD mit Contempt scort gegen die verschiedenen Gauntlet-Gegner. Gibt es Faelle wo das Score substanziell hoeher oder niedriger wird?
Ist das Score gegen Gegner mit kleinerem Elo spuerbar gestiegen und gegen Top-Engines gefallen?

Zweifellos ein interresantes Experiment, aber man muss viele Sachen statistisch betrachten um eine Schlussfolgerung zu machen.

Gruss, Lyudmil
Parent - - By Jörg Oster Date 2013-12-07 14:18
Hallo Lyudmil,

schön, auch hier von dir zu lesen. Ich wusste gar nicht, dass du Deutsch kannst.

Hier die beiden Einzelergebnisse gegen die 10 Gegner:
Code:
Stockfish DD x64s             :10000 (+3375,=4673,-1952), 57.1 %

Houdini 4 x64                 : 1000 ( +231, =408, -361), 43.5 %
Komodo 6 x64                  : 1000 ( +293, =458, -249), 52.2 %
Amitis 130930 x64s            : 1000 ( +220, =646, -134), 54.3 %
Gull R600 x64                 : 1000 ( +325, =454, -221), 55.2 %
Strelka 5.5 x64               : 1000 ( +356, =439, -205), 57.6 %
Critter 1.6a x64              : 1000 ( +372, =434, -194), 58.9 %
Mars 1 avx                    : 1000 ( +351, =489, -160), 59.6 %
Bouquet 1.8 x64               : 1000 ( +392, =455, -153), 62.0 %
PanChess 00.537 x64           : 1000 ( +404, =459, -137), 63.3 %
Robbolito 0.085g3 x64         : 1000 ( +431, =431, -138), 64.6 %


Code:
Stockfish DD adapC x64s       :10000 (+3411,=4553,-2036), 56.9 %

Houdini 4 x64                 : 1000 ( +235, =395, -370), 43.2 %
Komodo 6 x64                  : 1000 ( +292, =448, -260), 51.6 %
Amitis 130930 x64s            : 1000 ( +229, =599, -172), 52.8 %
Gull R600 x64                 : 1000 ( +317, =489, -194), 56.1 %
Strelka 5.5 x64               : 1000 ( +320, =477, -203), 55.9 %
Critter 1.6a x64              : 1000 ( +347, =469, -184), 58.1 %
Mars 1 avx                    : 1000 ( +408, =419, -173), 61.8 %
Bouquet 1.8 x64               : 1000 ( +393, =438, -169), 61.2 %
PanChess 00.537 x64           : 1000 ( +404, =427, -169), 61.8 %
Robbolito 0.085g3 x64         : 1000 ( +466, =392, -142), 66.2 %


Die Punkte wurden also vor allem gegen Mars 1 und Robbolito geholt.
Leider werden die 'eingesparten' Remis-Partien nicht gleichmäßig auf Gewinn und Verlust aufgeteilt, sondern es werden merklich mehr Partien verloren. Ich denke, da besteht aber auch noch Verbesserungspotential. Die Idee an sich scheint aber nicht ganz so schlecht zu sein, wie manche hier im Vorfeld gemeint haben. 

Gruß, Jörg.

P. S. Nochmal vielen Dank an Stefan für diesen Test!
Parent - By Lyudmil Tsvetkov Date 2013-12-07 14:55
Hallo, Joerg.

Das CSS-Forum lese Ich sehr haeufig, es ist auch ein guter Ort ein bisschen Deutsch zu lernen.
Hier kann man vielen interessanten Sprachenwendungen lernen, und besonders sehr eindrucksvolle neue Worte, zum Beispiel
moin; Fazit; beratungsresistaent, Gerumpelschach, usw. Mann kann auch anderen merkwuerdigen Fakten zur Kenntnis nehmen,
als wie man Houdini 3 Settings veraendern kann, so dass die Engine kraeftiger spielt. 

Stockfish DD Contempt scheint mehr Punkte zu holen nur gegen Gull, Mars und Robbolito, aber fuer mich ist es nicht ganz klar ob diese Engines
zu den schwaechsten gehoeren. Also die Ansichtspunkt das die Contempt Version besser gegen schwaechere Gegner abschneidet, koennte
nicht wahr sein. Du sollst moeglicherweise also die noetigen Settings fuer Contempt auszusuchen, mit welchen Stockfish adapted das beste Score produziert.

Es tut mir leid fuer meine schlechte Deutsch-Kentnisse, aber am wenigsten bin Ich mir sicher das dieses Posting eine laechelnde Miene als Folge haben wird.

Gruss, Lyudmil
Parent - By Benno Hartwig Date 2013-12-08 06:44

> Leider werden die 'eingesparten' Remis-Partien nicht gleichmäßig auf Gewinn und Verlust aufgeteilt


Thanx für den Bericht.
Letztlich entspricht das Ergebnis halb der Erwartung, die ich hier skizzierte.

Wenn ich die Idee richtig verstand, dann gibt es viele Fälle, in denen deine Änderung keine anderen Züge bringt (dieselbe Zugentscheidung wird ggf. nur 'noch überzeugter' getroffen.) Und es gibt gelegentlich positiv bewertete Fortsetzungen, die dann tatsächlich, weil man ggf. aus einer schlecht aussehenden Stellung kommt, wegen einer noch stärker positiven Remisbewertung verworfen wird.

Erwartet hätte ich also
1) nicht weniger Remisen (das ist nicht bestätigt)
2) eine Schwächung des Programms (das ist wohl eingetreten)
Dass 1) nicht eintrat, mag aber auch grundsätzlich mit 2) zu begründen sein.

Benno
Parent - - By Frank Brenner Date 2013-12-07 15:28

> Ich kann nur hoffen, daß Jörg es schafft, Marco Costalba davon zu überzeugen, seine Modifikation in den "offiziellen" Stockfish zu integrieren.


Marco Costalba  wird keine Sekunde lang erwägen diese "schmutzige" Modifikation in den offiziellen Release einzubeziehen.

Es ist sogar trivial Stockfish so zu ändern dass in 100% aller Fälle ein Remis durch Stellungswiederholung vermieden wird, viel effizienter als mit dem Hick Hack über den contempt Faktor:

Man muss einfach bei der Erkennung der Stellungswiederholung in der Baumsuche nicht 0,0 sondern einen für Stockfisch negativen Score zurückliefern. Liefert man zb -100 zurück, so vermeidet Stockfisch jedes Stellungdwiederholungsremis  zu 100%, auch wenn "er" dadurch verlieren würde.

Grundsätzlich kostet es aber Spielstärke und zwar umso mehr Spielstärke umso häufiger Stockfisch gezwungen wird ein solches Remis zu vermeiden.
Parent - - By Jörg Oster Date 2013-12-07 18:21
Frank Brenner schrieb:

Marco Costalba  wird keine Sekunde lang erwägen diese "schmutzige" Modifikation in den offiziellen Release einzubeziehen.

Es ist sogar trivial Stockfish so zu ändern dass in 100% aller Fälle ein Remis durch Stellungswiederholung vermieden wird, viel effizienter als mit dem Hick Hack über den contempt Faktor:

Man muss einfach bei der Erkennung der Stellungswiederholung in der Baumsuche nicht 0,0 sondern einen für Stockfisch negativen Score zurückliefern.

Tja, und genau das definiert den Contempt Factor!
Sowas aber auch ...

Frank Brenner schrieb:
Liefert man zb -100 zurück, so vermeidet Stockfisch jedes Stellungdwiederholungsremis  zu 100%, auch wenn "er" dadurch verlieren würde.

Grundsätzlich kostet es aber Spielstärke und zwar umso mehr Spielstärke umso häufiger Stockfisch gezwungen wird ein solches Remis zu vermeiden.

Falsch, gegen erheblich schwächere Gegner bringt es Punkte.
Parent - - By Thomas Plaschke Date 2013-12-07 23:45
Jörg Oster schrieb:
Falsch, gegen erheblich schwächere Gegner bringt es Punkte.
"... und gegen starke/stärkere Gegner verliert es Punkte.", müsste man ergänzen, oder?

Damit würde der der Ansatz davon leben, dass es für Stockfish mehr schwache als starke Gegner gibt.

Ohne dass ich ein Experte für ELO-Berechnungen bin: - Könnte das die Existenzberechtigung für diesen Ansatz sein?
Eine weitere Frage als Gedankenexperiment: Was wäre, wenn man das bei vergleichsweise mittelstarken oder schwachen Engines einbaut?

Gruß
Th. Plaschke
Parent - By Jörg Oster Date 2013-12-08 11:12
Thomas Plaschke schrieb:

Jörg Oster schrieb:
Falsch, gegen erheblich schwächere Gegner bringt es Punkte.
"... und gegen starke/stärkere Gegner verliert es Punkte.", müsste man ergänzen, oder?

Ja, genau. Aber ich bezog mich da auf einen statischen Contempt Factor, wie von Frank im Vorposting beschrieben.
Und eben genau das ist ja der Ansatzpunkt für meine Idee. Gegen schwächere Gegner mehr Punkte holen ohne dabei gegen stärkere zu stark zu verlieren, wie es bei einem statischen Contempt leider der Fall ist.

Thomas Plaschke schrieb:
Damit würde der der Ansatz davon leben, dass es für Stockfish mehr schwache als starke Gegner gibt.

Ohne dass ich ein Experte für ELO-Berechnungen bin: - Könnte das die Existenzberechtigung für diesen Ansatz sein?
Eine weitere Frage als Gedankenexperiment: Was wäre, wenn man das bei vergleichsweise mittelstarken oder schwachen Engines einbaut?

Gruß
Th. Plaschke
Parent - - By Frank Brenner Date 2013-12-08 14:44
OKay, dann hab ich das nicht richtig im Kopf gehabt, also Stockfish berücksichtigt nur dann den contempt wenn ein technisches Remis in der Suche entdeckt wird (zu wenig material, 3 fache wiederholung, 50 züge usw...)

Im Allgemeinen ist dies aber die defensivste Methode den Contempt zu realisieren.

Besser wäre es, (ich glaub so wirds bei Houdini gemacht der ja nur Werte von 0,1,2 beim Contempt aktzeptiert), wenn bestimmte andere Merkmale ebenfalls mit dem Contempt bestraft werden. Dabei meine ich Merkmale die spieletheoretisch korrekt mit 0.0 bewertet werden müssten, aber von defensiver natur sind. Zb könnten es folgende Merkmale sein:

- beide Seiten haben die gleichen Schwerfiguren
- Alle Bauern die noch da sind stehen sich gegenüber
- Alle Bauern die noch da sind  stehen sich gegenüber und können einander nicht mehr schlagen
- wenige Schwerfiguren auf dem Brett

usw

Also alles Merkmale die eigentlich eine Bewertung von 0.0 verdienen,  jedoch negativ gewichtet werden sollten wenn zb Stockfish gegen einen  schwachen Gegner spielt.

All dies könnte die Engine mit dem Contempt faktor realisieren. Es obliegt dann dem Bediener des Schachprogramms diese Metainformation dem Schachprogramm vor dem Start der Partie mitzuteilen. Der Contempt Faktor wäre dann also eine freie Variable mit der der Bediener sein Schachprogramm vorab mit einer Information füttert die das Schachprogramm selber nicht so einfach selber feststellen kann (Stockfish merkt nicht ob es gegen Houdinii oder gegen Tante Ärna mit 300 Elo Spielt)

Deine Modifikation bindet den Contempt Faktor. Der Wert ist dann nicht mehr vom Benutzer einstellbar, die freie Variable wird gebunden.

Das finde ich eine sehr starke Beeinträchtigung.

Wie ermittelst du denn eigentlich welchen Wert die aktuelle (Wurzel?) stellung hat ? Nimmst du hierzu die Wurzelbewertung aus der vorhergehenden Iteration ?
Parent - By Jörg Oster Date 2013-12-08 18:06
Wenn dich das interessiert, hier https://chessprogramming.wikispaces.com/ findest du viele Informationen über Schachprogrammierung.
Und im Fishcooking-Forum https://groups.google.com/forum/?fromgroups=#!forum/fishcooking kannst du gerne deine Ideen einbringen.

Der Contempt-Factor ist in Stockfish übrigens frei einstellbar für den Benutzer, via UCI-Option.
Parent - - By Stefan Pohl Date 2013-12-08 05:55
Frank Brenner schrieb:

Marco Costalba  wird keine Sekunde lang erwägen diese "schmutzige" Modifikation in den offiziellen Release einzubeziehen.

Es ist sogar trivial Stockfish so zu ändern dass in 100% aller Fälle ein Remis durch Stellungswiederholung vermieden wird, viel effizienter als mit dem Hick Hack über den contempt Faktor:

Man muss einfach bei der Erkennung der Stellungswiederholung in der Baumsuche nicht 0,0 sondern einen für Stockfisch negativen Score zurückliefern. Liefert man zb -100 zurück, so vermeidet Stockfisch jedes Stellungdwiederholungsremis  zu 100%, auch wenn "er" dadurch verlieren würde.

Grundsätzlich kostet es aber Spielstärke und zwar umso mehr Spielstärke umso häufiger Stockfisch gezwungen wird ein solches Remis zu vermeiden.


Tja, nur Jörgs Modifikation kostet eben keine Spielstärke! Das hat der LS-Test ganz klar gezeigt. Deswegen ist diese Modifikation brillant und nicht "schmutzig".

Stefan
Parent - By Jörg Oster Date 2013-12-08 11:05
Ich würde eher sagen, es ist ein interessanter Ansatz, der zudem offensichtlich sogar recht gut funktioniert.
Parent - - By Benno Hartwig Date 2013-12-08 07:07 Edited 2013-12-08 11:34
Wie ist eigentlich das Kompilat erstellt worden? Ein 64bit-Kompilat ist es ja.
Mit welchem Kompiler wurde es erzeugt?
Und wie verhält sich die Geschwindigkeit im Vergleich zur originalen 64bit-DD-Version?
Haben wir ggf. eine Schwächung allein schon deshalb, weil die Geschwindigkeit schlechter ist?
(Asche auf mein Haupt, aber meine 64bit-Kompilate mit VS2012 sind immer noch spürbar langsamer als der originale SF-DD )
Benno
Parent - By Stefan Pohl Date 2013-12-08 07:18
Benno Hartwig schrieb:

Wie ist eigentlich das Kompilat erstellt worden? En 64bit-Kompilat ist es ja.
Mit welchem Kompiler wurde es erzeugt?
Und wie verhält sich die Geschwindigkeit im Vergleich zur originalen 64bit-DD-Version?
Haben wir ggf. eine Schwächung allein schon deshalb, weil die Geschwindigkeit schlechter ist?
(Asche auf mein Haupt, aber meine 64bit-Kompilate mit VS2012 sind immer noch spürbar langsamer als der originale SF-DD )
Benno


Jörg Oster hat mir das Compilat geschickt, ich compiliere nicht selber. Mußt du ihn fragen...Es war auf jeden Fall genauso schnell wie die offiziellen Stockfish-development-Versionen.

Stefan
Parent - - By Jörg Oster Date 2013-12-08 11:00 Upvotes 1
Mit dem gcc-Port für Windows, MinGW. Die Geschwindigkeit ist mehr als akzeptabel.
Bei Interesse poste ich gerne eine kurze Anleitung.

Tja, ich hatte mir auch mal Visual Studio Express installiert, etwas herumprobiert, und dann wieder gelöscht. War mir zu kompliziert bzw. zu viel Lernaufwand.
Dass ich dann auf Linux umgestiegen bin, das einfache Kompilieren der SF-Sourcen war mit ein Grund, habe ich bis heute nicht bereut. Ich muss allerdings dazu sagen, dass ich noch einen 2. PC im Einsatz habe, auf dem noch Windows 7 64bit läuft. Einfach weil ich auf ein paar Programme nicht verzichten möchte.
Parent - By Benno Hartwig Date 2013-12-08 11:15

> Bei Interesse poste ich gerne eine kurze Anleitung


Thanx, ja, ich hätte Interesse.
Allerdings würde ich auf Windows bleiben wollen. Gerade die von dir gemachten Projekteinstellungen, die Einfluss auf die Geschwindigkeit haben, helfen aber ggf. auch nativ unter Windows weiter.
Putzigerweise  sind meine 32bit-VS2010-Kompilate schön schnell, und die 32bit- und 64bit-VS2012-SP1-Kompilate sind um ärgerliche ca. 30% langsamer.
(Und was meinst du, wie oft ich die Projekteinstellungen schon rauf und runter verglichen habe. )
Benno
Up Topic Hauptforen / CSS-Forum / LS-Rangliste: Stockfish DD mit adaptive Contempt

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill