Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Engines testen mit simulierten ELOs ...
- - By Frank Quisinsky Date 2013-09-02 08:52 Edited 2013-09-02 08:57
Hallo,

nehmen wir mal an eine Person möchte Stockfish selbst ein wenig testen und Stockfish Versionen vergleichen.
Anstatt Stockfish - Stockfish testen würde sich folgendes anbieten.

Wir simulieren einfach die ELO der Gegner um die Unterschiede bei Stockfish zu erkennen.

Stockfish im Spießroutenlauf unter der Shredder GUI gegen 19 Gegner ...
Dafür muss ein einzelner nun nicht selbst eine Liste aufbauen.

Nichts anderes machen die Ratinglistenersteller ja auch mit Shredder, also warum aufgrund der vorhandenen Ergebnissen nicht mit allen anderen auch?
Kleines Gedankenspiel ...

01. 3070, Houdini 3 Pro x64
02. 3030, Komodo 5r2 x64
03. 3020, Stockfish 4 SSE42 x64
04. 2990, Critter 1.6a x64
05. 2980, GullChess 2.2 x64
06, 2970, Equinox 2.00 x64
07. 2960, Rybka 4 Exp.42 x64
08. 2950, Robbolito 0.21q SSE42 x64
09. 2860, Chrion 1.5 x64
10. 2850, Protector 1.5.0 JA x64
11. 2840, Hiarcs 14 WCSC w32
12. 2830, Naum 4.2 x64
13. 2820, Hannibal 1.30 x64
14. 2800, Shredder 12 w32
15. 2790, Sjeng c't 2010 w32
16. 2790, Spike 1.4 Leiden w32
17. 2760, Spark 1.0 x64
18. 2760, Booot 5.2.0 x64
19. 2750, Junior 13.3 x64
20. 2730, Quazar 0.4

Ob jetzt 2730 bei Quazar oder 2.734 oder 2.740 oder 2.720 interessiert in Wirklichkeit niemanden so wirklich.
Interessanter ist eher die Reihenfolge und die stimmt bei den unterschiedlichen Listen wie sich immer wieder zeigt.

Die ELOs sind also aufgrund mir bekannter Ergebnisse geschätzt bzw. aus eigenen und der bekannten Auswertungen.
Bei verschiedenen habe ich jetzt einfach einen Wert gesetzt, zu wenige oder keine Ergebnisse.

Wäre ne Idee für jemanden der für einen Programmierer etwas testen möchte oder der sich im Grunde nur für eine Engine interessiert und wissen möchte wie sich diese entwickelt. Finde das macht mehr Sinn für Personen die nun keine Ratingliste haben aber selbst ein paar Ergebnisse produzieren möchten. Die Liste der Engines zwar hier die TOP-20 mit einer privaten Equinox und einigen kommerziellen. Nicht jeder hat diese Engines, also in diesem Fall kann die Liste ja mit anderen Engines ergänzt werden.

Wenn nun Stockfish 4 3.030 produziert und Stockfish Test Version 3.040 bei gleicher ELO der Gegner ist das interessanter als der Stockfish Test ... 3 ELO mehr oder 5 ELO mehr weil dies viel aussagekräftiger ist. Die vielen und sehr guten Zahlen der Listenbetreiber müssen auch nur mal entsprechend eingesetzt werden. Und am besten beim produzieren vielleicht unter gleichen Bedingungen wie bei CEGT, denke die Listenbetreiber freuen sich auch mal Partiematerial zu bekommen, welches verwertbar ist.

Gruß
Frank
Parent - - By Stefan Pohl Date 2013-09-02 09:03
[quote="Frank Quisinsky"]
Hallo,

nehmen wir mal an eine Person möchte Stockfish selbst ein wenig testen und Stockfish Versionen vergleichen.
Anstatt Stockfish - Stockfish testen würde sich folgendes anbieten.

Wir simulieren einfach die ELO der Gegner um die Unterschiede bei Stockfish zu erkennen.

Dafür muss ein einzelner nun nicht selbst eine Liste aufbauen.

[/quote]

Was du hier vorschlägst halte ich für statistisches Harakiri... Für mich war einer der primären Gründe die LS-Rangliste aufzubauen genau dieser: eine Datenbasis zu schaffen, um neue Engineversionen (anhand und im Vergleich zu dieser Datenbasis) bewerten und einordnen zu können. Da kommt man einfach nicht dran vorbei, mit keinem noch so originellen oder eleganten statistischen Winkelzug...Mathematik im allgemeinen und Statistik im Besonderen kann man nun mal nicht "simulieren". Ebensowenig Ausgangs-Elozahlen. Das wäre viel zu unpräzise, um die geringen Spielstärkeunterschiede von den vielen Stockfish-Development-Versionen zu messen.

