next up previous contents
Next: Funciones de Evaluación "Buenas" Up: Función de Evaluación Previous: Evaluación Humana e Intuición   Índice General

Construyendo la función de Evaluación

Al escribir una función de evaluación para un programa de ajedrez es esencial emplear instrucciones de uso eficiente dado que este componente del programa es utilizado en forma repetitiva (miles o cientos de miles de veces durante cada selección de movimiento). Por esta razón es preferible no incluir excesivos términos en la función de evaluación dado que cada nuevo término significa un pequeño incremento en el tiempo requerido para evaluar cada posición terminal. Una buena función de evaluación es aquella que evalúa los aspectos críticos de la posición en cuestión y lo realiza de la manera más eficiente posible. Por cada nuevo término incluido en la función de evaluación uno debe evaluar si es que la información agregada compensa la cantidad de tiempo computacional que dicha evaluación requerirá.

La estructura de la función de evaluación es dependiente del tipo de procedimiento de búsqueda empleado. En un programa cuyo énfasis está en el evaluar un pequeño número de nodos terminales (por ejemplo, 500 nodos en el programa HITECH de Berliner) en forma minuciosa se requerirá una función de evaluación de alta complejidad y con evaluaciones lo más precisas posibles. En programas con gran cantidad de nodos terminales la función de evaluación debe ser rápida y simple. El programa TECH desarrollado por Gillogly en Carnegie-Mellon examinaba sólo el equilibrio material para cada posición terminal de entre las cerca de 500.000 examinadas en cada movimiento. En la década de los 70 no era claro qué procedimiento fuese el mejor, si bien los humanos utilizan claramente el primero.

Ahora bien, por lo que hemos descrito acerca del problema a resolver por la función de evaluación y las características del pensamiento humano, es muy factible el que las funciones de evaluación de todos los programas de ajedrez tengan grandes diferencias y sólo se asimilen en sus patrones más básicos (por ejemplo, material). El problema de construir una función de evaluación es el que, a diferencia de la búsqueda, no existe un método estándar de construcción. Los patrones potenciales que podría manejar una función de evaluación son cerca de 50.000, los cuales toman distintos valores de acuerdo a la etapa del juego en que nos encontremos y además el contexto de la posición (por ejemplo, cerrada o abierta). Es claro que existen cierta base de patrones básicos en las funciones de evaluación que todo programa presenta : Equilibrio material, movilidad de piezas, casillas atacadas, seguridad del rey, dominio central, actividad de piezas, desarrollo, etc. Estos patrones fueron propuestos por Shannon en [68] y son factibles de encontrar en distinta literatura ajedrecística, pero si suponemos que nuestra función de evaluación ya contiene en su código el reconocimiento adecuado de estos patrones, ¿cómo podemos seguir mejorándola?. Este fue un problema que ocurrió a varios programas los cuales en un momento debieron decidir por recurrir a la consulta a expertos con tal de obtener información relevante de cómo incrementar la cantidad de patrones de reconocimiento de su función de evaluación.

next up previous contents
Next: Funciones de Evaluación "Buenas" Up: Función de Evaluación Previous: Evaluación Humana e Intuición   Índice General
Santiago de Chile, Julio 2003