EsHowto >> Electrónica >> Juegos y equipo

Cómo funcionan las computadoras de ajedrez

Si alguna vez ha visto a una persona aprender a jugar al ajedrez por primera vez, sabe que un jugador de ajedrez humano comienza con habilidades muy limitadas. Una vez que un jugador comprende las reglas básicas que controlan cada pieza, puede "jugar" al ajedrez. Sin embargo, el nuevo jugador no es muy bueno. Cada derrota temprana llega como una especie de sorpresa:"¡Oh, no pensé en eso!" o "¡No lo vi venir!" son exclamaciones comunes.

La mente humana absorbe estas experiencias, almacena diferentes configuraciones de tablero, descubre ciertos trucos y estratagemas y, en general, absorbe los matices del juego, un movimiento a la vez. A medida que se desarrolla el nivel de habilidad, el jugador a menudo lee libros para descubrir patrones de juego utilizados por los mejores jugadores. Se desarrollan estrategias y tácticas para guiar al jugador a través de cada juego.

Para un ser humano, por lo tanto, el juego de ajedrez implica una gran cantidad de pensamiento abstracto de alto nivel. -- Coincidencia de patrones visuales para recordar las posiciones de la junta, las reglas y las pautas, el pensamiento consciente e incluso la psicología.

Las computadoras no hacen nada de esto.

El ajedrez parece una actividad claramente humana, que requiere inteligencia y pensamiento, entonces, ¿cómo es posible que una computadora lo haga?

En este artículo, vamos a echar un vistazo a esta pregunta. Lo que encontrará es que las computadoras realmente no "juegan" al ajedrez como lo hace la gente. Una computadora que está jugando al ajedrez no está "pensando". En cambio, está calculando a través de un conjunto de fórmulas que hacen que haga buenos movimientos. A medida que las computadoras se vuelven cada vez más rápidas, la calidad de estos movimientos calculados es cada vez mejor. Las calculadoras de ajedrez por computadora son ahora los mejores jugadores de ajedrez del planeta, aunque lo hacen totalmente a ciegas.

Informática y Ajedrez

Cómo funcionan las computadoras de ajedrez

El estado actual del arte en el ajedrez computarizado es bastante complejo, pero todo implica un cálculo ciego que es muy simple en su núcleo.

Supongamos que comienza con un tablero de ajedrez configurado para el comienzo de un juego. Cada jugador tiene 16 piezas. Digamos que empiezan las blancas. Las blancas tienen 20 movimientos posibles :

El jugador blanco elige uno de esos 20 movimientos y lo hace.

Para el jugador negro, las opciones son las mismas:20 movimientos posibles. Así que las negras eligen un movimiento.

Ahora las blancas pueden moverse de nuevo. Este próximo movimiento depende del primer movimiento que las blancas eligieron hacer, pero hay alrededor de 20 movimientos que las blancas pueden hacer dada la posición actual del tablero, y luego las negras tienen aproximadamente 20 movimientos que pueden hacer, y así sucesivamente.

Así es como una computadora ve el ajedrez. Lo piensa en un mundo de "todos los movimientos posibles", y hace un gran árbol para todos esos movimientos, así:

En este árbol, hay 20 movimientos posibles para las blancas. Hay 20 * 20 =400 movimientos posibles para las negras, dependiendo de lo que hagan las blancas. Entonces hay 400 * 20 =8000 para el blanco. Luego hay 8.000 * 20 =160.000 para el negro, y así sucesivamente. Si tuviera que desarrollar completamente todo el árbol para todos los movimientos de ajedrez posibles, el número total de posiciones en el tablero es de aproximadamente 1,000,000,000,000,000,000,000,000,

000,000,000,000,000,000,000,000,000,000,000,000,000,000,

000,000,000,000,000,000,000,000,000,000,000,000,000,000,

000.000.000.000 o 10 120 , más o menos unos pocos. Ese es un número muy grande. Por ejemplo, solo ha habido 10 26 nanosegundos desde el Big Bang. Se cree que solo hay 10 75 átomos en todo el universo. Cuando consideras que la galaxia de la Vía Láctea contiene miles de millones de soles y que hay miles de millones de galaxias, puedes ver que son muchos átomos. Ese número se ve eclipsado por el número de posibles movimientos de ajedrez. ¡El ajedrez es un juego bastante complicado!