Stefan
Parent - By Frank Quisinsky Date 2013-09-02 09:08 Edited 2013-09-02 09:12
Hi Stefan,

weiß nicht.
Durchschnittsspielstärke bilden bei CEGT Blitz, Ipon und CEGT 40 in 20 und auch meinen Ergebnissen, ein bissel auffrischen mit bekannten Ergebnisse noch längerer Bedenkzeiten. Dann haben wir aufgrund der x Tausend gespielten Partien einen Durchschnittswert. Nach dem Motto die Arbeit der Ratinglistenbetreiber sinnvoll einsetzen. Dieser Durchschnittswert eignet sich sehr gut wenn Du wissen willst wie sich eine Engine entwickelt. Wichtig hierbei ist meines Erachtens nur, dass es genug Gegner sind. Wir wissen das Protector zulegt, wissen das Houdini abnimmt. Ferner bestimmen wir ja den Durchschnitt. Schalten das Hauptproblem damit etwas aus.

Eine ELO im Computerschach muss meines Erachtens nicht genau sein bis auf den Punkt (geht eh nicht, zu viele Beeinflussungsfaktoren bei unterschiedlichen Testbedingungen).

Ich denke das z. B. bei einem Stockfish Test und dieser Methode ein deutlich besseres Ergebnis herauskommt wenn 2 Stockfish Versionen gegen 19 Gegner mit gleicher ELO aufeinander gehetzt werden.

Natürlich ist das Spielerei aber Simulation ist das a und o in der Engine Entwicklung und warum nicht auch bei der ELO Ermittlung.
Vielleicht müssen wir nur mal von der eingefahrenen Denke weg.

Denke wir machen uns das alle viel zu schwierig ...

Wie gesagt ...
Mit dem geringsten Aufwand den größtmöglichen Erfolg erzielen ist das Thema !!

Strom wird teurer.
Glaube nicht das die SPD es schafft den Preis zu halten und auch nicht das es weniger wird.
Finde der wird unnötig verplempert.

Gruß
Frank
Parent - - By Frank Quisinsky Date 2013-09-02 09:22 Edited 2013-09-02 09:25
Hi Stefan,

maßgebend ist ja auch nicht das Einzelergebnis der 19 Gegner.

Will heißen:
die 19 haben 2.870 ELO im Durchschnitt ...
Nur diese 2.870 sind bei einem solchen Test (z. B. Stockfish gegen die 19) entscheidend bzw. ist entscheidend das die 2.870 durch 19 unterschiedliche Engines gesicherter sind als eine 2.870 von einem Gegner zur Ermittlung einer Spielstärke des Testkandidaten.

Wird nun nach dieser Methode Stockfish Beta gegen diese 19 bei Durchschnitt 2.870 angesetzt kommt ein besseres Ergebnis heraus als gegen einen Gegner mit 2.870 oder einer beliebig anderen Zahl.
Bei einer zweiten Test unter gleichen Bedingungen haben wir ein besseres Ergebnis.

Musst weg davon die 19 ELOs der Gegner als feste Größe zu sehen, eher als sich ergänzende Größe.

Gruß
Frank

Im Grunde kannst Du auch folgendes machen ...
Alle 19 Gegner mit 2.870 ELO festsetzen, versteht Du was ich meine ...
Parent - - By Frank Quisinsky Date 2013-09-02 09:35 Edited 2013-09-02 09:43
Übrigens, was verblüffend ist, ist die ELO-Verteilung der 19 im Verhältnis zum Durchschnitt.
Meine ob es 2.870 oder 2.874 oder 2.866 sind ist EGAL !!

Nehme ich z. B. das Beispiel von Ingo von gestern (Bayes Berechnung CEGT) und errechne den Durchschnittswert der TOP-20 mit den der IPON der TOP-20 (was vorhanden ist) dann stelle ich fest, dass dieser in etwa gleich ist. Ob nun ein Critter 2.970 oder 2.990 hat spielt bei 19 Engines dann kaum noch eine Rolle weil die andere mehr oder weniger aber beim Durchschnitt in etwa ein gleicher Wert. Und nur dieser ist wie gesagt entscheidend.

