Análisis Monte Carlo
Es un método nuevo de analizar una posición. El módulo juega internamente un
gran número de partidas muy rápidas y genera una valoración con relevancia
estadística.
El resultado producido por el análisis Monte Carlo no se parece a la
valoración de la posición habitual de los módulos de ajedrez. En el ejemplo que
les ofrecemos más arriba Rybka nos dice que estadísticamente las blancas pueden
esperar puntuar en el 65.3% de los casos si las negras juegan 16...Da5, y del
60.6% si mueven 16...h6 (las valoraciones siempre se dan desde el punto de vista
de las blancas) Puesto que las partidas se juegan hasta obtener un resultado,
las opciones a largo plazo se evalúan mejor que en la búsqueda tradicional.
La calidad de las valoraciones estadísticas producida en un análisis Monte
Carlo se mejora cuanto mayor es el número de partidas, más que con la mayor
profundidad de búsqueda. Esta última puede establecerse en la ventana de diálogo
mostrada en la parte superior. Cada ply adicional de profundidad de búsqueda
reduce a la mitad el número de partidas que es capaz de jugar el módulo en un
periodo de tiempo. Si piensa darle solo un par de minutos, entonces una búsqueda
de 5 ply está bien; si quiere dejar al módulo analizando toda la noche, querrá
usar una búsqueda más profunda.
El análisis Monte Carlo siempre se realiza en el modo de un módulo único. Eso
se debe a que en búsquedas superficiales una búsqueda en paralelo no es
eficiente: dos módulos simples son casi dos veces más rápidos que un módulo
dual. Así que es mejor arrancar varios módulos (dependiendo del número de
núcleos ["cores"] que tenga su procesador), que luego trabajarán en distintas
variantes al mismo tiempo.
Se trata de una función que se asemeja a la herramienta de análisis "Duelo".
Duelo ofrece la posibilidad de jugar partidas un número determinado de veces,
prefijado con distintos ajustes de tiempo/profundidad. El análisis Monte Carlo
juega partidas a menudo varias veces (hasta que se detiene el análisis) con la
misma profundidad, sin repetir nunca las jugadas. Cuanto más tiempo se deje
funcionar el análisis, mejores resultados se obtendrán. No obstante, ambos
sistemas están basados en la misma idea y puede considerarse que el análisis en
forma de duelo es una versión originaria y más sencilla del análisis Monte Carlo.
Además, en el análisis Monte Carlo se presentan los resultados en forma de árbol
de variantes.
Normalmente se asocia el nombre de Monte Carlo con la generación de muestreos
aleatorios. En ese sentido el nombre de este tipo de análisis puede llevar a
error. Las muestras (partidas) que se recopilan en él y que luego se evalúan
estadísticamente siguen una sistematización para evitar repeticiones. La idea es
evaluar una posición generando varias partidas a partir de la misma y
comprobando el resultado. Para ello en cada posición se toman en consideración
todas las jugadas dentro de un rango de valoración. Por ejemplo, asumamos que
hay dos jugadas que entran dentro de ese margen de valoración, por ejemplo 1.e4
y 1.d4 en la posición inicial. Con 1.e4, se jugaría una partida. Tras
terminarla, se comenzaría otra, pero esta vez con 1.d4. En la siguiente partida
se volvería a ugar 1.e4 pero se escogería ahora la segunda mejor alternativa de
las negras. Luego, de nuevo se volvería a 1.d4 seguida de la segunda mejor
alternativa de las negras y así sucesivamente.
Veamos ese modo de análisis en funcionamiento, para lograr una mejor
comprensión de lo que hace.
Tomaremos el ejemplo que nos propone Steve López, con la posición de una partida jugada en 1901 en (no
podría ser de otra manera) Monte Carlo. David Janowski tiene las piezas
negras contra M. Didier. Las blancas acaban de jugar
14.c3 y se alcanza la siguiente posición:
Deberíamos tener presente que esta partida tiene lugar en 1901. Eran los días
en que Janowski era un temido y respetado contendiente, muy diferente del
disoluto y adicto al juego de mediados de los años 1920. ¿Qué hizo David
Janowski en esta posición? Admitiré que a medida que reproducía la partida, nunca vi venir lo que pasó.
En vez de vivir con los dos caballos blancos apoyándose mutuamente, Janowski sacrifica
la calidad jugando 14...Txb6 15.Cxb6 Dxb6 16.cxd4 exd4. Me picó la
curiosidad y decidí ver lo que resultaría con el análisis Monte Carlo de Rybka
a partir de la posición tras 14.c3.
Para iniciar un análisis Monte Carlo a partir de una posición determinada,
vayan al menú Herramientas, seleccionen "Análisis" y luego "Monte Carlo" (Adviertan
que esa función aparecerá desvaída en gris y no estará disponible a menos que se
tenga cargado un módulo de Rybka). Ya saben lo que pasa a continuación:
desaparece el panel con la notación de la partida y se sustituye por el botón de
carga de libro, al que se superpone el siguiente diálogo:
Tiene tres tipos de ajustes en este diálogo. El primero es la profundidad de
búsqueda, con un valor por omisión de "5". Con él se controla cuanto
preverá (en medias jugadas o "plies")
el módulo antes de hacer una jugada. Por ejemplo, si deja el valor en "5",
el módulo calculará 2,5 jugadas antes de realizar un movimiento. Recuerden que
el módulo va a jugar muchas partidas contra si mismo y a almacenar las jugadas
en forma de árbol, así que la profundidad de búsqueda es importante. Sin
embargo, deben ser conscientes de que hay una especie de compromiso aquí; cuanto
más alta se establezca la profundidad de búsqueda, más tiempo necesitará el
módulo para realizar cada jugada, así que hay que sopesar tiempo y profundidad.
Por otra parte, establecer una profundidad de búsqueda menor significa que se
podrán jugar muchas más partidas en una cantidad de tiempo dada, pero es
probable que las jugadas sean más superficiales. Tengamos presente también que
deberíamos usar solo números impares para la profundidad de búsqueda, porque los
módulos de ajedrez tienden a sufrir puntos ciegos tácticos cuando realizan
análisis con profundidades de búsqueda pares.
En las opciones de configuración, cuando se trata de una versión de Rybka
para más de un procesador, se puede elegir el número de módulos (procesadores) a
emplear. Si se dispone de un equipo con 4 procesadores y se fija el valor en 4,
entonces se cargan 4 versiones distintas del módulo. Cada una juega en paralelo
distintas líneas que las demás, es decir, se general 4 partidas simultáneamente,
con lo cual se aprovecha el equipo de la forma más eficiente para el análisis.
El último ajuste es el tamaño o amplitud del árbol. En cierto modo es similar al
factor de ramificación del análisis profundo de una posición y es otro
compromiso entre espacio y tiempo. Si se genera un árbol "estrecho", no se
mostrarán muchas jugadas alternativas en el árbol de partidas, pero el proceso
total de juego de partidas y generación del árbol será más rápido. Los árboles "amplios"
muestran más alternativas, pero tardan más en generarse (requiere más tiempo de
procesador y así ralentizan el módulo) Estos tamaños son relativos y dependen de
la posición en concreto. Hay posiciones más lineales, con pocas jugadas
candidatas, en las que por mucho que queramos no hay forma de poblar el árbol
con muchas ramas significativas. En otros casos, existen muchas jugadas
candidatas de valor aproximadamente igual y podar demasiado el árbol puede
hacernos perder la mejor continuación.
Tomemos un árbol "medio" y una profundidad de búsqueda de "7",
hagamos clic en "OK" y veamos lo que pasa.
El programa cargará el módulo y luego durante
algunos minutos parece que no sucede nada, pero más tarde verán como el panel de
notación en forma de árbol comienza a poblarse de datos:
Se parece mucho al árbol o libro de aperturas al que ya están acostumbrados.
Éste es un poco distinto en los datos que muestra. "N" es el número de partidas jugadas (75 en el momento en el que se hizo la captura
de pantalla; 19 con la jugada 14... Txb6 y 56 con 14... Ce6) y un porcentaje (%) numérico del rendimiento de la jugada desde el
punto de vista de las blancas; comenzamos a ver que el sacrificio de calidad de Janowski
probablemente no fue bueno. "Prob" es la probabilidad de que se realice una
jugada.
En la parte superior de la pantalla se facilita más información útil:
En primer lugar, se indica el módulo empleado para el análisis y la
profundidad de búsqueda configurada. A continuación de informa de las partidas
que se llevan jugadas (115 en el ejemplo, con 48 victorias blancas, 59 tablas y
8 victorias de las piezas negras. Luego se informa del porcentaje de éxito en
ese instante (67,4% en la ilustración), siempre desde el punto de vista de las
blancas. "TP" indica el rendimiento en puntos Elo (recordemos que
también desde el punto de vista de las blancas. En la información de la
parte derecha se facilitan datos referidos a una función estadística de distribución
normal. La valoración de la posición se refleja en el valor Elo y las
estadísticas muestran los valores de confianza y los entornos. En el ejemplo, la
valoración en ese momento era de +126 Elo (desde el punto de vista de las
blancas), con un 95% de confianza en que ese valor esté entre +86 y +177.
Los márgenes de confianza se estrechan a medida que se juegan más partidas.
Aunque no se conozca el Elo de los jugadores, siempre se puede calcular un
valor del rendimiento. +126 significa que las blancas rinden 126 puntos Elo
mejor que las negras. Visto de otro modo, en el ejemplo, se
considera que la posición da un +126 Elo favorable a las blancas, con un 95% de confianza en
que el Elo se sitúe entre al menos +86 Elo y +177 Elo como máximo.
El análisis Monte Carlo puede dejarse funcionar tanto tiempo como se quiera.
Cuanto más dure, más partidas se generarán y más fiables serán las conclusiones
estadísticas.
En la imagen siguiente vemos los cambios experimentados en los resultados
tras 129 partidas. Compárenlos ustedes mismos con los mostrados más arriba,
cuando se llevaban 75 partidas:
En la esquina inferior izquierda del panel, se van mostrando las variantes que
se incluyen en las partidas que se disputan:
Para detener el análisis Monte Carlo, hay que hacer clic en el botón rojo con
una equis blanca que está en la esquina superior izquierda del panel. Al salir
se le ofrecerá la posibilidad de guardar el árbol generado para posteriores
referencias..
Al volver a la ventana normal de tablero, si ha estado reproduciendo jugadas
del árbol mientras se efectuaba el análisis, verá que estas se han incorporado a
la notación en forma de variantes.
La función de búsqueda es intrínsecamente inestable si se usa más de una CPU.
Casi nunca se obtendrá la misma búsqueda dos veces incluso aunque se inicie en
las mismas condiciones. Eso introduce suficiente aleatoriedad para que en
determinadas circunstancias se generen distintas valoraciones y que a veces los
programas opten por distintas jugadas incluso en el mismo equipo. Incluso cuando se emplea
una sola CPU se obtienen inestabilidades, en especial cuando se está analizando
en modo infinito. Dependiendo de cuando se detenga la búsqueda, hay distintos
valores en las tablas hash, que luego serán empleados en la siguiente búsqueda.
Por eso es prácticamente imposible reproducir una búsqueda, a parte de recargar
un módulo con 1 CPU, con el mismo tamaño de tablas hash y sin ficheros de
aprendizaje o similares. No obstante, eso no quiere decir que los resultados o la valoración del análisis no vayan a coincidir, si se genera un número estadísticamente significativo de partidas.
Enlaces:
Precios
Rybka 3 incluye una base de datos de un millón de partidas y la compra del
programa conlleva un año de acceso al servidor
Playchess.com.
Rybka 3 es un módulo UCI, que incluye las versiones para sistemas operativos de
32 y 64-bit. Rybka puede configurarse como módulo por defecto en ChessBase 10.
Encargue ya Rybka