Gestione valutazioni Glicko

Dalla versione 3 di SoL è stata introdotta la gestione delle valutazioni dei giocatori secondo il sistema Glicko, primariamente per permettere di eliminare la componente casuale nella generazione degli accoppiamenti per il primo turno nei tornei importanti.

In poche parole, la valutazione dei giocatori calcolata con questo sistema rappresenta la probabilità di vittoria reciproca: un giocatore con valutazione 2200 molto probabilmente vincerà scontrandosi con un giocatore con una valutazione 1700.

Quando un torneo viene associato a una certa valutazione Glicko, la generazione dei turni viene effettuata tenendo conto della valutazione corrente di ciascun giocatore.

Voci del menu

Oltre alle azioni standard il menu contiene queste voci:

Tornei
Apre la gestione dei tornei che utilizzano la valutazione selezionata
Giocatori
Apre le valutazioni dei giocatori secondo la valutazione selezionata
Ricalcola
Ricalcola l’intera valutazione selezionata, riesaminando tutti i risultati di tutti i tornei che la utilizzano
Scarica
Permette di scaricare i dati di tutti i tornei che utilizzano la valutazione selezionata

Inserimento e modifica

Ogni valutazione è identificata da una descrizione univoca, cioè non è possibile inserire due diverse valutazioni con la medesima descrizione.

Il livello stabilisce in sostanza l’importanza della valutazione e la sua attendibilità.

Se eredita è attivo, allora quando in un torneo associato a una certa valutazione viene stabilita la valutazione di ciascun concorrente, viene usata la più recente nella valutazione di riferimento oppure in una a livello uguale o superiore. Al contrario, se è disattivo, la ricerca è limitata esclusivamente alla valutazione di riferimento.

Il tau è il coefficiente primario per pilotare il calcolo della valutazione nell’algoritmo Glicko2.

La valutazione, la deviazione e la volatilità sono i valori di default della valutazione per un giocatori che partecipi per la prima volta a un torneo associato alla valutazione.

Importante

Questi valori risultano modificabili solo dall’amministratore del sistema: di norma non devono essere modificati, se non da chi sa come e perché farlo, oppure per fare esperimenti.

In ogni caso, modificando questi valori rende necessario il ricalcolo della valutazione.

Valutazioni storiche

Le valutazioni storiche possono essere caricate con lo strumento a linea di comando soladmin load-historical-rating che accetta le seguenti opzioni e richiede due parametri posizionali, rispettivamente il file di configurazione e un URL del file contenente le valutazioni:

--date Data fittizia, di default 1900-01-01
--deviation Valore della deviazione, per default 100, oppure una formula per calcolarla a partire da altri campi
--volatility Valore della volatilità, di default 0.006, oppure una formula per calcolarla a partire da altri campi
--rate Formula per calcolare la valutazione del giocatore, se il valore nel file necessita qualche correzione
--description Descrizione della valutazione
--level Il livello della valutazione, 0 di default: 0=storica, 1=internazionale, 2=nazionale, 3=regionale, 4=amatoriale
--inherit Specifica se le valutazioni di un giocatore verranno ereditate dalle altre valutazioni allo stesso livello o superiore, False di default
--map Specifica una corrispondenza tra il nome del campo interno (SoL) e quello esterno
--encoding Codifica del file CSV, di default UTF-8
--tsv Specifica che i campi sono separati da TAB, non da virgole
--dry-run Mostra solo il risultato, non caricare i dati nel database

Il file contenente i dati può essere specificato sia con un URL tipo http://sito.it/percorso/dati.txt oppure come file:///tmp/locale.txt se risiede sul filesystem locale.

Il testo specificato può contenere o dei campi separati da virgole oppure campi separati dal carattere TAB (se viene specificata l’opzione --tsv). Se non viene specificato diversamente con l’opzione --encoding viene assunta la codifica UTF-8.

La prima riga del file è considerata come intestazione che specifica i nomi delle singole colonne mentre ciascuna riga rimanente contiene la valutazione di un singolo giocatore.

Ogni riga deve contenere almeno i campi firstname, lastname e nickname che identificano univocamente un particolare giocatore e opzionalmente i campi sex e club, rispettivamente il suo sesso e il club per cui gioca. Ovviamente ci deve essere il campo rate con il valore della valutazione storica del giocatore. Questi sono i nomi usati internamente, ma con l’opzione --map è possibile specificare delle associazioni arbitrarie con gli effettivi campi contenuti nel file.

Come esempio, i seguenti dati

id,cognome,nome,nomignolo,valutazione,partite_giocate,club,sesso
1,Gaifas,EMANUELE,,1000,30,,Scarambol Club Rovereto,M
2,Rossi,Paolo,,1468,6,Scarambol Club Rovereto,M
3,Verdi,Giuseppe,,1427,34,Italian Carrom Federation,M
4,Bianchi,Stefania,,1495,7,,F

possono essere caricati con il seguente comando:

soladmin load-historical-rating \
         --map lastname=cognome \
         --map firstname=nome \
         --map nickname=nomignolo \
         --map rate=valutazione \
         --map partite_giocate \
         --map club \
         --map sex=sesso \
         --deviation "350.0 / (10.0 - 9.0*exp(-partite_giocate / 60.0))" \
         --description "Historical rating" \
         config.ini /tmp/giocatori.csv

che dovrebbe produrre qualcosa del tipo:

Loading ratings from file:///tmp/players.csv...
Gaifas Emanuele “lele” (Scarambol Club Rovereto): rate=1000 deviation=77 volatility=0.006
NEW Rossi Paolo (Scarambol Club Rovereto): rate=1468 deviation=188 volatility=0.006
NEW Verdi Giuseppe (Italian Carrom Federation): rate=1427 deviation=71 volatility=0.006
NEW Bianchi Stefania (None): rate=1495 deviation=175 volatility=0.006

dove puoi notare che:

  1. l’opzione --dry-run mostra solo cosa succederebbe, senza alterare il database
  2. i nomi dei giocatori vengono normalizzati, vale a dire “EMANUELE” diventa “Emanuele”
  3. i nuovi giocatori sono automaticamente inseriti nel database
  4. il valore della deviazione viene calcolato a partire dal numero di match giocati

Quando sei soddisfatto, ometti l’opzione --dry-run e i dati verranno effettivamente caricati.

Tabella dei contenuti

Argomento precedente

Correzione concorrenti

Argomento successivo

Valutazioni dei giocatori

Questa pagina