Wichtig ist im Grunde nur die ELO der 19 im Durchschnitt und diese ist ... simuliert bei dem was vorliegt ... glaube mir ... sehr genau.

Für den Stockfish Test gegen die 19 ist für die genaue Berechnung von Stockfish im Grunde genau nur das interessant.

Finde den Ansatz für viele Computeschächler interessant. So kann jeder selbst mit viel Spaß im Kämmerlein und weniger Aufwand als bei den Listenbetreibern mal etwas feststellen.
Ist der Sinn des Postings.

Viele Grüße
Frank

Also, es macht Sinn bei den 19 eher zu sagen, alle 19 Gegner haben 2.870 !!!
Dann sehe ich beim Spießroutenlauf unter der Shredder GUI noch viel interessantere Ausgaben
Parent - - By Simon Gros Date 2013-09-02 09:50
Weshalb so kompliziert?
Man nehme:
Engine A, B, ... T, also 20 total.
Gegen diese 20 Engines läßt man Proband Nummer 1 spielen und erhält ein Ergebnis X.
Danach wiederholt man das Ganze, unter sonst identischen Bedingungen versteht sich,
mit Proband Nummer 2, Nummer 3 etc. Bei ausreichend hoher Partienanzahl erhält man
eine zuverlässige Aussage welcher Proband der Beste ist. Umrechnen in ELO kann man,
so es denn unbedingt notwendig erscheint auch nachträglich noch!
Simon Gros
Parent - - By Frank Quisinsky Date 2013-09-02 10:15 Edited 2013-09-02 10:19
Hi Simon,

ja das stimmt, siehe Beitrag den ich gerade geschrieben habe.
Aber in den Ratinglisten geht es ja darum einen Spielstärkeunterschied in ELO auszudrücken und das so genau wie möglich.

Glaube genauer wird es wenn viele Gegner mit einer festen durchschnittlichen Zahl genommen werden, anstatt nur eine Engine auf die eine Liste geeicht wird.

Gruß
Frank

Beispiel:
Wir haben 20 Gegner mit einer festen durchschnittlichen ELO von 2.870 und bauen z. B. auf diese 20 eine Ratingliste auf ...

Die könnte dann so aussehen:

01. Stockfish 30.08.          3.035
02. Stockfish 28.08.          3.031
oder für Stefan Pohl dann ...
03. Panchess x                  3.025
04. Ivanhoe x                    3.020
05. Bouquet x                   3.010
06. RobboLito                   3.020

Ich glaube das bei Stefan ganz andere Ergebnisse herauskommen werden.
Glaube nicht in der Reihenfolge der Engines die Stefan getestet hat aber die Ratings würden genauer werden.
Wir könnten besser vergleichen.

Die ganzen Clones gehen mit einer sehr genauen ELO raus ... die verbindlicher ist von der Aussagekraft was das Rating im Vergleich zu den anderen Engines !!

Gruß
Frank
Parent - - By Simon Gros Date 2013-09-02 10:23
Will man den Unterschied in ELO ermitteln, dann nimmt man einfach an, daß die Gegner einen
Durchschnitt von 2800 haben. Das funktioniert natürlich auch mit allen anderen Werten, wir
wollen ja lediglich den Unterschied zwischen den einzelnen (Test)Versionen messen.

Beispiel:
das Resultat von Proband Nummer 1 ist 517,5 aus 1000 Spielen und verteilt sich wie folgt:
+ 350 = 335 - 315

ELO-Stat gibt dann aus:
Wins   = 350
Draws  = 335
Losses = 315
Av.Op. Elo = 2800

Result     : 517.5/1000 (+350,=335,-315)
Perf.      : 51.7 %
Margins    :
68 %      : (+  1.3,-  1.3 %) -> [ 50.5, 53.0 %]
95 %      : (+  2.5,-  2.5 %) -> [ 49.2, 54.3 %]
99.7 %    : (+  3.8,-  3.8 %) -> [ 47.9, 55.6 %]

Elo        : 2812
Margins    :
68 %      : (+  9,-  9) -> [2803,2821]
95 %      : (+ 18,- 18) -> [2795,2830]
99.7 %    : (+ 27,- 27) -> [2786,2839]

Proband Nummer 2 erspielt 526,0 aus 1000 Spielen mit folgender Verteilung:
+ 358 = 336 - 306
was folgenden Ausgabe zur Folge hat:

Wins   = 358
Draws  = 336
Losses = 306
Av.Op. Elo = 2800

