Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Kleines Stockfish-130913 Testturnier gegen Houdini 3
- - By Joe Boden Date 2013-09-13 22:17
Engine Match

Stockfish 130913 64 SSE4.2 4t - Houdini 3 Pro x64    56.0  -  44.0    (100: +37, =38, -25)    56.00%    Perf = +41 Elo

( 56.0% TP = +41 Elo 68%->[+16,+73] 95%->[-8,+106] 99.7%->[-32,+141] )

100 games played
Parent - - By Klaus Meier Date 2013-09-14 03:32
[quote="Joe Boden"]
Engine Match

Stockfish 130913 64 SSE4.2 4t - Houdini 3 Pro x64    56.0  -  44.0    (100: +37, =38, -25)    56.00%    Perf = +41 Elo

( 56.0% TP = +41 Elo 68%->[+16,+73] 95%->[-8,+106] 99.7%->[-32,+141] )

100 games played
[/quote]

meine das die Fehlerbereiche zu eng angesetzt sind. Müssten etwa um sqrt(2) grösser angegeben werden :
Etwa so:
( 56.0% TP = +41 Elo 68%->[+6,+76] 95%->[-29+111] 99.7%->[-64,+146] )
Demnach ist keine Perf größer NULL erkennbar.

Ps.:
Einen bestimmten Wert für die Perf darfst du erst dann angeben, wenn die Perf größer als die  Bestimmungsgrenze (9*sigma) ist.
Da ist aber wirklich noch weit hin.
Parent - - By Klaus Meier Date 2013-09-14 07:51 Edited 2013-09-14 07:54
Ein Beispiel dazu :

ENGINE1:    Stockfish 3.0 x64   ELO1: 2971   ERROR=15  (95%)   ==> sigma1= 7.5
ENGINE2:   Houdini 3.0 x64           ELO2: 3054   ERROR=17  (95%)   ==> sigma2= 8.5
(Werte aus der  CEGT 40/20)

Nun soll die Perf zwischen ENGINE1 und ENGINE2 berechnet werden und dann der ELO-Abstand bestimmt werden :
Perf = ELO2-ELO1
Perf = 3054-2971
Perf = 83

sigmaPerf = sqrt( sigma1^2 +sigma2^2)
sigmaPerf= sqrt(7.5^2 + 8.5^2)
sigmaPerf= sqrt(56.25 + 72.25)
sigmaPerf= sqrt(128.5)
sigmaPerf=11.34

Bestimmungsgrenze (Bg) prüfen:
Bg= 9*sigmaPerf
Bg= 9* 11.34
Bg= 102.02

==>  Perf ist kleiner Bg
==>
==>ELO-Abstand zwischen den beiden Engines ist unbestimmt !
=======================================

Frage : Ist erkennbar ob ELO-Abstand verschieden von NULL :

Erkennungsgrenze (Eg) prüfen :
Eg = 2* sigmaPerf
Eg = 2*11.34
Eg= 22.68

==> Perf ist größer Eg
==> 

Ja es ist erkennbar, der ELO-Abstand ist verschieden von NULL (Engine2 ist stärker als ENGINE1)
Ein bestimmter Wert für den ELO-Abstand (Spielstärkeunterschied) kann jedoch nicht angegeben werden.
(Der Spielstärkeunterschied  ist unbestimmt, wegen Perf ist kleiner Bg )

 
Parent - - By Joe Boden Date 2013-09-14 08:08
Guten Morgen, Klaus,

danke für Deine Mühe und Dein Feedback. Ich bin beeindruckt von Deinen mathematischen Ausführungen. Ich gestehe, ich verstehe davon nichts. Aber es wird mir klar, wie akribisch genau man an so eine Sache wie das Testen einer Engine rangehen kann. Ich fürchte, ich werde es in diesem Bereich nicht weit bringen.

Aber nach wie vor macht es mir Spass, die Dinger gegeneinander spielen zu lassen. Heute werde ich das kleine Turnier wiederholen, mal sehen, ob die Werte ganz andere sind. Wieviel Partien müsste ich eigentlich spielen lassen, um sagen wir eine Genauigkeit von +- 50 Elo zu erreichen? Statistisch relevant sind meine Tests alle nicht, soviel ist mir klar. Ich denke aber, dass Stockfish deutlich stärker geworden ist und sich zumindest gegenüber Houdini auf mindestens gleichem Level etabliert hat.
Parent - - By Klaus Meier Date 2013-09-14 08:47 Edited 2013-09-14 08:54
[quote="Joe Boden"]
Wieviel Partien müsste ich eigentlich spielen lassen, um sagen wir eine Genauigkeit von +- 50 Elo zu erreichen?
[/quote]

