Rybka 3 y Monte Carlo

por ChessBase
19/01/2009 – No es una nueva variante del ajedrez con dados. Tampoco hemos añadido una ruleta para darle más emoción al juego. No hay que estar vestido de rigurosa etiqueta ni llegar a bordo de un coche de lujo. No verá famosas y rutilantes estrellas de vacaciones ni podrá asistir en palco de honor al gran premio de Fórmula Uno. Ni siquiera las casillas han pasado de ser blanquinegras a rojinegras. No obstante, la nueva función de análisis desarrollada e incorporada en Rybka 3 le permitirá acceder a un innovador método para valorar posiciones. En el siguiente artículo le desvelamos sus entresijos y le indicamos como usarla. Haciendo juego...

ChessBase 18 - Mega package ChessBase 18 - Mega package

Para ganar, primero debes aprender
La nueva versión 18 de ChessBase ofrece posibilidades completamente nuevas para el entrenamiento y el análisis de partidas: análisis del estilo de juego, búsqueda de temas estratégicos, acceso a 6.000 millones de partidas de Lichess, preparación del oponente tras una exploración de sus partidas en Lichess, descarga de partidas de Chess.com con API incorporada, motor de análisis en la nube y mucho más.

Más...

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

Versión multiprocesador: Deep Rybka 3 99.90 euros
Versión para un procesador: Rybka 3 49.99 euros
Libro de aperturas de Rybka 3 24.99 euros

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


Pistas, tutoriales e indicaciones sobre nuestros productos, para sacarles todo el partido y más.

Comentar

Normas sobre los comentarios

 
 

¿Aún no eres usuario? Registro