Result     : 526.0/1000 (+358,=336,-306)
Perf.      : 52.6 %
Margins    :
68 %      : (+  1.3,-  1.3 %) -> [ 51.3, 53.9 %]
95 %      : (+  2.5,-  2.5 %) -> [ 50.1, 55.1 %]
99.7 %    : (+  3.8,-  3.8 %) -> [ 48.8, 56.4 %]

Elo        : 2818
Margins    :
68 %      : (+  9,-  9) -> [2809,2827]
95 %      : (+ 18,- 18) -> [2801,2836]
99.7 %    : (+ 27,- 27) -> [2791,2845]

Proband Nummer 2 ist also 6 ELO Punkte besser als Probant Nummer 1 bei einer "Unsicherheit" (95%)
von + 18 - 18. Daran sieht man auch sehr gut, daß 1000 Partien bei weitem nicht ausreichen um hier
von besser/schlechter zu sprechen.
Simon Gros
Parent - - By Frank Quisinsky Date 2013-09-02 11:06
Hallo Simon,

dass ist der Irrläufer ...
Nicht die Anzahl der Partien alleine ... sondern maßgebender die Anzahl der Gegner.

Bei 1.000 Partien hatte ich in der SWCR nur bei 3 Engines eine Abweichung die größer als 20 war bei nun wirklich ausreichend Gegner.
Durchschnittlich waren es 4 ELO.

Wie gesagt, bin da eher der Praktiker und glaube das was ich sehe nicht das was mir vorgegeben wird.

Aber wie gesagt, solche Zahlen wie jetzt hier die 4 nur bei ausreichend Gegner.

Gruß
Frank

Geht aber eigentlich darum genauere ELOs zu ermitteln.
Natürlich ist das Beispiel von Dir plausibel aber das ist nicht der Aufhänger für mich bei den Ausführungen.
Parent - - By Simon Gros Date 2013-09-02 11:26
Dann habe ich den "Aufhänger" bis jetzt noch nicht verstanden?!
Ich dachte es geht um "eine Person", welche selbst ermitteln möchte, wie stark denn die einzelnen Stockfish-Versionen im Vergleich zu einer gewissen Gegnerschaft sind. Dieser Person soll soweit geholfen werden, als daß sie die bereits vorhandenen ELO-Werte aus den einschlägigen Listen hernimmt, als Grundlage quasi.
Richtig bisher?
Falls ja, genau dies habe ich oben simuliert, also 20 Gegner für die Stockfish-Testlinge festgelegt und aus deren Zahlen (den einschlägigen Listen entnommen) einen Durchschnitt gebildet, im Beispiel 2800, es würde jedoch mit jeder anderen beliebigen Zahl ebenso funktionieren. Und dabei kam heraus (welch Wunder?), daß 1000 Spiele (also 20x50 im Beispiel) bei weitem nicht ausreichen um die meist geringe Steigerung der (täglichen) Stockfish-Testlinge untereinander zu messen.
Würde man nun 100 Gegner jeweils 10 Spiele gegen diese Stockfish-Versionen spielen lassen, so würde sich an der Auswertung überhaupt nichts ändern!

Für mein Beispiel reichen noch nicht mal 10000 Spiele aus um +- 6 Punkte Unterschied zu messen, siehe (ELO-Stat):
Wins   = 3580
Draws  = 3360
Losses = 3060
Av.Op. Elo = 2800

Result     : 5260.0/10000 (+3580,=3360,-3060)
Perf.      : 52.6 %
Margins    :
68 %      : (+  0.4,-  0.4 %) -> [ 52.2, 53.0 %]
95 %      : (+  0.8,-  0.8 %) -> [ 51.8, 53.4 %]
99.7 %    : (+  1.2,-  1.2 %) -> [ 51.4, 53.8 %]

Elo        : 2818
Margins    :
68 %      : (+  3,-  3) -> [2815,2821]
95 %      : (+  6,-  6) -> [2813,2824]
99.7 %    : (+  8,-  8) -> [2810,2826]

Ich bitte um Aufklärung was ich falsch verstanden haben soll.
Simon Gros
Parent - - By Frank Quisinsky Date 2013-09-02 12:58 Edited 2013-09-02 13:03
Hi Simon,

die ELO Margin von ELOstat, Bayesian etc. sind mir egal weil die Programme die Anzahl der Gegner nicht entsprechend berücksichtigen.
Wirst immer gleiche Margin's erhalten ob Du nun einen oder mehrere Gegner hast.