Kommt darauf an, ob du einen Wert für die  ELO einer ENGINE bestimmen möchtest,
oder ob du einen Wert für den Spielstärkeunterschied (ELO-Abstand) zwischen zwei ENGINES  bestimmen möchtest.
im letzeren Fall müssen deutlich mehr Spiele gespielt werden.

Im Ersten Fall ist es einfach mit einer Faustformel zu überschlagen, wie viele Spiele nötg sind.
näherungsweise gilt (Faustformel) :
sigma=230/sqrt(T) mit T= Anzahl der Spiele
==>
T=(230/sigma)^2
im Falle sigma = 50 (der 65% Wert)
Errechnet sich :
T=(230/50)^2 = 21 Spiele

Wenn du mit 50 den 2*sigma wert gemeint hast (95%) dann ist zu rechnen:
50/2=25 =sigma (65%)
T=(230/25)^2= 85 Spiele

In den Listen wird meist der 95% ERROR-Wert angegeben.

also z.B:
Houdini 3.0 x64   ELO = 3054   ERROR=17
dann ist
sigma=ERROR/2
sigma=8.5
und daraus folgt dann nach der oben angegebenen Faustformel:
T=(230/8.5)^2
T=732 Spiele (sind mind. nötig)

Du kannst auch eine Faustformel nach
nach Ernest Bonnem heranziehen, und nach T umstellen liefert einen exakteren Wert für T :
sigma = 700*(sqrt(W+L))/2T (sigma-Faustformel nach Ernest Bonnem)

also732 Spiele...
Die Faustformel ist ja nun auch nicht so ganz genau zu nehmen.
Wenn du sicherheitshalber etwas mehr Spiele laufen lässt, dann bist du auf der sicheren Seite. Damit niemand mehr was zu meckern hat.
In der CEGT- Liste sind für Houdini3  1200 Spiele angegeben um  ERROR = 17 (95%) angeben zu können.

Der zweite Fall ist komplizierter, also
falls du  einen bestimmten Wert für einen Spielstärkeunterschied zwischen zwei Engines angeben möchtest, dann sind schätzungsweise etwa 5 mal mehr Spiele nötig für jede der beiden Engines damit die Differenz zwischen zwei ELOs als ein bestimmter Spielstärkeunterschied gelten darf.
Parent - - By Joe Boden Date 2013-09-14 09:13
Klaus,

kannst Du das mal etwas populärer ausdrücken bitte.

Also bei wieviel Partien von zwei Engines erhalte ich mit welcher Genauigkeit eine Elobestimmung?
Und mit wieviel Partien erhalte ich den Abstand zweier Engines untereinander mir welcher Genauigkeit?

Was hälst Du von meinem Ansatz, den Engines zur groben Einschätzung einen Competition-Factor zuzuweisen...meine Idee siehe hier:http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=5995
Parent - - By Klaus Meier Date 2013-09-14 09:52 Edited 2013-09-14 09:58
[quote="Joe Boden"]
Klaus,

kannst Du das mal etwas populärer ausdrücken bitte.

Also bei wieviel Partien von zwei Engines erhalte ich mit welcher Genauigkeit eine Elobestimmung?
Und mit wieviel Partien erhalte ich den Abstand zweier Engines untereinander mir welcher Genauigkeit?

Was hälst Du von meinem Ansatz, den Engines zur groben Einschätzung einen Competition-Factor zuzuweisen...meine Idee siehe hier:http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=5995
[/quote]

Beispiel:

1000 Partieen ==>
sigma= 230/sqrt(1000)
sigma = 7
ERROR (95%)  = 2*sigma
ERROR (95%) = 14

Angenommen:
Engine1 beginnt mit EELO = 2260 
Engine2 beginnt mit EELO = 2200

nun spielen diese beiden 1000 Partieen
das Spielergebnisse sei :
Engine1 score= 56%

dann  ist
Perf = 8*(score-50)
Perf=  8*(56-50)
Perf = 48

Engine1 gewinnt also 48 Punkte dazu und Engine2 bekommt 48 abgezogen
neue EELOs
Engine1 : EELO1 = 2308 +- 14 (95%)
Engine2 : EELO2 =  2152 +- 14 (95%)

(EELO für Engine-ELO)

Parent - - By Joe Boden Date 2013-09-14 10:25
Du wolltest aus mir jetzt aber keinen Mathematiker machen, oder?

verstehe nur bahnhof...
Parent - By Klaus Meier Date 2013-09-14 11:07
[quote="Joe Boden"]
Du wolltest aus mir jetzt aber keinen Mathematiker machen, oder?

verstehe nur bahnhof...
[/quote]

Hatte ich nicht vor.
Mag selber das Spiel. Die Mathematik mag ich nun wirklich nicht weiter vertiefen.
Parent - By Klaus Meier Date 2013-09-16 13:40 Edited 2013-09-16 13:48
[quote="Klaus Meier"]
[quote="Joe Boden"]
Klaus,

