next up previous contents
Next: Conclusiones del capítulo Up: Avances en Software Previous: Técnicas de Búsqueda   Índice General

Función de Evaluación

Las primeras propuestas de función de evaluación estaban orientadas a tener una evaluación estática de la posición basada fundamentalmente en el concepto de material. Rápidamente se captó que esta evaluación no era suficiente, considerando que en el ajedrez existen factores estructurales los cuales afectarán a largo plazo el curso de la partida, por lo cual es muy probable que el programa no encuentre las consecuencias de esta situación en su búsqueda en profundidad. Estos aspectos, denominados "Posicionales" debieron incluirse en la función de evaluación.

Los primeros programas incluyeron algunos parámetros posicionales básicos, los cuales tenían un peso importante en la evaluación de la posición pero no igualable al peso que poseía el factor de material. El problema entonces de dar un adecuado "peso" a cada parámetro de la función de evaluación, y en qué momento de la partida darlo a uno u otro parámetro constituía un problema denominado carencia de "conocimiento ajedrecístico" cuya solución estaba en captar las impresiones de los jugadores humanos "expertos" y asimilarlas en el programa.

La inclusión de un mayor "conocimiento ajedrecístico" en los programas fue logrado mediante el trabajo conjunto entre programadores y maestros de ajedrez. Desafortunadamente, costó bastante el poder combinar de manera eficiente una idea de función de evaluación lo más completa posible con la mayor cantidad de parámetros de medición, pero a la vez muy rápida en su capacidad de cálculo.

Nuevamente acá los avances en hardware permitieron crear funciones de evaluación más poderosas y cuya utilización no significaba un alto costo de CPU. El problema entonces se redujo a cómo dar pesos adecuados a cada parámetro de la función con tal de que la combinación de éstos entregue una evaluación al menos similar a la que concluiría un maestro de ajedrez.

A este respecto resulta destacable el trabajo realizado por Hsu,Campbell y Anantharaman [31], quienes testearon su programa DeepBlue con cerca de 900 posiciones particulares de partidas de Grandes Maestros. Durante el análisis por parte de la máquina de estas posiciones, los programadores iban ajustando manualmente los pesos de cada parámetro de la función de evaluación con tal de que el programa encontrara el movimiento seleccionado. Este ajuste de "pesos" resultó ser un notorio avance en la performance de la función de evaluación del programa. Respecto de esto una cita de Anantharaman en el ICCA Journal describiendo esta metodología :

"La función de evaluación del software de Deep Thought es ajustada contra una base de datos de partidas de maestros de ajedrez. La diferencia de evaluación entre el movimiento elegido por el programa y el maestro es minimizada. La performance del programa de ajedrez con la función de evaluación ajustada fue medida en forma experimental. El programa jugó varios matchs de 500 partidas con diferentes ajustes contra un programa fijo. Los resultados mostraron que un 98% de la performance de la función de evaluación puede ser mejorada en aproximadamente una semana ajustándola a partir de la información de partidas de la base de datos".

Este método lineal de ajuste de los pesos de parámetros de la función de evaluación fue combinado con extensivas sesiones de partidas entre programas y Grandes Maestros, en donde los experimentados humanos entregaban sus observaciones acerca de las características de juego de la máquina.

Hsu relata en [8] acerca de la necesidad de realizar sesiones de entrenamiento entre DeepBlue y el GM Joel Benjamin, en donde el campeón norteamericano aportó con excelentes observaciones acerca del comportamiento de la evaluación de la máquina, qué cosas valoraba por sobre otras y qué ajustes podían realizarse con tal de mejorar su "concepto" ajedrecístico.

Un excelente ejemplo de esta técnica de refinamiento se vió en la partida 2 del match entre DeepBlue y Kasparov en 1997 (ver anexo de partidas). En posiciones en donde se producían "tensiones de peones" (peones que pueden ser cambiados despejando columnas) la máquina tendía a realizar el cambio de peones con tal de ocupar luego la columna abierta generada por ese cambio con las torres. Esta actitud del programa debía mejorarse puesto que en vez de cambiar peones y ocupar la columna es por lo general mucho mejor primero ocupar la columna "candidata a abrirse" con las Torres y luego proceder a los cambios de peones. El movimiento 24 de DeepBlue en la citada partida fue consecuencia de esta observación.

En la actualidad las mejoras introducidas en la función de evaluación de los programas apuntan a los trabajos desarrollados con redes neuronales y algoritmos genéticos los cuales apuntan a la utilización de métodos de aprendizaje por parte del programa [52]. La apuesta es bastante interesante pues toma en consideración una de las capacidades básicas de los humanos en la mejora de su nivel de juego, el hecho de adquirir conocimientos nuevos frente a experiencia. Las técnicas apuntan a mejorar el nivel de conocimiento ajedrecístico de los programas.

next up previous contents
Next: Conclusiones del capítulo Up: Avances en Software Previous: Técnicas de Búsqueda   Índice General
Santiago de Chile, Julio 2003