Insofern berechne ich die selbst anhand der SWCR Daten bzw. Simulationen in Verhältnis zur Anzahl der Gegner.

Viele Grüße
Frank

Der Irrglauben, x Partien sind notwendig um eine genaue ELO zu bekommen.
Natürlich sind die Anzahl der Partien wichtig, aber werden immer weniger je mehr Gegner Du hast ...
Oder kannst 1.000.0000 Partien zwischen zwei Engines gespielt haben aber die Abweichungen sind größer als 100 (grob gesagt) und gehen immer weiter runter mit mehr Gegner, bzw. wird die Anzahl der Partie wie gesagt immer weniger.

Um auf ein +- 4 zu erreichen brauchst Du nach meinen Berechnungen im Grunde 24 Gegner bei 40 Partien pro Match, also 960 Partien.
Dann wird's weniger mit mehr Gegner ...

Also bei 26 Gegner sind es 920 Partien ...

Und da wäre die Schwelle auch schon erreicht ... bei mir als 26 Gegner wird die Anzahl der Partien nur geringfügig weniger.
Optimal sind im Grunde 20-26 Gegner bei 1.200-920 benötigte Partien für eine Aussage von 4 ELO genau bei der ungenauen ELO-Berechnung die wir haben.
Parent - - By Simon Gros Date 2013-09-02 14:23
Kann man das irgendwo nachlesen und/oder gibt es Beweise für diese Behauptung? Oder ist das "lediglich" ein Bauchgefühl? Ich kann mir ehrlich gesagt absolut keinen Reim darauf machen. Weshalb sollen wenige Spiele gegen mehrere Gegner besser sein als viele Spiele gegen wenige Gegner? Ich persönlich würde behaupten, daß möglichst viele Spiele gegen möglichst viele Gegner die genaueste Messung bringt. So machen es alle mir bekannten seriösen Listenbetreiber. Wäre dem nicht so, so könnten sich diese doch eine Menge Zeit, Geld und vor allem Arbeit sparen?!  Habe ich etwas wichtiges übersehen?
Simon Gros
Parent - - By Frank Quisinsky Date 2013-09-02 15:41
Hi Simon,

natürlich ...
Viele Spiele bei vielen Gegnern ist immer besser ...

Aber nochmal:
Irgendwann macht die Anzahl der Spiele keinen Sinn mehr.
Interessant ist festzustellen wie viele Partien bei wie vielen Gegnern.

Da wir ja nur eine begrenzte Anzahl an Engines haben die sage ich mal nicht mehr als 400 ELO im TOP Bereich auseinander liegen, stellt sich für einen Ratinglistenersteller (zumindest nach meiner Logik) die Frage wie viele Partien müssen die dann gegeneinander spielen um möglich genaue Zahlen dieser Gruppe an Engines untereinander zu produzieren.

Glaube Bob schrieb mal er spielt 15.000 Partien um die ERR Bar bei neuen Versionen zu minimieren.
15.000x Crafty gegen Crafty um was genau festzustellen, die Frage stelle ich mir heute immer noch!

Damit irgend ein dummes Berechnungsprogramm ausgibt ErrBar = 1 oder 2 oder 3

Da spielt Crafty 15.000 gegen sich die gleichen und gleichen Fehler die a nicht zu einer Aussage führen und b irreführend sind.

Wenn Gladbach nun immer gegen Leverkusen 3:1 verliert aber gegen Bremen immer 4:1 gewinnt, was passiert wenn Bremen plötzlich Leverkusen schlägt.

Gruß
Frank
Parent - - By Peter Martan Date 2013-09-02 16:32
[quote="Frank Quisinsky"]
Wenn Gladbach nun immer gegen Leverkusen 3:1 verliert aber gegen Bremen immer 4:1 gewinnt, was passiert wenn Bremen plötzlich Leverkusen schlägt.
[/quote]

Frank kommt der Intransitivität von Ratingsystemen auf die Spur.

Bravo, Frank, jetzt sag mir dann aber noch, wie ist das, wenn Houdini im Evans- Gambit gegen Komodo immer gewinnt und gegen Stockfish immer verliert, dieser aber wieder gegen Komodo den Schuh hat, es im Damengambit aber wieder ganz anders ist?
Die Sache beginnt mich zu interessieren...
Parent - - By Frank Quisinsky Date 2013-09-02 16:39
In dem Fall ...
Schmeiß die ganze Test Scheiße aus dem Fenster raus, inklusive den ganzen Rechnern ... Tastatur und Maus hinterher ... sonst kommste Morgen auf die Idee wieder neu anzufangen.
Mensch ...
Parent - By Peter Martan Date 2013-09-02 16:49

