Supongo que el algoritmo de ajedrez al que te refieres es el Deep Blue de IBM.
Los enfoques son similares en algunos aspectos. La idea general es esta:
Ahora sabemos cómo se ve el tablero de juego. Sabemos cuáles son los posibles movimientos. Si tomamos cualquiera de esos movimientos, podemos encontrar los posibles movimientos que tiene nuestro oponente. En efecto, tenemos las herramientas para “simular” el resultado del juego. Podemos usar esto para encontrar el movimiento que nos da la mayor probabilidad de ganar.
- ¿Qué es un algoritmo de programación dinámica que podría resolver el problema a continuación?
- Cómo implementar un verificador de plagio en Java
- Cómo encontrar el enésimo número de Ulam rápidamente
- ¿Qué razones hay para aprender sobre algoritmos informáticos si no eres un informático?
- ¿Cuáles son las aplicaciones de la programación en C?
Sin embargo, examinar CADA jugada no es computacionalmente posible en Go (y en las primeras jugadas del ajedrez tampoco lo es). Así que hay un truco para usar “funciones de valor”. Las funciones de valor nos dicen qué tan bueno es un estado dado. Le da una buena idea de si ganará o no desde esa posición.
Entonces simulas el juego unos pocos movimientos, luego usas esta función de valor para evaluar los estados simulados del juego que alcanzas.
Go complica aún más las cosas porque hay muchas más posiciones, por lo que DeepMind empleó una función de política y una función de valor. La función de política ayudó a AlphaGo a elegir solo unos pocos movimientos para evaluar que se consideraban buenos.
Como se explica en el artículo, esta función de política ayuda a controlar la amplitud de los movimientos explorados, mientras que la función de valor ayuda a controlar la profundidad de los movimientos explorados.
AlphaGo utiliza el aprendizaje profundo, por lo que aprende ambas funciones jugando juegos de Go y recibiendo señales positivas / negativas cuando gana o pierde, y potencialmente en varios puntos del juego.
Espero que ayude :).