Brutus paralelo: el gigante
del ajedrez que se avecina
Los autores del programa de
ajedrez Brutus
son Chrilly
Donninger, Alex Kure y
Ulf Lorenz.
Un programa de ajedrez típico
está formado por tres partes:
Un generador
de jugadas, que
simplemente establece todas las jugadas posibles que pueden efectuarse en una
determinada posición.
Un módulo
de evaluación, en el que
se implementan
hasta donde es posible los conocimientos ajedrecísticos obtenidos de expertos
humanos en forma de reglas.
Los valores que se
obtienen son difusos y muy limitados por su naturaleza heurística.
Un algoritmo
de búsqueda que organiza
una previsión y que es el corazón del programa de ajedrez,
puesto que hace
posible que el programa desarrolle capacidades ajedrecísticas superiores a las
de quienes lo construyeron:

Se denomina árbol de jugadas cuando uno realiza cualquier jugada
de las blancas en una determinada posición y establece cuantas respuestas de
las negras son posibles y luego cuantas continuaciones tienen las blancas para
cada una, etc. En muchos casos no es posible examinar todas las potenciales
continuaciones, por lo que el programa de ajedrez debe seleccionar las que
considera más destacables y luego debe evaluar las posiciones finales que se
alcancen con ayuda de un procedimiento de evaluación heurístico y tratar las
valoraciones que se obtengan con esa forma de examinar el árbol como si fueran
valores genuinos y no heurísticos.
Tras 40 años hay una divertida observación: ¡el árbol de jugadas funciona
como un filtro de errores. Cuanto más rápido y sofisticado sea el algoritmo de
búsqueda, mayor calidad tendrán los resultados que se obtengan! Eficiencia y
velocidad de proceso tienen aquí elemental importancia.
Características
de los programas de ajedrez FPGA:
- Alta
velocidad por medio de paralelismo de pequeña escala:
¡basta sólo con 9 (!)
ciclos de reloj para el cálculo de un nodo! Es decir, con 9 ciclos de reloj
basta para generar una jugada, evaluarla en el tablero interno y volver a la
posición inicial.
Más
velocidad por medio de más sitio:
la instalación de
más sabiduría ajedrecística no significa una reducción de la capacidad
de búsqueda.
- Flexibili
dad:
el ajedrez
cibernético es un campo muy dinámico y con rápida evolución.
La dura
competencia hace que los ciclos de producción sean muy rápidos.
Por ello se
requiere una gran capacidad de renovación y de adaptación de los programas
a los nuevos chips desarrollados.
La tecnología FPGA parece ofrecer un buen
compromiso para un desarrollo auténtico del hardware. Brutus comenzó a
desarrollarse en octubre de 2000 y por ello es dos años y medio más viejo
que uno de los mejores programas de ajedrez del mundo. Su triunfo en el torneo
de grandes maestros de Lippstadt en agosto de 2003 fue, de hecho, su llegada a
la cumbre.
Paralelismo de gran escala de alto nivel entre PCs:
la parte más sensible y más importante del algoritmo de búsqueda de Brutus
funciona distribuida en varios PCs convencionales conectados por una red
Myrienet de alta velocidad. Cada PC dispone de su propia tarjeta FPGA: Uno de
los procesadores toma la posición existente y comienza búsqueda secuencial
alfa-beta en segundo plano. Los otros procesadores envían peticiones de
trabajo a la red, buscando coincidencias y así se van realizando las tareas
por partes. Con ayuda de un original sistema de notificaciones entre los
procesadores, el trabajo a desarrollar se distribuye equitativamente y los
solapamientos sólo se producen en escasa cuantía. Un
procesador de Brutus genera alrededor de 100.000 pequeñas búsquedas por
segundo en cada tarjeta FPGA.
Visión global del sistema:

Dr.
rer. nat. Ulf Lorenz
Al
artículo original en alemán