Jetzt sei nicht gleich wieder so, du hattest doch genau den richtigen Ansatz!
Es kommt nur auf das relative Ranking an, in was für Einheiten du die Abstände zählst, ist schnurzpiep, du musst dir nur im Klaren sein, dass es nur deshalb, weil es Elo heißt, absolut nicht mehr Aussagekraft hat, als wenn es Centipawn sind, wär auch mal was, Houdini hat gegen Stockfish +0.01, wenn folgende andere engines mitspielen...
Parent - - By Benno Hartwig Date 2013-09-02 15:09
[quote="Frank Quisinsky"]Natürlich sind die Anzahl der Partien wichtig, aber werden immer weniger je mehr Gegner Du hast ...
Oder kannst 1.000.0000 Partien zwischen zwei Engines gespielt haben aber die Abweichungen sind größer als 100 (grob gesagt) und gehen immer weiter runter mit mehr Gegner, bzw. wird die Anzahl der Partie wie gesagt immer weniger.[/quote]Ich finde diese These einigermaßen überraschend.
Kannst du sie begründen?

Ein wenig mag ein Effekt hineinspielen, dass eine Engine einen bestimmten Gegner gern mag (häufiger gewinnt als erwartet) oder nicht mag (seltener gewinnt als erwartet). Da sind ggf. zu wenige Gegner nachteilig, aber ich erwarte allenfalls marginale Effekte.

Der einzelne gegnerische ELO-Wert mag etwas neben der wirklichen Spielstärke liegen. Spiele ich viele Spiele gegen wenige Gegner, mag sich auch das sehr gering verfälschend auswirken. Viele Gegner würden das eher wegmitteln. Diesen Effekt sehe ich auch als sehr klein an.

Ansonsten aber sollte es doch Wurst sein, ob ich gegen einen einzigen Gegner mit ELO 2000 genau 100 mal spiele, oder ob ich gegen 100 verschiedene Gegner mit genau 2000 ELO je 1 mal spiele. Oder meinst du, ich habe da was übersehen?

Benno
Parent - By Frank Quisinsky Date 2013-09-02 15:28
Hi Benno,

es kommt darauf an welche beiden Engines gegeneinander spielen.

Also vermutlich ist die ELO bei 100 Gegner mit unterschiedlichen Ratings und Spielstilen anders.
Logisch ... erinnere mich an einem Russen der bei mir während eines Schachevents schlief.

Spielte seinerzeit mit ca. 2.000 - 2.100 ELO. Er hatte offiziell 2.375 ELO.
Spielte bestimmt 20x gegen Ihn und machte ca. 80%. Er kam mit meinem Stil einfach nicht klar.
Umgekehrt hatte ich einen Spieler im Verein der offiziell bei 1.800 nach vielen Partien lag gegen den ich kaum eine Chance hatte.

Mache doch das Experiment ...
Lasse (nehmen wir mal ein krasses Beispiel) Toga - Hiarcs spielen
100 Partien ... nehme den Durchschnittswerts aus der Liste von Ingo dieser beiden Engines.

Dann mache eine ELO-Auswertung von dem Match und vergleiche mit den Zahlen von Ingo.
Du wunderst Dich ...

Optimal ist ...
Eine gewissen Anzahl an Partien gegen x Gegner ...

Also ich stellte fest das bei 40 Partien ca. 22-26 Gegner notwendig sind um eine genaue ELO von bis zu 4 zu erreichen.
Bei 40 Partien und 18 Gegner waren es ca. 12 ...
Bei 40 Partien und 16 Gegner waren es ca. 18 ...

Nur bei 40 Partien und z. B. 30 Gegner als im direkten Vergleich 26 Gegner regt sich kaum noch etwas hinsichtlich Genauigkeit ...

Daher meine Feststellung seinerzeit:
X Partien bei X Gegnern reichen aus.

Gruß
Frank
Parent - - By Frank Quisinsky Date 2013-09-02 10:09
Hi,

gehe sogar noch weiter ... die Berechnungen werden gar genauer als bei CEGT und IPON
Wenn alle mit 2.870 bewertet werden und dann eine Engine gegen Durchschnitt 2.870 getestet wird.

