Calidad del conjunto de soluciones candidatas codificadas por el nodo.
Cantidad de la información que se puede ganar expandiendo un nodo dado y la importancia de la información para guiar la búsqueda.
En todos estos casos la calidad el nodo se estima numéricamente por una función de evaluación heurística f(n). Una función de evaluación heurística es una función que hace corresponder situaciones del problema con números. Es decir, ofrece una medida conceptual de la distancia entre un estado dado y el estado objetivo. En general depende de la descripción de n (la descripción del objetivo, la información obtenida hasta ese punto de la búsqueda y cualquier conocimiento extra sobre el dominio del problema).
El proceso de construcción de funciones heurísticas bien puede ser considerado un proceso de descubrimiento, pues es muy difícil articular el mecanismo por el cual se llega a estas funciones. Sin embargo, se puede formular el siguiente paradigma general: las heurísticas se descubren consultando modelos simplificados del dominio del problema.
Estos valores son usados para determinar cual operación ejecutar a continuación, típicamente seleccionando la operación que conduce a la situación con máxima o mínima evaluación. Un inconveniente de los métodos heurísticos es que en ocasiones no es posible conocer la calidad de la solución, es decir, cuán cerca está el óptimo (x*) la solución heurística encontrada (xheu); si por ejemplo, el problema es de maximización lo único que sabemos es que xheu ( x*. Una forma simple de evaluar la calidad de una solución heurística es generar aleatoriamente varias soluciones y si son similares a la misma entonces cabría poner en duda la efectividad de la heurística.
Algunas consideraciones sobre las funciones heurísticas son:
a) La función debe dar un estimado útil y realista del mérito de un estado particular.
b) La evaluación de la función en general no debe requerir un gran cálculo en su aplicación. Si la evaluación de la función es computacionalmente compleja puede ser más eficiente hacer una búsqueda a ciegas en lugar de gastar recurso (tiempo y memoria) en el cálculo de la función.
c) Frecuentemente el costo de una solución exacta a un problema flexibilizado es una buena heurística para el problema original. Un problema flexibilizado es uno obtenido a partir del problema original simplificando las restricciones sobre los operadores. La idea es que el número exacto de movimientos requeridos para resolver un problema más simple puede ser fácil de calcular y puede servir como un estimado de la cantidad de movimientos necesitados para resolver el problema original.
d) Es siempre mejor usar una función heurística con valores más altos que otras, siempre que esta no este sobreestimada. Para un problema puede haber una colección de heurísticas admisibles h1,…,hm. Si una de ellas domina a las otras, es decir alcanza valores mayores para todos los nodos, se debe seleccionar esta. Si ninguna es dominante lo mejor es definir una heurística compuesta de la forma siguiente:h(n)=max(p(n),…,hh1(n)).De esta forma h dominará todas las heurísticas individuales.
e) Otra forma de inventar una buena heurística es usar información estadística. Esto puede ser hecho realizando una búsqueda sobre una cantidad de problemas de entrenamiento, por ejemplo, en el juego de las ocho piezas cien configuraciones generadas aleatoriamente.
f) Frecuentemente es posible seleccionar rasgos de un estado que contribuyen a su evaluación heurística. La función de evaluación heurística puede ser construida como una combinación lineal de estos rasgos. Los rasgos pueden tener un peso que indique su importancia.
g) Otro tipo de modelo flexibilizado para un problema son los modelos analógicos. Aquí el modelo auxiliar flexibilizado extrae su potencia no de simplificar la estructura del problema a resolver sino de usar procesos de búsqueda que fueron empleados con éxito en problemas análogos. Esto se retoma posteriormente al estudiar el razonamiento por analogía.
Ejemplo: El problema de las ocho reinas
Asumiendo la variante incremental del juego, es decir poner las reinas una a una de modo que no se ataquen mutuamente, supóngase que se tienen situadas tres reinas y tenemos que decidir donde colocar la cuarta. El papel de la heurística aquí sería ofrecer un criterio para decidir cual de las tres posiciones indicadas es la más promisoria de conducir a una solución satisfactoria.
Al deducir una heurística para este problema podemos razonar que para poder colocar las ocho reinas tenemos que dejar libres la mayor cantidad de opciones como sea posible para futuras adiciones de reinas.
Esto significa determinar la cantidad de casillas en las filas no utilizadas que quedarían no atacadas al colocar la cuarta reina en A, B o C. Una casilla candidata será preferida si deja la mayor cantidad de casillas no atacadas en el resto del tablero. Consecuentemente el número de casillas no atacadas constituye una medida de su mérito, es decir, es la función de evaluación heurística para este problema.
Al calcular la función heurística para las posiciones A, B y C se tiene:
f(A) = 8
f(B) = 9
f(C)= 10
Otra alternativa o enfoque heurístico es el siguiente. Las filas no usadas no tienen igual estatus ya que aquellas con pocas casillas no atacadas tienden a quedar bloqueadas más rápidamente que filas con muchas casillas no atacadas. Consecuentemente, si queremos minimizar la posibilidad de un futuro bloqueo debemos focalizar nuestra atención sobre la fila con menor número de casillas no atacadas, sea f" esta heurística. Para esta función tenemos,
f"(A) = 1
f"(B) = 1
f"(C)= 2
Nótese que con esta heurística C también es la alternativa preferida. Además, si alguna opción candidata toma valor cero para f o f" no tiene sentido considerarla pues eventualmente será un nodo muerto, la función f" supera a f en que esta detecta todos los nodos muertos predichos por f y muchos más.
Como se vio antes el objetivo de este juego es reordenar una configuración inicial dada de ocho piezas sobre un tablero de tres por tres en una configuración final.
En el reordenamiento sólo se permite desplazar fichas a la casilla vacía, siempre que sea adyacente, es decir la regla es:
Una pieza puede moverse de la posición X a la Y Si la posición X es adyacente a Y y
la posición Y está vacía.
Una solución típica para este problema requiere alrededor de veinte pasos, aunque este número varía dependiendo del estado inicial. El factor de ramificación es aproximadamente tres (cuando la casilla vacía está en el centro hay cuatro movimientos posibles y cuando está en una esquina hay dos). Esto significa que una búsqueda exhaustiva a profundidad veinte podría requerir cerca de 320 = 3.5×109 estados. Eliminando los estados repetidos quedarían 9! = 362, 880 ordenamientos diferentes. Esta es aún una cantidad grande de estados por lo que se requiere encontrar una buena función heurística.
Un razonamiento a seguir para construir la función heurística para este problema es estimar cuán cerca un estado está del objetivo. Hay dos variantes comúnmente usadas para estimar la proximidad de un estado a otro:
i) Cantidad de piezas mal ubicadas, aquellas por las cuales los dos estados difieren, llamada p.
ii) La suma de las distancias (horizontal y vertical) de las piezas a sus posiciones en el estado objetivo, llamada h2. Esta función heurística se conoce como distancia Manhattan.
Al aplicar estas heurísticas al planteamiento anterior se tiene
h1(A) = 2 h1(B) = 3 h1(C) = 4
h2(A) = 2 h2(B) = 4 h2(C) = 4
Ambas funciones indican que A es la mejor opción y por eso debe ser explorado antes que B o C.
La variante de encontrar funciones heurísticas flexibilizando el modelo del problema se puede ilustrar con este juego. A partir de la regla que gobierna el juego se pueden generar tres problemas flexibilizados removiendo una o más de las condiciones:
(a) Una ficha se puede mover de X a Y si X está adyacente a Y (elimina la condición que Y esté vacío)
(b) Una ficha se puede mover de X a Y si Y está vacía (elimina la condición de que ambas sean adyacentes)
(c) Una ficha se puede mover de X a Y (elimina ambas condiciones)
La cantidad de movimientos requeridos para resolver el problema (a) es exactamente igual a la distancia Manhattan.
La cantidad de movimientos requeridos para resolver el problema (C) es exactamente igual a la cantidad de fichas fuera de lugar, es decir que están en una posición diferente a la que deben tener en el estado objetivo; la cual coincide con H1.
La función h1 es más barata pero menos precisa que h2.
En el caso del problema (b) la cantidad de movimientos requeridos para resolverlo es la cantidad de veces que la posición vacía tiene que ser intercambiada con otra ficha, lo cual sugiere otro estimado heurístico para el problema original.
Propiedades de las funciones de evaluación heurística
a. Heurísticas admisibles.
Una función de evaluación heurística se denomina admisible si ella nunca sobrestima el costo real de alcanzar el objetivo.
b. Heurística más informada.
Para dos heurísticas admisibles f1 y f2, si f1(n) ( f2(n), para cualquier estado n en el espacio de búsqueda, se dice que la heurística f2 es más informada que f1.
Si una heurística f2 es más informada que f1, entonces el conjunto de estados examinados por f2 es un subconjunto de los expandidos por f1.
Bibliografía
Rafael Bello, Presentación Power Point, Inteligencia Artificial, Universidad Central de Las Villas, Cuba, Abril 2005.
Rafael Bello, Métodos de Solución de Problemas de la Inteligencia Artificial, Universidad Central de Las Villas, 2007.
Ivan Bratko, Prolog programming for Artificial Intelligence. Addison-Wesley Publishing Company, Reading, Mass, 1986.
Página anterior | Volver al principio del trabajo | Página siguiente |