Montecarlo, o por qué el ajedrez de tu teléfono tarda más en el nivel difícil

Si alguna vez jugaste ajedrez en una aplicación de teléfono, probablemente notaste algo raro: el nivel avanzado se tarda más en responder que el nivel principiante.

Uno esperaría lo contrario, o al menos que no hubiera diferencia. Si la máquina es mejor, debería ser más rápida. Pero no: la máquina no es mejor. Le diste más tiempo.

El problema del ajedrez

El número de partidas posibles en ajedrez es tan grande que ninguna computadora puede analizarlas todas, una por una, ni de lejos. No es cuestión de tener una computadora más potente; es que el número es absurdo.

Entonces, ¿cómo decide?

Simular al azar, muchas veces

El algoritmo Montecarlo hace algo que a primera vista parece hacer trampa: en vez de analizar, simula.

Toma una jugada posible y simula una partida completa a partir de ahí, hasta el final, tomando decisiones más o menos al azar. Si esa simulación termina en victoria, le da más peso a esa jugada. Luego toma otra jugada y hace lo mismo. Y otra. Y otra.

Hace miles de simulaciones en unos cuantos segundos. Y cuando se le acaba el tiempo que le diste —10 segundos, 30, un minuto— te entrega la mejor jugada que encontró hasta ese momento.

No la mejor jugada que existe. La mejor que alcanzó a encontrar.

Por eso el nivel avanzado tarda más

Ahí está la respuesta. El nivel principiante y el nivel avanzado corren exactamente el mismo algoritmo. Lo único que cambia es el umbral de tiempo.

Al nivel principiante le dieron poco. Simula unos cientos de partidas, encuentra algo decente y contesta rápido. Al nivel avanzado le dieron más. Simula muchísimas más, encuentra jugadas mejores, y por eso te hace esperar.

La dificultad de tu oponente es, literalmente, un número de segundos.

Por qué esto importa más allá del ajedrez

Montecarlo es la respuesta formal a un problema muy humano: qué haces cuando no puedes analizar el problema completo.

Y la respuesta es que no lo analizas. Tomas la decisión con los recursos que tienes en el momento, sabiendo que no es la óptima, sabiendo que si tuvieras más tiempo encontrarías algo mejor, y sabiendo también que esperar a tenerlo todo no es una opción disponible.

Nosotros hacemos eso todo el tiempo, sólo que sin llamarlo así y sin la parte incómoda de aceptar que la calidad de la decisión depende sobre todo del tiempo que le dedicamos. Montecarlo lo vuelve explícito: si quieres una mejor decisión, dale más segundos. Si tienes prisa, vas a decidir peor, y no hay manera de saltarse eso.


Este texto sale del episodio 001 del Podcast Algoritmos, sobre cómo decide una computadora.

No se pudo guardar tu suscripción. Por favor, inténtalo de nuevo.
Tu suscripción ha sido exitosa.

Boletín

Recibe nuevos artículos por correo.