Warum?
Shredder 12 w32 ist das Problem.
Habe ja fast 10.000 Shredder Partien in der SWCR.
Nehme ich nur die "moderneren neueren Engines, meist Engines die auch deutlich besser sind" kommt Shredder 12 w32 gerade mal auf 2.770. Gegen ca. gleich starke spielt Shredder erfolgreich und erreicht ca. 2.810 und gegen schwächere ca. 2.820. Wird nun eine ganz Liste auf Shredder geeicht und das Verhältnis von schwächer, gleich, stärker stimmt nicht werden alle ELOs der aufgenommenen Engines mit beeinflusst, egal wie viele Partien dann vorhanden sind. Weil ja alles auf Shredder geeicht wird.

Um genauere ELO Zahlen zu produzieren müssten wir eigentlich sagen:
Shredder fest mit 2.800, Rybka fest mit 2.950, Protrector fest mit 2.850 und je mehr dazu kommen desto genauer das Ergebnis aller anderen.

Und wenn wir direkt für 19 einen festen Wert setzen, nach allen vorliegenden Ergebnissen der testenden Gemeinschaft" wird das Ergebnis der getesteten Engine genauer.

Logisch ...
1000 Partien sind besser als 100
100 Gegner sind besser als 10
10 feste Eichungen sind besser als 1

Im Grunde brauchen wir hierzu ja die ELO nicht.

Stockfish 4 erreicht nach 1.000 Partien gegen 21 Gegner ein 700:300
Stockfish x erreicht nach 1.000 Partien gegen 21 Gegner (gleiche Gegner, gleiche Voraussetzungen) ein 720 : 280

Aber da wir ja alles in ELO ausdrücken wollen ... und diese möglichst genau sein soll.

Wobei ich denke, die richtige Gewichtung ist nach diesen Experimenten:
1. Viele Gegner um einen sicheren Durchschnittswert zu ermitteln.
2. Anzahl der Partien

Je mehr Gegner desto weniger Partien werden notwendig.

Gruß
Frank

Oder ...
Nehmen wir an Ingo würde einen Ferret testen der gerade von Bruce Morland herausgekommen ist.
Er setzt seine TOP-20 an ... Er könnte den Durchschnitt der TOP-20 errechnen und alle mit 2.870 antreten lassen wenn 2.870 der Durchschnitt ist.
Das Endergebnis ist das Gleiche.

Gruß
Frank
Parent - - By Stefan Schiffermüller Date 2013-09-02 13:55
[quote="Frank Quisinsky"]Je mehr Gegner desto weniger Partien werden notwendig.[/quote]Obwohl ich es nicht genau mathematisch beweisen kann, so würde ich trotzdem felsenfest das Gegenteil behaupten.

Stefan
Parent - By Jörg Oster Date 2013-09-02 14:06
Ich denke, du hättest recht ... 
Parent - By Frank Quisinsky Date 2013-09-02 15:09 Edited 2013-09-02 15:18
Hi Stefan,

Du kannst es sehr einfach nachvollziehen.
Lade auf meinen Webseiten die SWCR Datenbank herunter. Dort haben viele Engines mehr als 30 Gegner.
Nehme Gegner raus, füge ein etc..

Das ist einfach!
Nichts anderes habe ich auch gemacht und die Datenbasis ist da weil in der SWCR Datenbank immer jedes Match 40 Partien hat.
Shredder hatte z.B. bei 9000 Partien rund 200 Gegner ...

Und ganz ehrlich, macht gar Spaß festzustellen wo unsere Statistik Programme Lücken haben.

IPON oder SWCR produzierten immer sehr genaue Zahlen, weil ausreichend Gegner da sind. Kommt eine neue Engine erhalten die alten einen neuen Gegner mit 40 Partien und die neue Engine selbst zunächst 19 Gegner. Die aktuellen Engines in einer Liste erhalten daher eine genauere Berechnung. Problematisch hierbei ist ... wenn z. B. zu viele Stockfish Versionen eingehen ... dann hatte irgendwann ein Naum 4.2 10x eine Stockfish Version als Gegner weil von Naum kein Update mehr kommt. Das ist dann wieder schlecht.

Ingo könnte ja z. B. bei der Anzahl seiner Partien sehr schön simulieren.
Er nimmt die TOP-20 und produziert eine Ratingliste mit den ersten 50 Partien von den Matches ... hat dann 950 Partien ... dann die zweiten 50 dazu ... hat dann 1.900 (schon lange mehr als ausreichend, je nach Anspruch an Genauigkeit) und dann dann die restlichen 100 Partien dazu.

