Qualche settimana fa si è cominciato a parlare di utilizzare il metodo Elo per realizzare una graduatoria nazionale basato sui risultati dei tornei "live" e la curiosità mi ha spinto ad approfondire come funziona questo metodo.
E a cominciare a pensare agli adattamenti che sarebbe necessario implementare per utilizzarlo in un dominio diverso da quello scacchistico.
Chiedo scusa in anticipo per la lunghezza del post, ma non è un argomento da liquidare in due battute. Magari se n'è anche già parlato, ma io non ho trovato nulla...
Per chi vuole andare nel dettaglio, io mi sono basato sulle informazioni contenute in Wikipedia (wikipedia.org) e nel sito albanesi.it,
Nel prosieguo farò l'assunzione che il lettore abbia familiarizzato con la teoria e la terminologia utilizzate in queste due pagine, per non dover ridefinire tutto (Il secondo link mi è sembrato quello più 'divulgativo' e semplice da capire, ma volendo adattare il metodo non si può prescindere da un certo rigore matematico, meglio descritto nella pagina wikipedia).
In estrema sintesi: il sistema Elo è una misura indiretta della "forza" o abilità di un giocatore, basata sui risultati ottenuti in una serie di confronti contro altri giocatori valutati con lo stesso criterio
Negli scacchi si considera che un giocatore sia superiore -in quella partita - all'altro se vince, inferiore se perde, più o meno dello stesso valore se i due pattano. Siccome non sempre il più forte vince (anche se ci si attenderebbe che lo faccia...), la distribuzione delle vittorie segue una curva di distribuzione gaussiana.
Ai fini pratici questa distribuzione è approssimata da una tabella che esprime le possibilità di vittoria di ambedue i giocatori al variare del loro rapporto di forza (o meglio, della differenza tra i punteggi che essi hanno conseguito).
Tenendo in considerazione questa curva/tabella e la forza relativa dell'avversario, è possibile aggiustare il punteggio di un giocatore dopo ogni partita o serie di partite, confrontando il risultato reale con il risultato atteso (Per gli esempi numerici si vedano le pagine linkate...).
La maniera più semplice di calcolare la variazione di punteggio di un giocatore rimane l'aggiustamento lineare semplice, in cui la variazione di punteggio totale è proporzionale alla differenza tra risultato reale e risultato atteso:
NP = PP + K (R_reale - R_att)
con NP = Nuovo Punteggio, PP = Punteggio Precedente, K = coefficiente di proporzionalità, R_reale = risultato conseguito, R_att = risultato atteso.
Se R_reale > R_att il punteggio aumenta, altrimenti diminuisce.
Per procedere all'aggiustamento del punteggio di un giocatore servono quindi la tabella di distribuzione dei risultati, il coefficiente di proporzionalità per il calcolo dell'aggiustamento e, per i nuovi giocatori, il punteggio iniziale da utilizzare.
Proviamo a vedere cosa si fa negli scacchi e quale potrebbe essere l'adattamento al Risiko. Lascio intenzionalmente per ultima la distribuzione attesa dei risultati, che mi sembra la cosa più complessa.
Negli scacchi il coefficiente K varia (diminuisce...) all'aumentare dell'esperienza dei giocatori: vale 40 per i nuovi arrivati e per le prime 30 partite, 20 per tutto il tempo in cui il rating rimane <2400, 10 per i giocatori più esperti, il cui rating supera i 2400 punti (anche se e quando poi si riabbassa); lo scopo ovviamente è di far risaltare le capacità e la forza di un giocatore agli inizi e adattare più velocemente la sua classifica.
Qui ovviamente si potrebbe fare una scelta simile, con una decisione da prendere che potrebbe influenzare parecchio le prime edizioni della classifica: chi attribuisce il K ai giocatori già nel circuito, di cui si ha già un'idea della forza e capacità, ma non ancora una valutazione standardizzata?
Il punteggio iniziale di un nuovo giocatore è invece un po' più complesso da definire: le federazioni scacchistiche ora richiedono un certo numero numero di partite giocate contro giocatori classificati prima di poter vedersi assegnare un proprio punteggio ELO, basato sui risultati ottenuti. Personalmente ritengo che affrontare ora tale complessità non sia proponibile, quindi si potrebbe definire il valore a cui corrisponde una abilità "media" e partire da quello.
Negli scacchi si utilizzava il valore 1500 e per il momento facciamo la stessa ipotesi.
E veniamo ora alla tabella della distribuzione dei valori attesi...che negli scacchi ha solo 2 colonne, ma ben 51 righe, relative ad altrettanti intervalli di differenza di punteggio tra i due giocatori..
Considerando che nel Risiko ci sono in genere 4 giocatori (ma live ce ne possono essere anche 3 o 5, vedremo poi come trattare questi casi) possiamo o semplificare o prevedere una distribuzione molto più complessa (in cui comunque venga mantenuta la condizione che la somma dei risultati attesi sia 1).
La semplificazione (o una delle semplificazioni) è mantenere le due colonne confrontando ogni giocatore con la media degli avversari. Ciò ha come conseguenza che la presenza al tavolo di un altro giocatore molto forte potrebbe essere "annacquata" da punteggi bassi degli altri due giocatori, producendo una alterazione verso l'alto del risultato atteso.
Voler considerare la posizione relativa a tre giocari, invece, richiede una tabella molto più complessa, come questa in figura:
la prima riga descrive il caso di 4 giocatori il cui punteggio iniziale è molto molto simile: ognuno ha il 25% di possibilità di vincere, mentre al progressivo indebolirsi di uno di loro, salgono le probabilità di vittoria degli altri.
Ovviamente fasce di distanza e percentuali sono opinabili, a me interessava più che altro esaminare il metodo.
Nal caso di 5 giocatori si potrebbe appaiare 4° e 5°, tenendo solo - per il calcolo del punteggio degli altri - il punteggio più alto.
Nel caso di 3 giocatori invece, forse più raro, si potrebbe considerare il punteggio iniziale del giocatore medio.
E poi ci sarebbe da parlare di come produrre la prima classifica, se ignorare il passato o considerare alcuni dati storici per cominciare ad elaborare un rating significativo.
Ma questa magari è un'altra discussione.