Sistema de clasificación para jugadores de juegos basados en habilidades
El sistema de calificación Glicko y el sistema de calificación Glicko-2 son métodos para evaluar la fuerza de un jugador en partidas de suma cero entre dos jugadores. El sistema de calificación Glicko fue inventado por Mark Glickman en 1995 como una mejora del sistema de calificación Elo e inicialmente estaba destinado a ser utilizado principalmente como un sistema de calificación de ajedrez . La principal contribución de Glickman a la medición es la "fiabilidad de las calificaciones", llamada RD, por desviación de las calificaciones .
Descripción general
Mark Glickman creó el sistema de clasificación Glicko en 1995 como una mejora del sistema de clasificación Elo . [1]
Los sistemas de clasificación Glicko y Glicko-2 son de dominio público y se han implementado en servidores de juegos en línea como Counter-Strike: Global Offensive , Team Fortress 2 , [2] Dota 2 , [3] Guild Wars 2 , [4] Splatoon 2 , [5] Online-go.com , [6] Lichess y chess.com . [7]
La desviación de confiabilidad (RD) mide la precisión de la calificación de un jugador, donde la RD es igual a una desviación estándar. Por ejemplo, un jugador con una calificación de 1500 y una RD de 50 tiene una fuerza real entre 1400 y 1600 (dos desviaciones estándar de 1500) con un 95% de confianza. La RD se suma y se resta dos veces (exactamente: 1,96) de su calificación para calcular este rango. Después de un juego, la cantidad en que cambia la calificación depende de la RD: el cambio es menor cuando la RD del jugador es baja (ya que su calificación ya se considera precisa) y también cuando la RD de su oponente es alta (ya que la calificación real del oponente no se conoce bien, por lo que se obtiene poca información). La RD en sí disminuye después de jugar un juego, pero aumentará lentamente con el tiempo de inactividad.
El sistema de calificación Glicko-2 mejora el sistema de calificación Glicko e introduce además la volatilidad de calificación σ. [8] La Federación Australiana de Ajedrez implementa una versión ligeramente modificada del sistema de calificación Glicko-2 . [9]
El algoritmo de Glicko
Paso 1: Determinar la desviación de las calificaciones
La nueva desviación de calificaciones ( ) se encuentra utilizando la desviación de calificaciones anterior ( ):
donde es la cantidad de tiempo (períodos de calificación) desde la última competencia y se supone que '350' es el RD de un jugador no calificado. Si se han producido varios juegos dentro de un período de calificación, el método los trata como si hubieran sucedido simultáneamente. El período de calificación puede ser tan largo como varios meses o tan corto como unos pocos minutos, según la frecuencia con la que se organicen los juegos. La constante se basa en la incertidumbre de la habilidad de un jugador durante una cierta cantidad de tiempo. Puede derivarse de un análisis de datos exhaustivo o estimarse considerando el tiempo que tendría que pasar antes de que la desviación de calificación de un jugador crezca hasta la de un jugador no calificado. Si se supone que se necesitarían 100 períodos de calificación para que la desviación de calificación de un jugador regrese a una incertidumbre inicial de 350, y un jugador típico tiene una desviación de calificación de 50, entonces la constante se puede encontrar resolviendo para . [10]
O
Paso 2: Determinar la nueva calificación
Las nuevas clasificaciones, después de una serie de m juegos, se determinan mediante la siguiente ecuación:
dónde:
Representa las calificaciones de los oponentes individuales.
representa las desviaciones de calificación de los oponentes individuales.
representa el resultado de los juegos individuales. Una victoria es 1, un empate es , y una derrota es 0.
Paso 3: Determinar la nueva desviación de las calificaciones
La función del cálculo anterior de RD era aumentar el RD de forma adecuada para tener en cuenta la creciente incertidumbre en el nivel de habilidad de un jugador durante un período de no observación por parte del modelo. Ahora, el RD se actualiza (disminuye) después de la serie de juegos:
Algoritmo Glicko-2
Glicko-2 funciona de manera similar al algoritmo Glicko original, con la adición de una volatilidad de calificación que mide el grado de fluctuación esperada en la calificación de un jugador, en función de lo erráticos que sean sus desempeños. Por ejemplo, la volatilidad de la calificación de un jugador sería baja cuando su desempeño fuera consistente, y aumentaría si tuviera resultados excepcionalmente buenos después de ese período de consistencia. A continuación se presenta una explicación simplificada del algoritmo Glicko-2: [8]
Paso 1: Calcular cantidades auxiliares
A lo largo de un período de calificación, un jugador con una calificación actual y una desviación de calificación juega contra oponentes con calificaciones y RD , lo que da como resultado puntajes . Primero debemos calcular las cantidades auxiliares y :
dónde
Paso 2: Determinar la nueva volatilidad de la calificación
Luego, debemos elegir una constante pequeña que limite la volatilidad a lo largo del tiempo, por ejemplo (valores más pequeños de previenen cambios drásticos en las calificaciones después de resultados inesperados).
Necesitamos encontrar el valor que satisface . Una forma eficiente de resolver esto sería usar el algoritmo de Illinois, una versión modificada del procedimiento regula falsi (ver Regula falsi § El algoritmo de Illinois para obtener detalles sobre cómo se haría esto). Una vez que se completa este procedimiento iterativo, establecemos la nueva volatilidad de calificación como
Paso 3: Determinar la nueva desviación de las calificaciones y la calificación
Luego obtenemos el nuevo RD
y nueva calificación
Estas calificaciones y RD están en una escala diferente a la del algoritmo Glicko original, y sería necesario convertirlos para compararlos correctamente. [8]
Véase también
Referencias
- ^ Glickman, Mark. "El sistema Glicko" (PDF) . Archivado (PDF) del original el 3 de noviembre de 2022. Consultado el 13 de octubre de 2022 .
- ^ Valve. «Lanzamiento de la actualización de Team Fortress 2». Archivado desde el original el 29 de junio de 2021. Consultado el 29 de junio de 2021 .
- ^ "Actualización de The New Frontiers: actualización de juego 7.33". Archivado desde el original el 20 de abril de 2023. Consultado el 20 de abril de 2023 .
- ^ Justin, O'Dell. "Encontrar la pareja perfecta". Archivado desde el original el 11 de noviembre de 2020. Consultado el 16 de enero de 2015 .
- ↑ Oatmealdome (12 de agosto de 2018). «An In-Depth Look at the Splatoon 2 Ranking System» (Una mirada en profundidad al sistema de clasificación de Splatoon 2). Archivado desde el original el 24 de marzo de 2024. Consultado el 24 de marzo de 2024 .
- ^ Atorrante-cyber (20 de abril de 2023). «Ranking y calificación». GitHub, Inc. Consultado el 16 de septiembre de 2024 .
- ^ Johnson, Ben (26 de octubre de 2023). Perpetual Chess Improvement: Practical Chess Advice from World-Class Players and Dedicated Amateurs (Mejora perpetua del ajedrez: consejos prácticos de jugadores de clase mundial y aficionados dedicados) . Continental Sales, Inc.
- ^ abc Glickman, Mark E. (30 de noviembre de 2013). «Ejemplo del sistema Glicko-2» (PDF) . Glicko.net . Archivado (PDF) del original el 11 de febrero de 2020. Consultado el 27 de enero de 2020 .
- ^ "Reglamento sobre clasificaciones de la Federación Australiana de Ajedrez" (PDF) . Archivado (PDF) del original el 11 de marzo de 2020 . Consultado el 17 de enero de 2019 .
- ^ "Bienvenidos a las clasificaciones de Glicko". Archivado desde el original el 12 de diciembre de 2020. Consultado el 11 de febrero de 2010 .
Enlaces externos
- Sitio web de Glicko del profesor Glickman Archivado el 12 de diciembre de 2020 en Wayback Machine
- TrueSkill [1] Archivado el 16 de octubre de 2019 en Wayback Machine El sistema de clasificación de Microsoft toma prestadas muchas ideas de Glicko.
- Implementación de Glicko-2 para la JVM
- Implementación de Glicko-2 en JavaScript .
- mmai/glicko2js Archivado el 12 de diciembre de 2020 en Wayback Machine Implementación de Glicko-2 en JavaScript y Node.js del lado del cliente
- Implementación de Glicko-2 en Python .
- Implementación de Glicko-2 en Python .
- Implementación de R Glicko por Alec Stephenson y Jeff Sonas.
- Implementación de Scala Glicko-2. Archivado el 16 de octubre de 2019 en Wayback Machine .
- Implementación de Glicko-2 para Scala y Scala.js Archivado el 16 de febrero de 2022 en Wayback Machine