Estoy buscando un algoritmo eficiente que me permita procesar el árbol de búsqueda minimax para ajedrez con poda alfa-beta en una arquitectura distribuida. Los algoritmos que he encontrado (PVS, YBWC, DTS, ver más abajo) son bastante antiguos (1990 es el último). Supongo que ha habido muchos avances sustanciales desde entonces. ¿Cuál es el estándar actual en este campo?
Además, indíqueme la explicación de un idiota sobre DTS, ya que no puedo entenderlo por los trabajos de investigación que he leído.
Los algoritmos mencionados anteriormente:
- PVS: división de variación de principio
- YBWC: concepto de Young Brothers Wait
- DTS: división dinámica de árboles
son todos se discuten aquí .
Respuestas:
Sí, la teoría ha avanzado significativamente y algo debido a la literatura de análisis de ajedrez y a las técnicas generales de programación paralela. Aquí hay algunas referencias más recientes sobre poda alfa beta (ajedrez) sobre grupos distribuidos / paralelismo. También parte de la literatura de ajedrez computacional distribuida temprana es anterior a muchos patrones básicos de diseño paralelo y puede conceptualizarse dentro de ese marco.
Algoritmo Paralelo Alfa-Beta en la GPU / Strnad, Guid (2011)
Búsqueda paralela alfa-beta en multiprocesadores de memoria compartida / Manohararajah (2001) 98pp!
Paralelizar un programa simple de ajedrez / Greskamp, 2003
Poda paralela alfa-beta de árboles de decisión de juego: una implementación de ajedrez / Steele 1999
¿Es posible ejecutar una búsqueda de Minimax con Alpha-Beta Pruning en paralelo con OpenMP? (desbordamiento de pila)
El algoritmo de búsqueda de árbol paralelo de alto rendimiento DTS (Hyatt 1994)
La idea básica detrás de DTS es que los árboles de búsqueda se distribuyen entre los nodos computacionales en función de la complejidad del movimiento / diseño. Los procesadores no utilizados que "finalizan antes de tiempo" pueden hacer un trabajo adicional más allá de una asignación inicial que puede distribuirse de la manera más uniforme posible inicialmente pero que resultará desigual. por lo tanto, es básicamente una especie de cola de "equilibrio de carga" y "productor / consumidor" , o también similar a la programación de trabajos.
fuente