Einzelnen Beitrag anzeigen
  #17  
Alt 02.09.2004, 17:33
Benutzerbild von Chessguru
Chessguru Chessguru ist offline
Administrator
 
Registriert seit: 29.06.2004
Ort: Rostock
Alter: 55
Land:
Beiträge: 6.519
Abgegebene Danke: 1.652
Erhielt 4.691 Danke für 1.402 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
9/20 20/20
Heute Beiträge
0/3 sssss6519
Erklärung

Hallo kosakenzipfel,

 Zitat von kosakenzipfel
Warum heißt ein Programm, dass KEINE Elos berechnet ELOSTAT?
Warum heißt eure damit erstellte Liste dann „Private ELO-Liste“?
Das habe ich mit voller Absicht geschrieben. Sicherlich fließt die Elo Formel mit ein, nur auf eine andere Art, als wie du es annimmst. Du klammerst dich zu sehr an die "menschliche" Berechnung.

Der Begriff Elo, hat sich als Standard durchgesetzt hat. Wir könnten genauso einen anderen Begriff wählen und mit Werten ab 10000 beginnen. Das Prinzip ist aber das Gleiche. Es geht um den Abstand zwischen den Geräten, nicht um die eigentliche Zahl.

Zitieren:
Nun, ich möchte niemandem das Salz aus der Suppe nehmen. Ich bestreite auch nicht den hohen Unterhaltungswert von Turnieren oder ihren hohen kommunikativen Wert für die „Gemeinde“. Es sollte jeder die Geräte gegeneinander spielen lassen, wie er mag. –Nur:

Muß man denn all das in e i n e Auswertung werfen?
Ja, warum denn nicht? Du siehst das zu eng. Dein Ansatz sieht so aus (zumindest glaube ich das bisher aus deinen Postings gelesen zu habe): Gerät 1 spielt gegen Gerät 2 und gewinnt. Somit muß Gerät 1 immer so und soviel Punkt für einen Sieg bekommen, richtig?