kannst Du das mal etwas populärer ausdrücken bitte.

Also bei wieviel Partien von zwei Engines erhalte ich mit welcher Genauigkeit eine Elobestimmung?
Und mit wieviel Partien erhalte ich den Abstand zweier Engines untereinander mir welcher Genauigkeit?

Was hälst Du von meinem Ansatz, den Engines zur groben Einschätzung einen Competition-Factor zuzuweisen...meine Idee siehe hier:http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=5995
[/quote]

Beispiel:

1000 Partieen ==>
sigma= 230/sqrt(1000)
sigma = 7
ERROR (95%)  = 2*sigma
ERROR (95%) = 14

Angenommen:
Engine1 beginnt mit EELO = 2260 
Engine2 beginnt mit EELO = 2200

nun spielen diese beiden 1000 Partieen
das Spielergebnisse sei :
Engine1 score= 56%

dann  ist
Perf = 8*(score-50)
Perf=  8*(56-50)
Perf = 48

Engine1 gewinnt also 48 Punkte dazu und Engine2 bekommt 48 abgezogen
neue EELOs
Engine1 : EELO1 = 2308 +- 14 (95%)
Engine2 : EELO2 =  2152 +- 14 (95%)

(EELO für Engine-ELO)


[/quote]

Hallo Joe
leider hatte beim schreiben der letzten 4  Zeilen der Fehlerteufel zugeschlagen.
ENGINE1 gewinnt natürlich keine 48 Punkte dazu sondern verliert 12 Punkte,
während ENGINE2 12 Punkte dazu erhält.
Es muss ja mit dem Gegnerschitt verrechnet werden.

Leistung Engine1 = Gegnerschnitt +48 
Leistung Engine1 = 2200+ 48
Leistung Engine1 = 2248
============================

Leistung Engine2 = Gegnerschnitt - 48
Leistung Engine2 = 2260 -48  = 2212
Leistung Engine2 = 2212
============================

Joe, da hattest du mich tatsächlich fast "Schachmatt" gesetzt.

J'adoube ...
   
jetzt ist es Stimmig.
Parent - By Klaus Meier Date 2013-09-14 10:25
[quote="Joe Boden"]

Was hälst Du von meinem Ansatz, den Engines zur groben Einschätzung einen Competition-Factor zuzuweisen...meine Idee siehe hier:http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=5995
[/quote]

Besser die Statistik Fehlerrechnung richtig machen.
K.
Parent - - By Benno Hartwig Date 2013-09-14 08:30
Aber auch so bleibt bemerkenswert:
bei einem gleich großen Spielstärke von SF4 und H3 sollte es SF lediglich mit Wahrscheinlichkeit 6,8% gelingen, mindestens 56 Punkte aus 100 Spielen zu holen, so deutlich oder deutlicher zu gewinnen.
Schon ein ungewöhnlicher Ausgang. Aber nicht ausreichend für neue Thesen.

Und bei den sonst gehandelten Werten "H3 ist 45 ELO stärker als SF4" wäre ungefähr ein 56:44 für H3 zu erwarten, und die Wahrscheinlichkeit für den umgekehrten Ausgang "mindestens 56:44 für SF4" liegt bei wenig mehr als 1 Promille! (bei 40% remis-Annahme) Und dass hier genau dieses eingetreten ist, finde ich dann doch sehr bemerkenswert.

Benno
Parent - - By Joe Boden Date 2013-09-14 08:47
Benno...ich mache gar nicht erst den Versuch zu verstehen, was Du sagst. Ich krieg das nicht in meine Birne. War noch nie so der Zahlenmensch. Aber ich finde es spannend, dass es Leute wie Dich gibt, die damit was anfangen können.
Parent - By Benno Hartwig Date 2013-09-15 16:13
Ich habe das Tool, mit dem ich diese Werte ermittelte, eben einfach mal in einem eigenen Thread 'Ergebniswahrscheinlichkeiten in Enginezweikämpfen' vorgestellt.
Vielleicht interessiert es ja jemanden.
Benno
Parent - - By Klaus Meier Date 2013-09-14 09:02 Edited 2013-09-14 09:06
[quote="Benno Hartwig"]

Und bei den sonst gehandelten Werten "H3 ist 45 ELO stärker als SF4" ...

Benno
[/quote]

HI Benno

die 45 ELO "Spielstärkeunterschied" die da gehandelt werden sind völliger Quatsch.
45 ist lediglich eine
Differenz = ELO2 - ELO1.
damit das als ein bestimmter Wert für den Spielstärkeunterschied gelten darf ist noch weitaus mehr zu beachten.
(Grundlagen für neue Thesen schaffen ist also gar nicht so einfach.)
 
