Clasificación de jugadores con Elo con más de dos jugadores

16

Me gustaría usar Elo para rastrear la clasificación de jugadores entre partidos de un determinado juego, sin embargo, el juego se puede jugar con hasta cuatro jugadores en un partido. He visto juegos como Carcasona usando Elo con más de dos jugadores jugando, pero no estoy familiarizado con Elo más allá de un enfrentamiento 1-1.

Del artículo de Wikipedia, las ecuaciones de dos jugadores que me gustaría ampliar son:

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

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

R x nuevo = R x viejo + 32 * (W - E x ), donde W = 1 si X gana y W = 0 si X pierde.

¿Cómo cambiaría el cálculo para E x y W dado más de dos jugadores?

fbrereto
fuente
Sería cauteloso sobre el uso de un sistema de estilo Elo para juegos con más de dos jugadores, ya que muchos factores pueden conspirar para hacerlos menos que juegos puros de habilidad: jugadores que se agrupan en los jugadores más fuertes percibidos, etc. Si combina puntajes de partidos Con diferentes números de jugadores, sugiero que se eliminen las ponderaciones (es decir, el '32' en la fórmula de actualización para R) para juegos con más jugadores.
Steven Stadnicki
@StevenStadnicki gracias por la recomendación. Sin embargo, no estoy claro sobre cómo soltar la constante de peso aborda los problemas que mencionas. ¿Puedes elaborar?
fbrereto
Al bajar el peso de las partidas multijugador, estás inherentemente diciendo que no son tan importantes para la calificación de un jugador como lo son las partidas de dos jugadores; esencialmente, estás diciendo que son menos representativos de lo bueno que es en realidad el jugador. Magic hace algo similar a esto con su estructura de torneo, donde diferentes niveles de torneo tienen diferentes valores K para representar cuánto peso se les debe dar al determinar la calificación de un jugador.
Steven Stadnicki

Respuestas:

10

Según lo sugerido por el enlace superior en mi búsqueda de Google (se eliminó la rotura del enlace, el sitio aún está disponible en WayBackMachine en http://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/ ), podría calcule los cambios individuales en la calificación Elo de un jugador (sus valores R) y luego sume para proporcionar el cambio total que se aplicará a la calificación de cada jugador.

es decir, si tiene 4 jugadores (A, B, C, D), calcule el cambio en la calificación de A (R-sub-a-sub-new) de sus puntajes contra B, C y D, y luego ajuste la calificación de A El total de los valores R calculados.

fnord
fuente
Seguí esta ruta y parece estar funcionando bien hasta ahora, gracias.
fbrereto
Lamentablemente, el enlace ya no es válido.
Petr Pudlák
3
Parece que aquí están las fórmulas para esta idea: sradack.blogspot.ru/2008/06/…
dbf
1

Encontré un documento con código fuente PHP de un método similar a la respuesta de fnord aquí: http://elo-norsak.rhcloud.com/3.php Creé una implementación php de propósito más general aquí: https://github.com/ FigBug / Multiplayer-ELO Lo estoy usando con mi grupo de juegos de mesa, y hasta ahora parece estar funcionando bien.

El cálculo de Ex y W se mantendría igual. En lugar de usar una K de 32, usa una K de 32 / (#players - 1). Luego, mira cada permutación de 2 jugadores y calcula (32 / (#players - 1) * (W - Ex)). Entonces RxNew es igual a RxOld + Suma de todos los valores que acabas de calcular.

FigBug
fuente
2
En general, es una buena práctica incluir un resumen de su método / recomendación en el cuerpo de una respuesta, en lugar de depender completamente de enlaces externos. Los enlaces tienen la costumbre de romperse con el tiempo, lo que puede hacer que su respuesta pierda detalles cruciales cuando alguien intenta buscarla dentro de años.
DMGregory
Gracias por tu código de práctica, ¡es útil! Solo una sugerencia para su realización: puede ser mejor no redondear los resultados intermedios, eloChange += round($K * ($S - $EA));sino redondear solo después de todos los cálculos al configurareloPost
FlameStorm