¡POR EL PODER DE LAS MATEMÁTICAS!
Una computadora de ajedrez funciona exactamente como cualquier otra computadora, al reducir el problema a un montón de cálculos tontos. Porque para eso son buenas las computadoras. Por supuesto, los algoritmos modernos de ajedrez son bastante complicados, pero la esencia no es tan difícil de entender.
Paso 1: construir un árbol
Digamos que tienes un tablero de ajedrez configurado, con cada jugador con 16 piezas. Y es el turno de la computadora. Ahora, la computadora puede hacer 1 de 20 movimientos posibles (2 cada uno para los 8 peones, más 2 cada uno para los caballeros). Y, en respuesta a cualquiera de esos movimientos, el oponente puede hacer 20 movimientos posibles. Entonces, dos movimientos en el juego, tenemos 20 * 20 = 400 escenarios posibles.
Ahora la computadora tiene alrededor de 20 formas de responder a cada uno de estos 400 escenarios.
Y así este árbol sigue creciendo. En teoría, la computadora perfecta podría llegar al final de este árbol y observar todas las configuraciones posibles de la placa, aproximadamente 10 ^ 120. Luego vería cuáles son los caminos por este árbol que conducen a su victoria, y elegiría en consecuencia.
Paso 2: evaluación de los resultados
Pero hay un problema. 10 ^ 120 es un número enorme muy jodido. Contrasta el total de átomos estimados en el universo – 10 ^ 75, y obtienes una idea de cuán grande. Estaríamos sentados esperando que la maldita cosa se mueva hasta que el universo termine.
- ¿Cómo entró el primer programa o software en la computadora que era todo mecánico?
- ¿Las tarjetas gráficas dedicadas en las computadoras portátiles se pueden reemplazar o actualizar?
- ¿Hay algo que pueda destruir rápidamente un disco duro (además de un imán fuerte o romper el disco)?
- ¿Cómo funcionan las computadoras con lenguaje binario?
- ¿Cuáles son las especificaciones de su computadora portátil para juegos? ¿Y qué portátil es?
Entonces, lo que hacen las computadoras reales es construir este árbol con lo mejor de sus capacidades de hardware: 5, 10, 20 o lo que sea que se mueva hacia el futuro. Una vez que tienen este árbol limitado, evalúan cada posición utilizando una función de evaluación.
Para un ejemplo realmente simple, una función de evaluación podría ser
cantidad de piezas que tiene la computadora – cantidad de piezas que tiene el oponente.
Por ejemplo, a la computadora le quedan 10 piezas en el tablero, el oponente solo tiene 8. Luego, la computadora evaluaría dicho tablero a 10 – 8 = 2.
Por supuesto, esa no es una función de evaluación muy buena, pero se entiende la idea. Esto puede hacerse cada vez más complicado, teniendo en cuenta el valor de las piezas individuales, la posición del tablero, el control del centro, la vulnerabilidad del rey para verificar, la vulnerabilidad de la reina del oponente y toneladas de otros parámetros.
Cualquiera que sea la función, le permite a una computadora comparar las posiciones del tablero, para ver cuáles son los resultados deseables.
Paso 3: hacer un movimiento
Una vez realizado el análisis, es hora de tomar una decisión. Hagamos un árbol simplificado.
La computadora, que juega como blanco, tiene que decidir si se mueve. Construye el árbol de arriba y aplica lo que se llama el algoritmo Minimax.
Comienza desde el nivel inferior (3er), y elige el que tenga la puntuación máxima. Considere el cuadrado más a la izquierda en el segundo nivel. Tiene dos resultados posibles: 2 y 8. Dado que será el turno de la computadora en esa etapa, elige el mejor resultado, es decir, el que tiene la puntuación MÁX , que es 8, por lo que asigna 8 a ese nodo. Del mismo modo para todos los nodos en el 2do nivel.
Ahora, para el segundo nivel, el resultado lo decide el oponente, ya que en ese momento, será el turno de las negras. La computadora supone que el negro hará el movimiento que es mejor para el negro, y por lo tanto el peor para el blanco, por lo tanto, elige las configuraciones con puntaje MIN . Por ejemplo, para el nodo central en el primer nivel, hay tres posibilidades: 9, 5 y 9. La computadora asume que el negro tomará el que deja a la computadora más débil, y eso es 5. Entonces, los nodos del primer nivel son Todos los valores dados.
Finalmente, el primer nivel es el turno de la computadora, por lo que toma la decisión con el puntaje MAX , es decir, 7.
Por lo tanto, la computadora trepa al árbol, alternativamente, elige puntajes mínimos y máximos (por lo tanto, el nombre MINIMAX), y toma la decisión que lo deja mejor al final. Cuanto mejor sea el hardware, más profunda será la profundidad del árbol que pueda analizar y, por lo tanto, mayores serán sus posibilidades de ganar. Es por eso que las computadoras generalmente no podían vencer a los humanos en la década de 1950-60, pero ahora son capaces de golpear a los Grandes Maestros. (Partidas de ajedrez humano-computadora)
Paso de bonificación: ¡pero hay más!
El procedimiento que describí es una versión extremadamente simplificada de lo que realmente sucede. En la práctica, la computadora hoy en día usa muchos trucos para reducir sus esfuerzos, trata de evitar ir por caminos que claramente no tienen remedio. La poda alfa-beta, la base de la mesa de Endgame, la heurística de Killer, etc., etc. Es algo bastante complicado. En serio, podrías hacer un doctorado en CS estudiando estas cosas.
Pero espero que mi respuesta al menos te dé una idea general de lo que está sucediendo en las neuronas de silicio de la computadora.