Depende mucho del contexto. Usando el ajedrez como ejemplo, generalmente se hace construyendo un árbol de escenarios y mirando hacia adelante para ver los posibles resultados de un movimiento.
Describamos un robot de ajedrez con un movimiento de anticipación.
Es decir, por cada movimiento que nuestro bot podría hacer, calcula todos los movimientos que el oponente podría hacer en respuesta, asume que el oponente juega el mejor disponible para ellos y luego anota el estado del tablero que resulta en cada caso.
- ¿Qué significa que Google se convierta en una compañía 'AI-first' (citando a Sundar)? ¿Cómo afectará esto la priorización y el desarrollo de productos?
- ¿Qué tan independiente es realmente el robot de IA de Twitter de Microsoft, Tay?
- ¿Es posible que PS sea reemplazado por AI o Sketch en el futuro?
- ¿Cuáles son los temas candentes en el aprendizaje automático en 2016?
- ¿Por qué me siento como un robot a veces cuando mi cerebro decide cómo voy a hablar?
Luego elige el mejor estado de tablero resultante de esa gran lista, y realiza el movimiento que conduce a ese estado de tablero preferido.
Pero, ¿cómo puede calificar el tablero que dice que encuentra? Es el mismo problema nuevamente, ¿verdad?
Hay dos enfoques para esto. Una es crear una función de puntuación barata, una heurística, para ese estado de la tabla de resultados. Cuanto mayor sea el puntaje, más deseable será el estado del tablero. Puede contar las piezas que tiene cada jugador, puede dar puntos si las piezas de los jugadores se colocan en el centro del tablero, etc. Esta es la forma más fácil y tiene sus desventajas, pero todavía se usa en la práctica.
La otra forma es anidar ese proceso de anticipación y hacerlo una y otra vez hasta el final del árbol del juego, hasta que encuentre un jaque mate. Es decir, si puede mirar 12 movimientos hacia adelante y encuentra una secuencia que siempre conduce al jaque mate, entonces sabe con certeza que ha ganado. Esta es una técnica llamada programación dinámica.
Desafortunadamente, hay demasiadas posibilidades para mirar a través de la fuerza bruta, por lo que debemos ser inteligentes. Para el ajedrez, la madriguera del conejo desciende un largo camino: los investigadores han construido sus carreras escribiendo ajedrez AI.
Si desea probar esto, intente implementar este enfoque de programación dinámica para tic tac toe: las reglas son más simples y son lo suficientemente pequeñas como para comprenderlas de manera clara, por lo que podrá depurarlas. Si lo haces bien, debes tener un programa que, en el peor de los casos, atrae y gana si te equivocas al jugar contra él.