Das Ergebnis nach 1.900 Partien der 20 Engines wird nicht groß abweichen zu dem Ergebnis nach 3.800 Partien der 20 Engines.
Und wenn Du nun anstatt 50 Partien, 40 Partien pro Match nimmst und zwei Gegner hinzufügst ... Du wirst schnell merken ... die Anzahl der Partien die benötigt wird, wird geringer.

Viele Grüße
Frank
Parent - - By Frank Quisinsky Date 2013-09-02 09:03 Edited 2013-09-02 09:10
Bei dieser Testmethode könnten wir dann sehr einfach folgendes feststellen ...

Stockfish spielt mit 40 in 1, 40 in 3, 40 in 5, 40 in 10 etc..
Das wäre einfacher und geht schneller um z. B. festzustellen wie sich eine Engine bei mehr Zeit entwickelt.

Das nun andere in der Liste sich auch nach unten oder oben entwickeln ist unerheblich, der Zufallsfaktor wird ausgeglichen durch die Anzahl der Engines zumal wir wissen das ab einer gewissen Zeit die Sprünge nicht so hoch sind. Schätze mal nach den letzten Erkenntnissen vielleicht max. 40 ELO bei einzelnen Engines mit mehr Zeit weniger oder mehr an ELO.

Wer sich also dafür interessiert wie denn nun Junior mit mehr Zeit zulegt hat jetzt vielleicht eine kleine Idee erhalten.
Oder natürlich auch wie sich die Versionen nach unten oder oben entwickeln.

Viele Grüße
Frank
Parent - - By Joe Boden Date 2013-09-02 10:04
Gut gedacht Frank.

Und weiter ist es ja von grossem Interesse, welche Gegner man auswählt. Die ELO ansich spielt noch nicht mal eine grosse Rolle. Einige spielen gegen bestimmte Engines sehr schlecht. Hätten wir einen Überhang oder Unterhang solcher Gegner, würde das die Liste verfälschen. Aber ich ermittle sowieso für mich privat in letzter Zeit immer, wie sich eine bestimmte Engine innerhalb eines bestimmten Testfeldes behauptet. Ich nenne das den Competition-Factor.
Ob nun beispielsweise Stockfish 4 gegen Houdini ein leichtes Plus-Score hat, sagt nichts über den Competion-Factor aus.
In Turnieren erlebe ich immer wieder, dass eine nominell stärkere (ELO) Engine im Gesamtfeld sich nicht an die Spitze setzen und bleiben kann.

Siehe hierzu auch meinen Vergleichsthread mit Stockfish und Stockmeister.

Also Deine Idee Frank ist prüfenswert.
Parent - By Frank Quisinsky Date 2013-09-02 10:22
Ja das wäre was für Dich wenn Du eine Engine testen möchtest.
So produzierst Du auch mal endlich ein vernünftiges Ergebnis

Gruß
Frank
Parent - - By Stefan Schiffermüller Date 2013-09-02 11:17
Hallo Frank,

Ich glaube ich weiß, worauf du hinaus willst. Wenn man z.B. 2 Stockfish-Versionen vergleichen will, so benötigt man eigentlich die ELO der Gegner nicht, sofern beide Stockfish-Versionen gegen die selben Gegner spielen. Der Unterschied in der Gesamtperformanz genügt, um die ELO-Differenz der beiden Stockfish-Versionen zu ermitteln. Wenn man das mit einem ELO-Auswertungsprogramm berechnen will, dann tut man einfach so, als hätten beide Stockfish-Versionen nur gegen einen (und den selben) Gegner gespielt, dessen ELO man einfach auf einen beliebigen Wert x festsetzt. Dann trägt man die Gesamtpunktzahl für die entsprechende Stockfish-Version gegen diesen fiktiven Gegner in das Auswertungsprogramm ein.

Ich glaube, es geht noch einfacher. Man lässt einfach vom Auswertungsprogramm für die beiden Stockfishe eine ELO berechnen, ohne die ELO der Gegner festzulegen. Die Differenz der beiden ELO-Werte muss nun aber noch mit 2 multipliziert werden.

Gruß Stefan
Parent - By Stefan Schiffermüller Date 2013-09-02 11:38
Kleine Ergänzung. Wenn man die Berechnung für beide Stockfish-Versionen gleichzeitig im ELO-Auswertungsprogramm durchführt, dann kann man die ELO-Differenz direkt ablesen (und muss sie nicht mit 2 multiplizieren).
Up Topic Hauptforen / CSS-Forum / Engines testen mit simulierten ELOs ...

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill