Showing posts with label Elo. Show all posts
Showing posts with label Elo. Show all posts

Friday, June 03, 2022

Los datos del ajedrez mexicano (y de otros países)



La Federación Internacional de Ajedrez (FIDE por sus siglas en francés), es el organismo que sanciona el juego ciencia en todo el planeta. Es el encargado de organizar los torneos por equipos (a niivel internacional), campeonatos europeos por ejemplo, así como olimpiadas de ajedrez (antes llamados torneos de las naciones), entre muchos otros torneos, incluso para diferentes edades y categorías,  y por si todo esto fuera poco, organiza el campeonato por el título mundial, amén de las justas para elegir al retador del actual Campeón Mundial (Magnus Carlsen).

La FIDE lleva también el control de la puntuación Elo, o rating, que es una medida numérica que representa la fuerza ajedrecística de cada jugador. El sistema de rating (como lo llamó su creador, el físico Arpad Elo), toma en cuenta una idea muy simple: estadísticamente el resultado más probable cuando se enfrentan dos jugadores de la misma fuerza, es el empate. No importa si los contrincantes son jugadores de 3a fuerza o jugadores de la elite.

Elo desarrolló una serie de fórmulas para establecer cuantos puntos se ganan (y se pierden), cuando se juega con diferentes ajedrecistas que tienen más o menos rating que uno. Igualmente, puede calcular los puntos que se pierden cuando un jugador superior cae derrotado por uno inferior. Elo armó una simple tabla que casi es lineal (se curva en los extremos), por lo que calcular el nuevo rating de un jugador es una cuestión de sumas, restas y multiplicaciones.

Cada mes, la FIDE publica una lista con el rating de todos los jugadores asociados. Esto significa que podemos saber quiénes son los jugadores más fuertes de la lista. Por ejemplo, hoy día Magnus Carlsen tiene el más alto rating de la historia: 2864 puntos. Esto es una barbaridad. Un Gran Maestro (título que otorga la propia FIDE), empieza en 2500 puntos. Con esta simple comparación podemos pensar que un Campeón del Mundo puede derrotar el 95% de las ocasiones a alguien con la puntuación Elo mínima de Gran Maestro. Vamos, quien escribir tiene unos 800 puntos menos que Carlsen. Las tablas matemáticas de Elo pronostican que yo no podría ganarle una partida en cien. Así de fuerte es el campeón mundial.

El trabajo de Elo es francamente relevante porque finalmente se pudo dar un criterio numérico a algo tan incierto a la habilidad de un jugador de ajedrez. Tan es importante esta contribución que ahora los organizadores, para invitar a los jugadores a sus torneos, revisan esta lista para ofrecerles jugar en sus respectivos torneos. Antes el título honorífico de GM (gran maestro), MI (maestro internacional) o FM (maestro FIDE), eran los criterios aceptables. Hoy estos títulos son más por la vanidad del jugador, porque lo que ahora habla por su fuerza es su puntuación Elo.

La publicación de la lista de rating mensual se puede descargar del sitio web de la FIDE y dicha lista, que contiene unos 380 mil jugadores viene en orden alfabético. Por lo tanto, saber quiénes son los ajedrecistas mexicanos que están incluidos en la lista no es un asunto trivial. Entonces se me ocurrió escribir un programa simple, que lee el archivo descargado (que viene en modo texto sin símbolos raros) y lo que hago es simplemente buscar las siglas MEX. Cuando el programa entonces procesa el archivo completo descargado, filtra los datos de los mexicanos. 

Por ejemplo, la lista de los mexicanos es de 10080 jugadores registrados en la FIDE, lo cual me parece, no es nada despreciable. Esto quiere decir que el ajedrez mexicano tiene cierta presencia que se está incrementando desde hace algunos años. Desde luego que esto no es comparable a otros países, pero en la medida de los recursos con los que cuenta el ajedrez federado, bien podemos decir que la tendencia es de incremento.

El filtrado de la lista nos puede decir también cuantos grandes maestros tiene registrados la federación, o bien, cuántos maestros FIDE hay en el planeta. Por ejemplo, hay unos 1700 grandes maestros (el máximo título aparte del de Campeón Mundial) y en total hay  8470 jugadores con un título de Maestro FIDE.

A quien le interese esta herramienta, escríbame a morsa@la-morsa.com y le mando el software de manera gratuita.

Friday, July 08, 2016

Los problemas de hacer bases de datos


Recientemente se me encomendó la tarea de llevar el rating de la Federación Nacional de Ajedrez (FENAMAC), la cual tiene ya unos 40,000 socios registrados, aproximadamente. Esta lista es la medición numérica que tienen los jugadores, equivalente a su nivel ajedrecístico. La idea es que las asociaciones de cada estado de este país manden a la FENAMAC los resultados de sus torneos (vía un archivo específico hecho en alguno de los programas para generar torneos de ajedrez, por ejemplo, Swiss Manager), y entonces mi tarea es calcular el desempeño de cada jugador de acuerdo a su rating antes del torneo, los puntos que realizó y el promedio de nivel de rating de sus oponentes. De acuerdo a las fórmulas de Elo se sabe entonces si el jugador subió o bajo puntos en su rating, también llamado "Elo".

Pues bien, me puse a trabajar usando un manejador de bases de datos gratuito llamado Absolute Database, el cual tiene muchas virtudes comparado con el sistema de bases de datos nativo de Delphi (BDE), el cual, por ejemplo, tiene que instalarse aparte y esto causa una dificultad extra, porque portar el programa a otra máquina implica primero instalar BDE en la otra computadora y entonces poder cargar el programa del cálculo del rating. Absolute Database -para las necesidades del problema- hace la tarea magníficamente bien y además, todo está encapsulado en el mismo programa ejecutable que se genera en Delphi. Es decir, tengo el manejador de bases de datos y mi código en el mismo archivo, cosa que abrevia la problemática, pues no hay que instalar nada extra.

Pero fuera de mi código, hallé que la base de jugadores está llena de problemas, todos ellos comunes a todas las bases de datos. Por ejemplo, los nombres de los jugadores están escritos con mayúsculas en ocasiones, o con comas después de los apellidos y los nombres, o bien, no tienen acentos, o están incluso mal escritos. Y entonces la tarea inicial -antes de programar nada- es tratar de limpiar la base de datos, la de los jugadores, para que después el programa del cálculo del rating encuentre a los jugadores en la base de datos y pueda actualizarse de acuerdo a esto.

Porque esto es lo crítico: si la base de datos no está limpia, si tiene nombres escritos de diferentes formas, entonces lo que se tiene es una problemática que a la larga no es tan fácil de resolver, al menos automáticamente, y obliga al programador (o usuario del programa, que en este caso soy yo mismo), a tener que ver y revisar manualmente cada caso de lo que pasa cuando se calcula el rating de algún jugador. Considerando esto nada más, me di cuenta que las bases de datos son solución de muchas dificultades, pero para ello se necesita que la información esté bien dispuesta, limpia, en un formato -digamos- estándar, que pueda ser manejado fácilmente.

Después de todo esto de lo que he hablado, ya tengo un programa que permite el cálculo del rating automático cuando se me entregan los archivos de Swiss Master. Tiene aún algunos problemillas pero poco a poco se irán resolviendo. Los "bugs", desafortunadamente, aparecen en el peor de los momentos y no cuando uno espera algo extraño.

Saturday, February 25, 2012

La inflación en el rating en ajedrez


En ajedrez existe una medida llamada "rating" o "Elo" (por el apellido a quien se le ocurrió inventar esto), el cual sirve para medir la fuerza ajedrecística de manera estadística. Arpad Elo, quien era físico/matemático y un fuerte aficionado (aunque de origen húngaro), vivió en Milwakee y ganó 8 veces el campeonato de su ciudad (allá por los años treintas del siglo pasado), estudio la idea de crear un sistema para clasificar numéricamente la fuerza en ajedrez. Luego de un interesante trabajo, la Federación Internacional de Ajedrez(FIDE, por sus siglas en francés), decidió incorporar ese sistema en 1970 y a partir de ese momento ya nada fue igual.

Gracias a este sistema, los torneos no solamente eran fuertes porque jugaban ajedrecistas famosos, sino porque tenían una clasificación que los hacía ver más fuertes. La idea fundamental de Elo es la siguiente: "Si dos jugadores tienen la misma puntuación, la probabilidad de que gane uno o el otro es de 50%". Elo entonces decidió calcular de acuerdo a una curva que casi es lineal, la probabilidad de que un jugador le gane a otro si el primero le lleva 10, 20, 30, ... , 100, 200, 300 puntos de diferencia. Esa tabla se llama precisamente "tabla de expectativas", porque indica, de acuerdo a la diferencia entre los ratings de los jugadores, quién tiene más probabilidades de vencer. Por ejemplo, si un jugador le lleva a otro unos 100 puntos de ventaja, entonces el jugador con la diferencia a su favor tiene que ganar 7 de cada 10 partidas aproximadamente.

