Supongamos que quiero organizar un torneo de juegos con juegos 1 contra 1 (piense en el ajedrez) que (para simplificar) solo gane o pierda como resultado y necesito una forma de clasificar a los jugadores. Hablando formalmente, quiero una función que tome una lista de (jugador1, jugador2, quién_ganó) triples y devuelva una clasificación de jugadores, por ejemplo, atribuyéndoles a cada uno de ellos un número (lista de (jugador, puntaje) ).
Debido a que el torneo será informal y desorganizado, no puedo influir de ninguna manera en quién juega contra quién y cuándo. El sistema de puntuación que estoy buscando debe tener estas propiedades:
Si es necesario, los nuevos juegos pueden afectar las puntuaciones de todas las personas y los cálculos pueden necesitar una computadora.
¿Qué sistemas de puntuación cumplen esto?
Pruebe esto , es un sistema llamado Calificación de Historial Completo. Del resumen:
Whole-History Rating (WHR) es un nuevo método para estimar las fortalezas variables en el tiempo de los jugadores involucrados en comparaciones pareadas. Al igual que muchas variaciones del sistema de calificación Elo, el enfoque de historia completa se basa en el modelo dinámico de Bradley-Terry. Pero, en lugar de usar aproximaciones incrementales, WHR calcula directamente el máximo exacto a posteriori sobre todo el historial de calificación de todos los jugadores. Esta precisión adicional tiene un costo computacional más alto que los métodos tradicionales, pero el cómputo sigue siendo lo suficientemente rápido como para aplicarse fácilmente en tiempo real a servidores de juegos a gran escala (se agrega un nuevo juego en menos de 0,001 segundos). Los experimentos demuestran que, en comparación con Elo, Glicko, TrueSkill y los algoritmos de historial deteriorado, WHR produce mejores predicciones.
Ha sido utilizado con bastante éxito por un juego que juego llamado Arimaa . Para una puntuación de torneo, en lugar de una clasificación de habilidad del jugador, probablemente querrá tratar todos los juegos como si se jugaran simultáneamente, en lugar de permitir que la proporción fluctúe con el tiempo.
Si lo que busca es el código fuente, puede encontrar útil esta implementación pura de Ruby . Puede admitir cualquier juego de dos jugadores, siempre que el resultado sea una simple victoria/derrota.
ELO es el sistema de clasificación más simple , pero no cumple con sus requisitos ya que el orden de los juegos sí importa . en ELO, cada jugador tiene una calificación de condición física que se actualiza después de cada juego. Ganar a un jugador con una calificación más alta que la tuya aumenta en gran medida tu calificación, ganar a un jugador con una calificación más baja que la tuya aumenta ligeramente tu calificación.
bwarner
Joachim Breitner
Joachim Breitner
Stef
Stef
Joachim Breitner