13. Appendice: modello statistico — allineamento XG / gnuBG / blunderDB
Questa pagina descrive come blunderDB calcola il PR (Performance Rate), lo Snowie Error Rate e la perdita di MWC, e come queste metriche sono allineate a eXtreme Gammon (XG) e gnuBG (riferimento aperto).
13.1. Definizioni formali
13.1.1. PR (Performance Rate)
Il PR (chiamato anche «error rate per decision» in gnuBG) misura l’errore medio in millesimi di punto di equity (millipunti, mpt) per decisione conteggiata.
Il numeratore è la somma assoluta degli errori EMG (in equity cubeful) su tutte le decisioni considerate.
Il denominatore \(N_\text{conteggiate}\) è il numero di decisioni conteggiate (vedi sotto).
Il fattore 500 converte l’equity in millipunti (1 punto = 1000 mpt, ma la scala è ×500 per convenzione XG/gnuBG — cfr.
gnubg/formatgs.c:399–409).
13.1.2. Snowie Error Rate
Lo Snowie ER usa lo stesso numeratore del PR, ma il denominatore è il numero totale di mosse di entrambi i giocatori, mosse forzate incluse (tutte le decisioni, senza filtro):
Riferimento: gnubg/formatgs.c:415–424.
Lo Snowie ER è più stabile tra gli strumenti perché il suo denominatore non dipende dal filtro delle decisioni forzate/banali. Serve come metrica di confronto incrociato tra XG, gnuBG e blunderDB.
Nota
Lo Snowie ER di un giocatore è tipicamente circa la metà del suo PR, perché il denominatore include le mosse di entrambi i giocatori mentre il PR usa solo le decisioni di quel giocatore.
13.1.3. Perdita di MWC (Match Winning Chance)
La perdita di MWC esprime in punti percentuali di probabilità di vincere il match l’effetto cumulato degli errori di un giocatore. Per ogni decisione, l’errore EMG è convertito in MWC tramite la tabella MET (Match Equity Table) al punteggio corrente:
Riferimento: gnubg/analysis.c:1449–1464.
13.2. Decisioni conteggiate nel denominatore del PR
blunderDB segue le stesse regole di esclusione di XG e gnuBG.
13.2.1. Mosse di pedine — decisioni conteggiate
Vengono conteggiate solo le mosse non forzate:
Una mossa è forzata se i dadi offrono una sola mossa legale (
cMoves == 1ingnubg/analysis.c:458).Le mosse forzate hanno errore nullo per definizione: il giocatore non aveva scelta. Includerle nel denominatore abbasserebbe artificialmente il PR.
13.2.2. Decisioni di cubo — decisioni conteggiate
Vengono conteggiate solo le decisioni di cubo vicine:
Una decisione di cubo è vicina se rientra nella finestra di equity
[-0.16, +0.16]attorno al punto di raddoppio (predicatoisCloseCubedecisioningnubg/eval.c:5088–5100).Un «No Double» banale (equity molto negativa o molto positiva) non è una vera decisione strategica; includerlo gonfierebbe il denominatore e abbasserebbe il PR.
13.2.3. Riepilogo del filtro
Tipo di decisione |
Incluso in \(N_\text{conteggiate}\) (PR) |
|---|---|
Mossa non forzata |
Sì |
Mossa forzata |
No |
Cubo vicino |
Sì |
No Double banale |
No |
Take / Pass |
Sempre (sono risposte al raddoppio) |
13.3. Corrispondenza blunderDB ↔ XG ↔ gnuBG
Le metriche sono allineate entro i seguenti limiti (misurati su 3 match di riferimento):
13.3.1. Confronto XG ↔ blunderDB (stesso motore di analisi)
Metrica |
Scarto tipico |
|---|---|
Decisioni totali |
≤ 5 |
Mosse non forzate |
≤ 7 |
PR |
≤ 0.10 |
Perdita di MWC |
≤ 1.0 pp |
Equity totale (EMG) |
≤ 0.05 |
13.3.2. Confronto gnuBG ↔ blunderDB (import SGF — motori diversi)
Metrica |
Scarto tipico | Causa principale |
|
|---|---|---|
PR (checker) |
≤ 0.20 |
differenze di equity tra motori diversi |
Perdita di MWC |
≤ 3.5 pp |
dati close-cube incompleti nel SGF |
Snowie ER |
≤ 0.50 |
mosse forzate senza analisi (SGF) |
Nota
I file SGF (gnuBG) non includono le alternative per le mosse forzate, il che significa che blunderDB non può rilevare tutte le mosse forzate all’import SGF. Questo crea uno scarto strutturale sullo Snowie ER (denominatore leggermente diverso).
13.4. Convalidare i propri valori
Se i tuoi valori di PR o MWC divergono dai valori XG, verifica i seguenti punti:
Analisi complete — Il PR può essere calcolato solo sulle posizioni che dispongono di un’analisi. Le posizioni senza analisi vengono conteggiate come errore zero ma non rientrano in \(N_\text{conteggiate}\).
Versione XG — XG può modificare i suoi calcoli tra una versione e l’altra. blunderDB si allinea al comportamento osservato nelle versioni recenti.
Formato di import — I file SGF gnuBG producono scarti più importanti sulle metriche del cubo (vedi tabella sopra) perché il file non include le analisi complete per tutte le decisioni di cubo.
Migrazione del database — Dopo l’aggiornamento di blunderDB, i database esistenti vengono migrati automaticamente. Effettua un backup prima di aprire un database con una nuova versione.
13.5. Riferimento gnuBG
Le formule sono state verificate nei seguenti file sorgente (repository gnuBG):
gnubg/formatgs.c:399–409— PR («Error rate per decision»).gnubg/formatgs.c:415–424— Snowie Error Rate.gnubg/analysis.c:458–462— Accumulo checker, esclusione delle mosse forzate (cMoves > 1).gnubg/analysis.c:1430–1474— Conversione EMG → MWC per decisione.gnubg/analysis.c:1449–1464— Accumulo della perdita di MWC (eq2mwc).gnubg/eval.c:5088–5100— PredicatoisCloseCubedecision(soglia 0.16).