Ich versuche mal eine einfache Erklärung des Elo Systems. Bei der Berechung einer Elo Zahl geht man von folgender Hypothese aus. Die Verteilung der Spielstärke in der Gesamtheit der Spieler entspricht mathematisch der Gaußschen Glockenkurve (Wahrscheinlichkeitstheorie). Nach dieser Hypothese läßt sich für 2 Gegner statistisch voraussagen, mit welcher Wahrscheinlichkeit der eine Spieler gewinnen müßte (s.h. https://www.schachcomputer.info/html...erwartung.html). Somit kann man bei vielen Partien oder einem Turnier anhand der Wertungszahlen eines Spielers und des Durchschnitts der Wertungszahlen seiner Gegner voraussagen, wie viele Punkte er theoretisch erreichen wird. Wenn die Partien/Turniere gespielt sind, kann man so das erreichte Ergebnis mit dem statistisch Erreichbaren vergleichen und aus der Abweichung die neue Wertungs- oder Elo-Zahl berechnen. Wie das geht, kannst du auch auf unseren Seiten nachlesen.

Ursprünglich wollte ich das auch so machen, nur überzeugte mich Stefan davon, daß diese Elo Berechnung für Schachcomputer nicht die Beste ist. Wenn du möchtest, kann ich dir das auch anhand von Beispielen erklären. Kurz gesagt, wenn du jedes Gerät nach einem Turnier oder nach mehreren Partien einzeln berechnest (und nichts anderes wird bei der "menschlichen" Elo Berechnung gemacht), bekommst du genau die von dir geschilderten Probleme. Für Schachcomputer ist dieser Ansatz aber nicht korrekt.

Schachcomputer haben eine gleichbleibende Spielstärke, daß ist der entscheidende Unterschied! Weiterhin betrachten wir alle Partien als ein Ganzes! Somit können wir auf das Programm EloStat zurückgreifen. Ich zitiere mal aus der Anleitung von EloStat, da Frank Schubert es aus meiner Sicht sehr anschaulich erläutert hat.

"ELOStat verwendet das Iterationsverfahren..." (Anmerkung von mir: Iterationsverfahren sind Verfahren, welche zum Lösen nichtlinearer Gleichungen verwendet werden) "...nach Thompson. Bei diesem Verfahren wird allen Programmen zu Beginn der gleiche Elostartwert zugeordnet (evtl. im PGN-Header angegebene Elozahlen bleiben also unberücksichtigt !). Danach wird die gesamte Datenbank wie ein einziges großes Turnier behandelt und elomäßig ausgewertet. Die somit ermittelten Elozahlen werden anschließend den Programmen zugewiesen, d.h. sie ersetzen den anfänglichen Elostartwert. Mit den nunmehr aktualisierten Elozahlen wird erneut eine Datenbankauswertung gestartet. Dieses Vorgehen wird solange wiederholt, bis die Elozahlen aller Programme nahezu konstant bleiben (man sagt, die Elozahlen konvergieren..." (Anmerkung von mir: einem endlichen Grenzwert zustrebend) "...gegen einen bestimmten Grenzwert).
Der Elostartwert hat keinen Einfluß auf die relativen Spielstärkeunterschiede der Programme, d.h. der Eloabstand zwischen den Programmen ist unabhängig vom Startwert."

"Die Leistungsfähigkeit des oben beschriebenen Iterationsalgorithmus beruht u.a. darauf, daß zwischen zwei Programmen A und C ein indirekter Spielstärkebezug hergestellt werden kann, selbst wenn A und C nie direkt gegeneinander gespielt haben. Hat z.B. das Programm A mehrere Partien gegen B gespielt und B wiederum einige Partien gegen C, so reicht dies aus, um die Elozahlen aller drei beteiligten Programme im Sinne des Iterationsverfahrens konvergieren zu lassen. A, B, und C bilden somit einen zusammenhängenden Cluster. Die im Beispiel behandelte Datenbank ‘wb_elo.pgn’..." (Anmerkung von mir: Bitte das Programm EloStat herunterladen, um auf die Beispieldatei zugreifen zu können) "...besteht aus einem einzelnen Cluster, d.h. geht man von einem beliebigen Programm aus, so läß sich zu JEDEM anderen Programm der Datenbank ein Spielstärkebezug im obigen Sinne ableiten. Jede gute Datenbank sollte daher aus einem einzelnen Programmcluster bestehen und somit unfragmentiert sein (im Idealfall hat jeder gegen jeden gespielt).
Spielt man allerdings mit zahlreichen Programmen, so kann es passieren, daß die Datenbank unbemerkt fragmentiert, d.h. in einzelne unabhängige Cluster zerfällt, zwischen denen kein Spielstärkebezug mehr existiert. Dieser Fall tritt z.B. dann ein, wenn man zu den Programmen A,B,C drei weitere Programme D,E,F, hinzufügen würde, die zwar jeweils unmit-telbar gegeneinander spielen (also etwa D-E, D-F, E-F), aber keine einzige Partie gegen die anderen Programme austragen. In diesem Fall handelt es sich streng genommen nicht um eine einzige, sondern um zwei voneinander unabhängige Datenbestände. Bei der Eloberechnung laufen somit zwei ebenfalls unabhängige Iterationsverfahren ab und die ermittelten Elozahlen in beiden Clustern haben keinen Bezug mehr zueinander. ELOStat erkennt solche fragmentierten Datenbanken und zeigt in der Datei ‘cluster.dat’ die einzelnen Programme sowie die Anzahl der gespielten Partien je Cluster an."


"In der Datei ‘cluster.dat’ wird zusätzlich der Wert des sog. Iterationsoffsets (itoffset) (Anmerkung von mir: Aus diesem Grund geben wir diesen Wert in unser Liste mit an) angegeben. Hierbei handelt es sich um eine Eigenart des Iterationsverfahrens, die für praktische Zwecke meist ohne Belang ist. Sie sei hier trotzdem kurz erläutert: Um die Konvergenz des Iterationsverfahrens sicherzustellen, muß gewährleistet sein, daß der mit der Anzahl der ge-spielten Partien je Programm gewichtete Mittelwert aller Elozahlen nach jedem Iterations-schritt exakt gleich dem Elostartwert ist. Aufgrund des nichtlinearen Zusammenhangs zwi-schen der relativen Performance eines Programms (in Prozent) und seiner Elozahl (genauer Elodifferenz) kommt es zu einem konstanten Offset, der bei jedem Iterationsschritt hinzuad-diert werden muß, um die oben erwähnte Konstanz des Elomittelwerts sicherzustellen. Dieser Offset führt in der Rangliste dazu, daß sich der angegebene Wert für Av.Op. von dem tatsäch-lichen Wert, den man aus den Elomittelwerten der ersten Spalte erhält, um genau diesen Wert ‘itoffset’ voneinander unterscheidet. Anders ausgedrückt fällt der Elowert eines Programms in der Rangliste immer um genau itoffset größer aus, als es aufgrund seiner Performance und seines Av.Op.-Wertes zu erwarten wäre. Dieser systematische Offset betrifft aber jedes in der Rangliste aufgeführte Programm gleichermaßen, so daß die Eloabstände zwischen den Pro-grammen und somit die relativen Spielstärken davon unbeeinflußt bleiben. Der Wert von i-toffset ist in den meisten Fällen kleiner als 1 Elopunkt (s.o.), kann in Sonderfällen aber durch-aus auch mehr als 50 Elopunkte betragen."

"Der Elowert eines Zweikampfergebnisses von 100 % bzw. 0 % bleibt nach der Theorie zwangsläufig unbestimmt. Aus rechentechnischen Gründen (u.a. um die korrekte Durchführung des Iterationsverfahrens in den Programmmodi 1 und 2 sicherzustellen) wird den betei-ligten Programmen trotzdem eine endliche Elozahl zugewiesen, die um 600 Punkte oberhalb bzw. unterhalb des Av.Op. Elowertes liegt. Mit anderen Worten: ELOStat berücksichtigt kei-ne Elounterschiede, die größer als ± 600 Punkte sind (die 95%-Fehlergrenzen können daher maximal ± 1200 Elopunkte betragen). Für alle praktisch relevanten Datenbanken spielen diese Sonderfälle aber im Grunde keine Rolle."


Jetzt bitte genau lesen, denn dieser Punkt ist wichtig.

"Das Iterationsverfahren setzt zwingend voraus, daß die mittlere Spielstärke eines Programms in jeder Partie dieselbe bleibt. Diese Näherung ist für Schachprograme derzeit sicherlich gut erfüllt, sofern kein extensives Buchlernen gegen ein und denselben Gegner erfolgt (andere Lernalgorithmen spielen meiner Erfahrung nach in der Praxis derzeit keine wesentliche Rolle). Für menschliche Datenbanken ist dieses Vorgehen aber problematisch, da menschliche Spieler sich im Laufe der Zeit deutlich steigern können (um Hunderte von Elopunkten), so daß die mittlere Spielstärke in der Regel von Partie zu Partie zunimmt. Die Auswertung historischer Datenbanken mit dem Iterationsverfahren stellt daher zwar eine äußerst reizvolle Sache dar, hat aber aus obigen Gründen nur eine bedingte Aussagekraft. Bei menschlichen Spie-lern sollte daher nach Möglichkeit des Elosystem der FIDE verwendet werden."

Soweit verständlich? Vielleicht etwas ausführlich, aber ich habe versucht, dir die Sache genau und doch einfach bzw. anschaulich zu erläutern. Probier es doch einfach mal aus. Du wirst sehen, dass unser Ansatz um Längen besser ist, als die "menschliche" Berechnung. Vorausgesetzt, es liegen genügend Partien von jedem Gerät vor. Daher auch die noch sehr hohe Schwankungsbreite in den Zahlen.

Genau die von dir geschilderten Probleme können bei diesem Verfahren sehr gut eingeschränkt werden.

Gruß,
Micha

Geändert von Chessguru (02.09.2004 um 22:25 Uhr)
Mit Zitat antworten