Classifica giocatori usando Elo con più di due giocatori


16

Vorrei usare Elo per tenere traccia delle classifiche dei giocatori tra le partite di un determinato gioco, tuttavia il gioco può essere giocato con un massimo di quattro giocatori in una partita. Ho visto giochi come Carcassonne usare Elo con più di due giocatori che giocano, ma non conosco Elo oltre un matchup 1-1.

Dalla articolo wikipedia le equazioni a due giocatori vorrei estendere sono:

E a = 1 / (1 + 10 (R b - R a ) / 400 )

E b = 1 / (1 + 10 (R a - R b ) / 400 )

R x new = R x old + 32 * (W - E x ), dove W = 1 se X vince e W = 0 se X perde.

Come cambierebbe il calcolo per E x e W dato più di due giocatori?


Sarei cauto nell'usare un sistema in stile Elo per i giochi con più di due giocatori, poiché molti fattori possono cospirare per renderli meno di semplici giochi di abilità - giocatori che si uniscono ai giocatori più forti percepiti, ecc. Se mescoli i punteggi delle partite con un numero diverso di giocatori suggerirei caldamente di eliminare i coefficienti correttori (vale a dire i "32" nella formula di aggiornamento per R) per i giochi con più giocatori.
Steven Stadnicki,

@StevenStadnicki grazie per la raccomandazione. Non sono chiaro, tuttavia, su come l'abbassamento della costante di peso risolva i problemi citati. Puoi elaborare?
febbraio

Diminuendo il peso delle partite multiplayer, stai intrinsecamente dicendo che non sono così importanti per la valutazione di un giocatore come lo sono le partite a due giocatori; in sostanza, stai dicendo che sono meno rappresentativi di quanto il giocatore sia effettivamente bravo. La magia fa qualcosa di simile a questo con la sua struttura del torneo, in cui diversi livelli di torneo hanno valori K diversi per rappresentare quanto peso dovrebbero essere dati nel determinare la valutazione di un giocatore.
Steven Stadnicki,

Risposte:


10

Come suggerito dal collegamento superiore nella mia ricerca di Google (rimozione del collegamento rimossa, sito ancora disponibile sul WayBackMachine su http://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/ ), potresti calcola le singole modifiche nella valutazione Elo di un giocatore (i tuoi valori R), quindi sommale per fornire la modifica totale da applicare alla valutazione di ciascun giocatore.

cioè se hai 4 giocatori (A, B, C, D), calcola la modifica alla valutazione A (R-sub-a-sub-nuova) dai loro punteggi contro B, C e D, quindi regola la valutazione A di il totale dei valori R calcolati.


Ho seguito questa strada e sembra che stia funzionando bene finora, grazie.
fbrereto,

Sfortunatamente il link sembra non essere più valido.
Petr Pudlák,

3
Sembra che qui ci siano le formule per questa idea: sradack.blogspot.ru/2008/06/…
dbf

1

Ho trovato un documento con il codice sorgente PHP di un metodo simile alla risposta di fnord qui: http://elo-norsak.rhcloud.com/3.php Ho creato un'implementazione php più generica qui: https://github.com/ FigBug / Multiplayer-ELO Lo sto usando con il mio gruppo di giochi da tavolo, e finora sembra funzionare bene.

Il calcolo di Ex e W rimarrebbe lo stesso. Invece di usare una K di 32, usa una K di 32 / (#players - 1). Quindi, guarda ogni permutazione di 2 giocatori e calcola (32 / (#players - 1) * (W - Ex)). Quindi RxNew è uguale a RxOld + Sum di tutti i valori che hai appena calcolato.


2
In genere è buona norma includere un riepilogo del metodo / raccomandazione nel corpo di una risposta, piuttosto che basarsi interamente su collegamenti esterni. I collegamenti hanno l'abitudine di rompersi nel tempo, il che può lasciare la tua risposta mancante di dettagli cruciali quando qualcuno cerca di cercarlo tra anni.
DMGregory

Grazie per il tuo codice pratico, è utile! Solo un suggerimento per la tua realizzazione - potrebbe essere meglio non arrotondare i risultati intermedi eloChange += round($K * ($S - $EA));ma fare l'arrotondamento solo dopo tutti i calcoli durante l'impostazioneeloPost
FlameStorm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.