Ninguna computadora va a calcular el árbol completo. Lo que intenta hacer una computadora de ajedrez es generar el árbol de posiciones del tablero cinco, diez o veinte movimientos hacia el futuro. Suponiendo que hay alrededor de 20 movimientos posibles para cualquier posición en el tablero, un árbol de cinco niveles contiene 3.200.000 posiciones en el tablero. Un árbol de 10 niveles contiene alrededor de 10 000 000 000 000 (10 billones) de posiciones. La profundidad del árbol que una computadora puede calcular está controlada por la velocidad de la computadora que juega el juego. Las computadoras de ajedrez más rápidas pueden generar y evaluar millones de posiciones en el tablero por segundo.

Una vez que genera el árbol, la computadora necesita "evaluar las posiciones del tablero". Es decir, la computadora tiene que mirar las piezas en el tablero y decidir si esa disposición de piezas es "buena" o "mala". La forma en que lo hace es usando una función de evaluación . La función más simple posible podría simplemente contar el número de piezas que tiene cada lado. Si la computadora está jugando con blancas y cierta posición del tablero tiene 11 piezas blancas y nueve piezas negras, la función de evaluación más simple podría ser:

11 - 9 =2

Obviamente, para el ajedrez esa fórmula es camino demasiado simple, porque algunas piezas son más valiosas que otras. Entonces, la fórmula podría aplicar un peso a cada tipo de pieza. A medida que el programador lo piensa, hace que la función de evaluación sea cada vez más complicada al agregar cosas como la posición del tablero, el control del centro, la vulnerabilidad del rey al jaque, la vulnerabilidad de la dama del oponente y muchos otros parámetros. No importa cuán complicada se vuelva la función, sin embargo, se condensa en un solo número que representa la "bondad" de esa posición en el tablero.

Diagrama de árbol de tres niveles

Cómo funcionan las computadoras de ajedrez

El siguiente diagrama muestra un árbol de tres niveles que mira tres movimientos por delante y ha evaluado el valor de las posiciones finales del tablero:

La computadora está jugando como el jugador blanco. El jugador negro se ha movido y ha dejado la posición del tablero en la parte superior del árbol. En este árbol, las blancas pueden hacer tres movimientos posibles. De cada uno de esos tres movimientos posibles, las negras pueden hacer tres movimientos posibles. Desde cada una de esas nueve posiciones en el tablero, las blancas pueden hacer dos movimientos posibles. (En la vida real, el número total de movimientos desde cualquier posición es de unos 20, pero eso sería difícil de dibujar).

Para decidir qué hacer, la computadora mira este árbol y trabaja hacia arriba desde la parte inferior. Sus cálculos están configurados para que encuentre las mejores posiciones en el tablero de cada una de las posibles posiciones que tomarán las negras (toma el máximo):

Cómo funcionan las computadoras de ajedrez

Un nivel más arriba, asume que las negras elegirán la peor posición posible para las blancas (toma la mínima):

Cómo funcionan las computadoras de ajedrez

Finalmente, toma el máximo de los tres primeros números:7. Ese es el movimiento que hará la computadora. Una vez que las negras hacen su movimiento, la computadora vuelve a realizar todo este proceso, genera un nuevo árbol y evalúa todas las posiciones del tablero para determinar su próximo movimiento.

Este enfoque se llama algoritmo minimax porque alterna entre los máximos y los mínimos a medida que asciende en el árbol. Aplicando una técnica llamada poda alfa beta , el algoritmo puede ejecutarse el doble de rápido y requiere mucha menos memoria. Como puede ver, este proceso es completamente mecánico y no implica ningún pensamiento. Es simplemente un cálculo de fuerza bruta que aplica una función de evaluación a todas las posiciones posibles del tablero en un árbol de cierta profundidad.

Lo interesante es que este tipo de técnica funciona bastante bien. En una computadora lo suficientemente rápida, el algoritmo puede mirar lo suficientemente lejos como para jugar un muy buen juego. Si agrega técnicas de aprendizaje que modifican la función de evaluación en función de juegos anteriores, la máquina puede incluso mejorar con el tiempo.

Sin embargo, lo más importante a tener en cuenta es que esto no se parece en nada al pensamiento humano. Cuando aprendamos cómo funciona el pensamiento humano y creemos una computadora que use esas técnicas para jugar al ajedrez, realmente estaremos en algo...

Para obtener más información sobre computadoras de ajedrez y temas relacionados, consulte los enlaces en la página siguiente.