Curiosamente con los años, el sistema de rating ha empezado a sufrir una serie de problemas, por decirlo de alguna manera. Por alguna razón no identificada aún, la medida ha tenido un efecto inflacionario. Por ejemplo, hace unos 15 años, tener más de 2650 puntos de rating lo calificaba al jugador como en la elite de jugadores. Hoy es un rating de un jugador fuerte, pero nada que hacer ante los 2700 puntos o más que ya unos 30 jugadores tienen en el mundo. Fischer, por ejemplo, llegó a tener 2780 puntos en 1972, cuando aún no había inflación en el rating. Hoy estaría entre los cinco o seis mejores del planeta. Así de fuerte era Bobby.

Otro jugador, Kasparov, que por 25 años se mantuvo en el primer lugar de la lista de rating, llegó a la estratosférica cifra de 2851 puntos. Nadie a la fecha ha llegado a ese nivel. Algunos dicen que el rating de Kasparov sufrió también del efecto inflacionario, pero la realidad es que con o sin ese efecto, Kasparov ha sido probablemente el mejor ajedrecista de todos los tiempos.

En mi opinión, la razón de la inflación del rating no es muy difícil de hallar. Por ejemplo, tenemos los resultados de los tres torneos en Wijk aan Zee 2012 (grupos A, B y C). Si sumamos el total de puntos de rating que ganaron y perdieron los jugadores (la cifra que está a la derecha de cada tabla), hallaremos que para el grupo A, B y C, el total de puntos ganados y perdidos es de 0, 0 y -1, respectivamente. El valor de -1 puedo achacarlo al redondeo (se desprecian a veces los decimales y el programa de Chessbase que hace estas tablas quita los decimales, redondeando a valores enteros). Así que probablemente si rechecamos esos resultados, con decimales incluídos, hallaremos que el total de puntos positivos y negativos, ganados y perdidos por los jugadores, suma cero.




(Dé click en cualquiera de las tablas para verlas en su tamaño original)

Esto significa que en este caso, en los tres torneos, el total de puntos de rating en juego se "reparte" entre los jugadores. Si ellos jugaran siempre entre sí los torneos, no habría inflación posible. Cuando un jugador no logra la puntuación esperada por la tabla de expectativas, entonces cede puntos de rating. En caso contrario, puedo ocurrir lo contrario y el jugador hacerse de puntos.

¿De dónde viene el problema de la inflación del rating? Sin duda de que los jugadores participan en torneos en donde juegan otros jugadores. Como no son los mismos ajedrecistas siempre, los mejores le quitan sus puntos Elo a los demás y cuando estos ganadores enfrentan a otros ajedrecistas -digamos de elite- ceden u obtienen puntos de acuerdo a sus fracasos o éxitos, respectivamente, y por ende,  se genera este efecto de inflación.

Por ejemplo, supongamos que tomamos toda la lista de rating de la FIDE, unos 130,000 jugadores actualmente. Si ése es el universo de ajedrecistas, entonces jugando entre ellos, unos con otros en diferentes torneos, no debería alterar el total de puntos ganados y perdidos en promedio, el cual arroja cero como la cifra correcta. Pero el punto es que mes a mes se incorporan nuevos jugadores a la lista de rating y entonces esos nuevos jugadores entran con una puntuación que se les asigna, y que no se dio quitándoles puntos a otros jugadores para así conservar el equilibrio de puntos ganados menos perdidos que nos dan cero o cercano al cero.

Por ejemplo, en los años ochentas, en los torneos FIDE que empezaron a jugarse en el mundo, un jugador no clasificado podía jugar ese tipo de torneos y se le asignaba una cifra temporal de rating de 2200 puntos. Ese número no era consecuencia de la fuerza de nadie. No, se le asignaba al jugador para que éste empezara el torneo con un valor. Una vez terminada la justa, se calculaba su rating y poco a poco, el ajedrecista se acomodaría al rating o fuerza ajedrecística que le correspondiera.

Cabe decir que hace unos años (quizás veinte), la FIDE decidión subir 100 puntos al rating femenil (a excepción de las hermanas Polgar, que ya jugaban como los mejores ajedrecistas del sexo opuesto). Si de pronto la FIDE "regala" a cada jugadora 100 puntos en cada rating, el efecto inflacionario tiene que verse reflejado en algún momento. Para mí es un asunto de sentido común. El conjunto total de ajedrecistas en el mundo, clasificados con rating, tiende a crecer y el efecto se notará -lentamente- como inflación en el rating.

¿Alguien encuentra algún fallo en este razonamiento?