Next: Conclusiones del capítulo
Up: Avances en Software
Previous: Técnicas de Búsqueda
  Índice General
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: Conclusiones del capítulo
Up: Avances en Software
Previous: Técnicas de Búsqueda
  Índice General
Santiago de Chile, Julio 2003