Hasta donde entiendo, a grandes rasgos, los motores de ajedrez funcionan de la siguiente manera:
- calcular todas las variaciones posibles (árbol de juego) hasta cierta profundidad
- evaluar la posición final en función de algunos criterios (material, actividad de la pieza ...)
- basado en esta evaluación, decida cuál es la mejor jugada
Entiendo completamente que para tener un motor eficiente hay formas de podar ciertas líneas, limitando la profundidad, etc. Pero esta no es mi pregunta.
La pregunta es: ¿Hay algún intento alternativo de programar un motor de ajedrez (no necesariamente fuerte, pero tampoco aleatorio) que no siga este esquema?
engines
programming
computer-chess
usuario1583209
fuente
fuente
Respuestas:
En los primeros años del ajedrez informático, las personas realmente intentaron enseñar ajedrez informático de la misma manera que lo hacen con los humanos, explicando conceptos estratégicos como una estructura de peones saludable o la iniciativa. Estos intentos se abandonaron pronto porque el método que describió fue mucho más exitoso.
Recientemente, ha habido otro intento de dejar que un motor se enseñe ajedrez a través del Aprendizaje profundo (probablemente alentado por el éxito de Go AI de Google ). Según el artículo al que me vinculé, tuvieron bastante éxito y lograron alcanzar la fuerza de mensajería instantánea.
fuente
According to the article I linked to, they were quite successful and managed to reach IM strength
pero si lee el artículo original, verá que el artículo exageró mucho el éxito.@Glorfindel no está mal, pero el enfoque de aprendizaje profundo del ajedrez es realmente un término elegante para el ajuste de parámetros en la programación de ajedrez.
El aprendizaje profundo permite que un motor de ajedrez aprenda una función de evaluación, algo generalmente escrito a mano por un programador. Durante un juego, funciona como un motor de ajedrez normal.
Otras posibilidades:
fuente
¡Ciertamente! SI realmente solo quiere decir ... "en teoría, ¿hay otros métodos para codificar un motor de ajedrez?" ... ¡Entonces sí!
Por ejemplo ... uno podría almacenar una copia de cada posición posible en el ajedrez (un gran número, lo sé), y tener una evaluación para cada uno. Entonces, su respuesta a cualquier pregunta dada (es decir, "el mejor movimiento para las blancas en la posición X"), se conocerá de inmediato simplemente mirando ese tablero. ¿El estado actual del hardware de la computadora es tal que tenga sentido? Nah Pero no preguntaste eso.
fuente