13. Anhang: Statistikmodell — Abgleich XG / gnuBG / blunderDB

Diese Seite beschreibt, wie blunderDB den PR (Performance Rate), die Snowie Error Rate und den MWC-Verlust berechnet und wie diese Kennzahlen mit eXtreme Gammon (XG) und gnuBG (offene Referenz) abgeglichen sind.

13.1. Formale Definitionen

13.1.1. PR (Performance Rate)

Der PR (in gnuBG auch „error rate per decision“ genannt) misst den durchschnittlichen Fehler in Tausendstel eines Equity-Punkts (Millipoints, mpt) pro gezählter Entscheidung.

\[\mathrm{PR} = \frac{\sum_i |\mathrm{Fehler}_i|}{\mathrm{N_{gezählt}}} \times 500\]
  • Der Zähler ist die absolute Summe der EMG-Fehler (Cubeful-Equity) über alle Entscheidungen im betrachteten Bereich.

  • Der Nenner \(N_\text{compté}\) ist die Anzahl der gezählten Entscheidungen (siehe unten).

  • Der Faktor 500 wandelt die Equity in Millipoints um (1 Punkt = 1000 mpt, die Skala ist jedoch nach XG/gnuBG-Konvention ×500 — vgl. gnubg/formatgs.c:399–409).

13.1.2. Snowie Error Rate

Die Snowie ER verwendet denselben Zähler wie der PR, aber der Nenner ist die Gesamtzahl der Züge beider Spieler, einschließlich erzwungener Züge (alle Entscheidungen, ohne Filter):

\[\mathrm{SnowieER} = \frac{\sum_i |\mathrm{Fehler}_i|}{N_\text{P1} + N_\text{P2}} \times 500\]

Referenz: gnubg/formatgs.c:415–424.

Die Snowie ER ist über die verschiedenen Werkzeuge hinweg stabiler, da ihr Nenner nicht vom Filter für erzwungene/triviale Entscheidungen abhängt. Sie dient als Abgleichskennzahl zwischen XG, gnuBG und blunderDB.

Bemerkung

Die Snowie ER eines Spielers beträgt typischerweise etwa die Hälfte seines PR, da der Nenner die Züge beider Spieler einschließt, während der PR nur die Entscheidungen dieses Spielers verwendet.

13.1.3. MWC-Verlust (Match Winning Chance)

Der MWC-Verlust drückt die kumulierte Auswirkung der Fehler eines Spielers in Prozentpunkten der Match-Gewinnwahrscheinlichkeit aus. Für jede Entscheidung wird der EMG-Fehler über die MET (Match Equity Table) beim aktuellen Spielstand in MWC umgerechnet:

\[\mathrm{MWCLoss} = \sum_i \mathrm{eq2mwc}(\mathrm{erreur}_i, \mathrm{score}_i)\]

Referenz: gnubg/analysis.c:1449–1464.

13.2. Im PR-Nenner gezählte Entscheidungen

blunderDB folgt denselben Ausschlussregeln wie XG und gnuBG.

13.2.1. Steinzüge — gezählte Entscheidungen

Nur nicht erzwungene Züge werden gezählt:

  • Ein Zug ist erzwungen, wenn der Würfel nur einen einzigen legalen Zug zulässt (cMoves == 1 in gnubg/analysis.c:458).

  • Erzwungene Züge haben definitionsgemäß einen Fehler von null: Der Spieler hatte keine Wahl. Sie in den Nenner einzubeziehen würde den PR künstlich senken.

13.2.2. Cube-Entscheidungen — gezählte Entscheidungen

Nur knappe Cube-Entscheidungen werden gezählt:

  • Eine Cube-Entscheidung ist knapp, wenn sie innerhalb des Equity-Fensters [-0.16, +0.16] um den Verdopplungspunkt liegt (Prädikat isCloseCubedecision in gnubg/eval.c:5088–5100).

  • Ein triviales „No Double“ (sehr negative oder sehr positive Equity) ist keine echte strategische Entscheidung; es einzubeziehen würde den Nenner aufblähen und den PR drücken.

13.2.3. Zusammenfassung des Filters

Entscheidungstyp

Enthalten in \(N_\text{compté}\) (PR)

Nicht erzwungener Zug

Ja

Erzwungener Zug

Nein

Knapper Cube

Ja

Triviales No Double

Nein

Take / Pass

Immer (dies sind Antworten auf ein Double)

13.3. Übereinstimmung blunderDB ↔ XG ↔ gnuBG

Die Kennzahlen sind innerhalb der folgenden Grenzen abgeglichen (gemessen an 3 Referenzmatches):

13.3.1. Vergleich XG ↔ blunderDB (gleiche Analyse-Engine)

Kennzahl

Typische Abweichung

Entscheidungen gesamt

≤ 5

Nicht erzwungene Züge

≤ 7

PR

≤ 0.10

MWC-Verlust

≤ 1.0 pp

Gesamt-Equity (EMG)

≤ 0.05

13.3.2. Vergleich gnuBG ↔ blunderDB (SGF-Import — unterschiedliche Engines)

Kennzahl

Typische Abweichung | Hauptursache

PR (Checker)

≤ 0.20

Engine-übergreifende Equity-Unterschiede

MWC-Verlust

≤ 3.5 pp

unvollständige Close-Cube-Daten im SGF

Snowie ER

≤ 0.50

erzwungene Züge ohne Analyse (SGF)

Bemerkung

SGF-Dateien (gnuBG) enthalten keine Alternativen für erzwungene Züge, was bedeutet, dass blunderDB beim SGF-Import nicht alle erzwungenen Züge erkennen kann. Dies führt zu einer strukturellen Abweichung bei der Snowie ER (leicht abweichender Nenner).

13.4. Eigene Zahlen überprüfen

Wenn Ihre PR- oder MWC-Werte von den XG-Zahlen abweichen, prüfen Sie die folgenden Punkte:

  1. Vollständige Analysen — Der PR kann nur für Positionen berechnet werden, die über eine Analyse verfügen. Positionen ohne Analyse zählen als Fehler null, gehen aber nicht in \(N_\text{compté}\) ein.

  2. XG-Version — XG kann seine Berechnungen zwischen Versionen ändern. blunderDB orientiert sich am beobachteten Verhalten aktueller Versionen.

  3. Importformat — gnuBG-SGF-Dateien führen zu größeren Abweichungen bei den Cube-Kennzahlen (siehe Tabelle oben), da die Datei keine vollständigen Analysen für alle Cube-Entscheidungen enthält.

  4. Datenbankmigration — Nach einer Aktualisierung von blunderDB werden bestehende Datenbanken automatisch migriert. Erstellen Sie eine Sicherung, bevor Sie eine Datenbank mit einer neuen Version öffnen.

13.5. gnuBG-Referenz

Die Formeln wurden anhand der folgenden Quelldateien (gnuBG-Repository) überprüft:

  • gnubg/formatgs.c:399–409 — PR („Error rate per decision“).

  • gnubg/formatgs.c:415–424 — Snowie Error Rate.

  • gnubg/analysis.c:458–462 — Checker-Akkumulation, Ausschluss erzwungener Züge (cMoves > 1).

  • gnubg/analysis.c:1430–1474 — Umrechnung EMG → MWC pro Entscheidung.

  • gnubg/analysis.c:1449–1464 — Akkumulation des MWC-Verlusts (eq2mwc).

  • gnubg/eval.c:5088–5100 — Prädikat isCloseCubedecision (Schwelle 0.16).