Parent - - By Benno Hartwig Date 2013-09-14 11:30
[quote="Klaus Meier"]die 45 ELO "Spielstärkeunterschied" die da gehandelt werden sind völliger Quatsch.
45 ist lediglich eine
Differenz = ELO2 - ELO1.
damit das als ein bestimmter Wert für den Spielstärkeunterschied gelten darf ist noch weitaus mehr zu beachten.[/quote]Na, dann beachte mal schön nach deiner Facon. 
Benno
Parent - - By Klaus Meier Date 2013-09-14 12:10
[quote="Benno Hartwig"]
[quote="Klaus Meier"]die 45 ELO "Spielstärkeunterschied" die da gehandelt werden sind völliger Quatsch.
45 ist lediglich eine
Differenz = ELO2 - ELO1.
damit das als ein bestimmter Wert für den Spielstärkeunterschied gelten darf ist noch weitaus mehr zu beachten.[/quote]Na, dann beachte mal schön nach deiner Facon. 
Benno
[/quote]

Hallo Benno
Wieso meine Facon ?
Wer eine Differenz aus zwei voneinander unabhängigen Zufallsvariablen (Hier zwei ELO-Werte) angibt.
Sollte doch wohl auch die gängige Fehlerrechnung dazu machen. Ist das hier anders üblich ?
Hast du eine eigene spezielle Benno-Fehlerrechnung dazu entwickelt ?
Falls ja, darf ich die mal kennen lernen ?
Parent - - By Benno Hartwig Date 2013-09-14 13:07
Klaus,
du hast dich hier unverkennbar mit 3 Eigenschaften eingeführt:
1) Grundkenntnissen der Statistik (immerhin die billige ich dir zu)
2) auffallende Ferne zu Programmierung und insb. Computerschach
3) eine grenzenlose Arroganz
Ich habe genug von dir gelesen.
Benno
Parent - By Klaus Meier Date 2013-09-14 13:23
[quote="Benno Hartwig"]
Ich habe genug von dir gelesen.
Benno
[/quote]

dito
Klaus
Parent - - By Benno Hartwig Date 2013-09-14 07:14
Hatten beide Engine gleich viele Threads? (4t?)
Welche Zeiten hast du vorgegeben?
Benno
Parent - - By Joe Boden Date 2013-09-14 08:09
Ja Benno, alle Engines liefen unter gleichen Bedingungen. Das ist mir immer wichtig, dass alle gleichen Bedingungen haben. 4t = 4 Threads.
Parent - - By Benno Hartwig Date 2013-09-14 08:14
[quote="Joe Boden"]Ja Benno, alle Engines liefen unter gleichen Bedingungen. Das ist mir immer wichtig, dass alle gleichen Bedingungen haben. 4t = 4 Threads.[/quote]Thanx. Darum fragte ich nach: '4t' steht halt nur bei Stockfish.
Welche Zeitvorgaben hattest du denn gemacht?
Parent - - By Joe Boden Date 2013-09-14 08:43
wie meistens 1 min-blitz.
Parent - - By Benno Hartwig Date 2013-09-14 11:29
Zitat:
wie meistens 1 min-blitz.
Auch sehr kurze Zeiten finde ich OK, weil man dann mit erträglichem Aufwand Ergebnisse bekommt, die wenigstens eine gewisse Relevanz haben. (Man mag darüber streiten, ob das einige hundert oder besser weit über tausend sein sollten)
Unbedingt würde ich aber Fisher-Zeiten spielen. Ansonsten kann dir passieren, dass Engines in recht klaren Remisstellungen immer noch mal wieder über die Zeit geschoben werden, obwohl sie ggf. sogar eher besser dastehen.
Du musst die dann ggf. überlegen, ob du wirklich so was ausmessen möchtest.
Benno
Parent - By Stefan Pohl Date 2013-09-14 11:38
[quote="Benno Hartwig"]
Zitat:
wie meistens 1 min-blitz.
Auch sehr kurze Zeiten finde ich OK, weil man dann mit erträglichem Aufwand Ergebnisse bekommt, die wenigstens eine gewisse Relevanz haben. (Man mag darüber streiten, ob das einige hundert oder besser weit über tausend sein sollten)
Unbedingt würde ich aber Fisher-Zeiten spielen. Ansonsten kann dir passieren, dass Engines in recht klaren Remisstellungen immer noch mal wieder über die Zeit geschoben werden, obwohl sie ggf. sogar eher besser dastehen.
Du musst die dann ggf. überlegen, ob du wirklich so was ausmessen möchtest.
Benno


Ganz genau. Enginematches können auch heutzutage noch in sehr langes Endspielgeschiebe ausarten. Ohne Fischerbonus zu spielen ist daher - ganz besonders bei kurzen Bedenkzeiten - stark Ergebnisverzerrend.

StefN
Up Topic Hauptforen / CSS-Forum / Kleines Stockfish-130913 Testturnier gegen Houdini 3

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill