viernes, 11 de enero de 2019

Elo invertido

El otro día estaba de nuevo cotilleando sobre el rigor matemático de la fórmula del Elo, que como ya sabréis recibe este nombre en honor al físico húngaro que la inventó; Arpad Elo. Dicho sistema se empezó a utilizar para clasificar el nivel de los jugadores en el ajedrez, sin embargo es preciso cuestionarse si dicho sistema sería también válido para el othello. Habría que preguntarse también si dicho sistema no tendría que modificar ligeramente la fórmula para tener en cuenta los finales locos del othello o los discos sumados. En ajedrez por ejemplo no se tiene en consideración el número de piezas que te quedan en la partida cuando te dan mate, en othello en cambio sí se tienen en cuenta los discos que te han quedado. En ese sentido han ido los trabajos de algunos jugadores de reversi de cambiar la fórmula oficial del Elo para tener en cuenta estos factores, (un ejemplo sería el ranking de la USA othello al tener en cuenta los discos conseguidos). 


Si partimos del ajedrez, podremos observar y comparar respecto del Ranking WOF. Lo primero que podemos ver es que el tope en el ajedrez es de unos 2800 puntos de Elo, que sería el nivel del mejor o mejores jugadores del mundo. Sin embargo, en el reversi los mejores jugadores no superan de media los 2500 puntos. De ahí se destaca quizá una progresión no solo más rápida, sino mayor igualdad a grandes niveles, siempre dado que la fórmula es similar. Podríamos por tanto añadir +300 puntos a cada jugador de othello, para sacar su puntuación equivalente. Por ejemplo Takanashi tendría 2500+300=2800 puntos reales. Yo tendría 2000+300=2300 puntos de Elo.

Todo ello sin tener en cuenta que los 2 factores de irregularidad o error del Elo se maximizan en el othello. El primero de ellos es la frecuencia: el sistema Elo es relativamente válido si se tienen en cuenta un número de partidas relativamente grande, pero además, esas partidas deben estar localizadas en cierto tiempo, (pongamos un año). Por tanto, jugadores que hayan jugado por ejemplo diez o quince partidas anuales, no se les va a asignar un Elo muy fiel, igual que no se nos va asignar un Elo adecuado por jugar tan pocas partidas en Othello Quest. Hasta el día de hoy, la fórmula de OQ es la más fiable que he visto, ya que tiene en cuenta el papel de nuevos grandes jugadores, otro factor que se le suele escapar al sistema Elo: ¿cómo se encaja a un nuevo jugador muy bueno si empieza con puntuación baja y cuando gane a otro muy bueno le va a perjudicar?

Por último, el otro factor de imprecisión es que el sistema Elo tiene en consideración que se juega contra una amplia variedad de jugadores, algo que no siempre se cumple en el othello. A día de hoy desconozco si existe un ranking japonés, (aunque sería el más preciso), pero en el ranking de la FFO mezclan a japoneses con europeos y con jugadores que juegan muy poco, penalizando por no jugar. Mi Elo por ejemplo bajó de casi 2200 puntos a 1800 por estar cerca de 3 años sin jugar. El sistema Elo corrige dando menos valor como es lógico a las partidas pasadas, (tiene sentido), porque si no juegas, tu puntuación cae porque se entiende que has perdido práctica... pero eso no significa que no juegues ni que tu nivel baje, ya que el sistema Elo oficial en este caso no tiene en cuenta lo que juegas por internet o lo que puedas estudiar contra programas. ¿Significa eso que como hace 2 años que no juegas deba de corregirse tu Elo unos 200 puntos a la baja porque has empeorado? Rotundamente no tiene por qué. Eso en ajedrez en cambio sí puede tener sentido, ya que parece poco probable que un ajedrecista profesional vaya a estar 2 o 3 años sin jugar ningún torneo. Pero en othello es distinto, porque simplemente no podemos tener dinero para viajar y por tanto seguir jugando, más aun teniendo en cuenta que en España hay a lo sumo 2 únicos campeonatos nacionales, que reportarán menos de 20 partidas anuales; una miseria. Por poner otro ejemplo, creo que me dijeron que el actual campeón del mundo (de 10 años) había jugado antes del mundial unos 30 torneos ese año. Para que en España se jugaran tantos torneos, tendrían que pasar décadas. Con eso lo digo todo.


La Fórmula del Elo se obtiene del valor Esperado (probabilidad) de que un jugador de un determinado nivel gane, empate o pierda contra un jugador de otro nivel. Por ejemplo en la fórmula anterior Rb es el Elo del jugador B, pongamos 1000 puntos, mientras que Ra es el nivel del jugador A, supongamos que es de 2100 puntos. Parece poco probable que el jugador A vaya a perder. En efecto si sustituimos, Ea nos dará 0,9982 (99,82%), esa es la probabilidad que A tiene de ganar. Si por ejemplo Rb tiene 1000 puntos y Ra tiene 1500 puntos, EA nos da 0,9468 de probabilidad de ganar; baja un poco pero sigue siendo favorito. Si ambos tienen por ejemplo 1500 puntos, la fórmula da 1/2, lógicamente un 50%.

No es motivo de este artículo trillar la fórmula del Elo oficial, sino proponer una fórmula más sencilla y que permita corregir los típicos errores de la fórmula del Elo comentados anteriormente. Dado el nivel de los programas de othello que existen en la actualidad, resulta interesante proponer una fórmula más entendible y a la vez precisa. En el ajedrez no es tan fácil analizar las partidas con un programa, pero en el reversi sí lo es: de ahí he sacado lo que he llamado como Elo Invertido. Este Elo que a continuación voy a proponer con una fórmula y explicación mucho más sencilla, no solo corrige sobradamente cualquier problema de falta de juego o falta de encaje a nuevos jugadores en el ranking, sino que permite de manera irrefutablemente objetiva determinar el nivel de los jugadores.

A lo largo de los años se tuvo en consideración el sistema Elo simplemente porque no existían programas, pero el error es determinar en el othello el Elo en base al nivel de nuestros rivales (nivel recíproco), ya que eso hoy en día está demasiado sesgado. Es mucho más fiable, interesante y preciso, determinar en cambio nuestro propio nivel en base al nivel de la perfección, (el nivel del motor de IA más potente existente). Podemos considerar aquí para comparar el Saio o Zebra, a modo de Benchmark. Con ello, nuestro nivel estaría calificado en base al programa, y como a continuación detallaré, obtendremos una puntuación precisa que se ajuste a nuestro verdadero nivel. Con ello, no cabe mucha posibilidad, (y aquí destaco lo de "mucha"), de que por ejemplo ganemos 100 veces a un rival inferior catapultando nuestro Elo. En el sistema convencional podemos abusar y destrozar a un rival inferior mil veces, y subir nuestro Elo, con este sistema que propongo dicho amaño no sería posible. Vamos a comprender que así se elimina de base cualquier incongruencia con el sistema original.

Aclarado este inciso, solo nos hace falta colocar la escala y asignar puntuación. Debemos establecer el nivel tope, el nivel que ningún jugador podría alcanzar, definido éste como por ejemplo el nivel del SAIO (System Artificial Intelligence Othello). Supongamos que el SAIO tendría un nivel de 3000 puntos y 10 Dans. Si analizamos una partida del SAIO, lógicamente habrá cometido 0 errores, lo que en Elo invertido del 1 al 10 su puntuación sería de 10. Ahora supongamos que existe un jugador que comete de media 1 error en la partida: su puntuación sería de 2900 puntos y 9 Dans. No existe hoy en día un jugador así. Sí podemos encontrar tal vez alguno que cometa 2 errores, por lo que pasaría a tener 2800 puntos, siendo ese el mayor nivel humano alcanzable. A continuación os copio los resultados:

  • 0 Fallos serían 3000 y 10 Dan   

  • 1 Fallo serían 2900 y 9 Dan 

  • 2 Fallos serían 2800 y 8 Dan 

  • 3 Fallos serían 2700 y 7 Dan

  • 4 Fallos serían 2600 y 6 Dan

  • 5 Fallos serían 2500 y 5 Dan 

  • 6 Fallos serían 2400 y 4 Dan 

  • 7 Fallos serían 2300 y 3 Dan 

  • 8 Fallos serían 2200 y 2 Dan 

  • 9 Fallos serían 2100 y 1 Dan 

  • 10 Fallos serían 2000 y jugador experto 

  • 11 Fallos serían 1900 y jugador avanzado 

  • 12 Fallos serían 1800 y jugador intermedio

  • 13 Fallos serían 1700 y jugador principiante 

  • 14 Fallos serían 1500-1600 y jugador aprendiz

Ningún Elo debería ser inferior al inicio por pura lógica. El sistema Elo a menudo ha pecado de no tener tope inferior, lo cual tampoco parece tener mucho sentido. De este modo podemos enjuiciar nuestro nivel en base a una escala más lógica y fiel, sin depender de que siempre juguemos contra jugadores muy buenos y perdamos todas nuestras partidas. Si por ejemplo siempre jugamos contra jugadores de 8 Dans, podemos perder, pero eso no significa que seamos aprendices, (que sería lo que deduciría el viejo sistema,-insisto-, al no considerar el uso de programas modernos). En definitiva; podemos ser muy buenos jugando, pero no demostrarlo en base a victorias por jugar contra rivales mejores.

Lógicamente, los errores se calculan con la media de partidas disputadas. El sistema tiene aun así un pequeño coste, que es esperar un minuto a que el Saio valore los errores que hemos cometido. Debemos contarlos, y hacer la media. Pero es innegable la tremenda precisión del sistema. Podemos puntuar también así del 1 al 10 lo buenos que somos: si hemos cometido por ejemplo 10 errores, de 30 movimientos posibles, sería hacer perfecto 2/3 del juego, por lo que tendríamos una puntuación de 6,66 sobre 10, y estaríamos en el rango de 2000 puntos de Elo. La fórmula para obtener la puntuación del 1 al 10 ya la he comentado anteriormente: si por ejemplo cometemos 5 errores, se calcula tal que así: |[(5-30)/30]·10| = 8,33. Aunque no hay que confundir este número con los errores medios ni los Dans. El problema del viejo sistema de Elo es que no tiene en cuenta lo que se juega por internet, básicamente porque cuando se inventó no existía internet (ni programas), y la gente no podía jugar con grandes jugadores más que por carta y las partidas se podían demorar meses. Entonces tenía sentido que si no jugaras, tu Elo bajara, ya que no podías mejorar jugando solo. Se hace necesario por tanto modernizar este sistema.

Por último, la media a menudo no nos dará un número exacto, imaginemos pues que nuestra media es de 5,56 errores por partida. Nos vamos a la tabla y nos sale que tenemos que para 5,00 fallos debemos tener 2500 puntos y 5 Dan. Como no llegamos a 5 fallos, deberemos tener lógicamente menos de 2500 puntos... en este caso 2444 puntos y 4 Dans sería nuestro nivel. Y ya para terminar, esta fórmula se podría también perfeccionar para añadir los discos perdidos en dichos errores (y que también revela el mismo Saio app) así como tener en cuenta la desviación de dicha media.

No hay comentarios:

Publicar un comentario