La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Solución de problemas por búsqueda Inteligente-Heurísticas

Presentaciones similares


Presentación del tema: "Solución de problemas por búsqueda Inteligente-Heurísticas"— Transcripción de la presentación:

1 Solución de problemas por búsqueda Inteligente-Heurísticas
Ana Lilia Laureano Cruces UAM-A

2 El término heurística…
Un método heurístico es un procedimiento para resolver un problema de optimización bien definido, mediante una aproximación intuitiva en la que la estructura del problema se utiliza en forma inteligente para obtener una buena solución. es un procedimiento de resolución de problemas para el que se tiene un alto grado de confianza en que se encuentren soluciones de alta calidad con un costo computacional razonable, aunque no se garantice la optimalidad y en algunos casos ni la factibilidad. Se usa en contraposición a exacto. la más común en IA: heurísticas son los procedimientos que empleando conocimiento acerca de un problema y de las técnicas aplicables, tratan de aportar soluciones o acercarse a  ellas usando una cantidad de recursos (generalmente tiempo) razonable.

3 Búsqueda heurística … Se refiere a reglas ‘tipo suerte’, reglas que trabajan éxistosamente en muchos casos, pero su éxito no esta garantizado. De suyo se pueden expander los nodos, seleccionado los nodos más prometedores. Esto se hace mediante una medida de fuerza (fittness) que se compara con los competidores. Lo anterior con la ayuda de funciones intuitivas especiales, llamadas heurísticas.

4 Para que se utiliza la búsqueda heurística …
Se emplea generalmente para dos distintos tipos de problemas: Razonamiento hacia delante: Se parte de un estado en curso y se trata de alcanzar el estado objetivo Razonamiento hacia atrás: se mueve del estado objetivo hacia el estado inicial, predefinido.

5 Hill Climbing Un aspecto alternativo para resolver el problema de buscar en un espacio dado es hacer una búsqueda dirigida empleando una función f (x). Dicha función nos da una medida estimada de la distancia a la que se encuentra el nodo objetivo dado un nodo.

6 Después de que f (x) es evaluada:
Los nodos son ordenados en forma ascendente y colocados (push) dentro de la PILA, de esta forma el elemento en el tope de la PILA, se encuentra el valor menor de f (x). Se saca el valor (PopElem) de la PILA , y se compara con el nodo objetivo si no es el objetivo entonces se expanden sus hijos se estima su función f(x) y de acuerdo a este valor se colocan en la PILA de forma ascendente. Si el valor que se saca de la PILA es el objetivo se para y si no continúa hasta que la PILA esta vacía.

7 Procedire Hill_Climbing
BEGIN Identifique posibles estados iniciales y calcule f(x) de cada uno. ARRAY OF elem. Ordene los nodos en forma ascendente de acuerdo al f(x) y colóquelos en la PILA (push). REPEAT Encontre = FALSE; POP (PILA, elem); IF (elem  objetivo) THEN PUSH (Hijos en la PILA) ELSE encontre = TRUE; UNTIL (encontre) OR PilaVacia

8 Recocido Simulado Este algoritmo es emula el enfriamiento de un metal.
Cuando un material se enfría lentamente pierde su energía y finalmente en un punto del tiempo llega al estado de mínima energía. De la observación del fenómeno se obtiene la siguiente información: Los procesos físicos tienen transiciones entre estados altos y bajos de energía, pero existe una pequeña probabilidad de moverse hacia estados de energía más altos (cruzar el valle) de donde habían llegado.

9 Una pelota entre valles
El mínimo estado de energía

10 Descripción del método
La probabilidad de que eso suceda es muy pequeña y esta dada por: Para un E pequeño, la probabilidad es alta, y biceversa. E denota un cambio positivo de la energía p = exp (- E/KT) Donde p es la probabilidad de transición de un bajo a un alto estado de energía. K es la constante de Boltzaman T es la temperatura en el estado en curso.

11 Esto se puede ver de forma intuitiva con la pelota, es más fácil de visualizar un cambio pequeño, a uno alto desde el valle.

12 Una pregunta obvia… Y cuándo utilizar este método.
Este método se utiliza para identificar la dirección de una búsqueda, cuando la función f (x) no lleva a mejores estados. Ante estas circunstancias E, se calcula para todos los posibles estados y p’ es evaluada para cada uno de ellos; utilizando la siguiente fórmula: p`   exp (- E / T) Un número aleatorio es calculado en el intervalo cerrado [0,1] y p’ es comparada con este valor. Si p’ es mayor entonces es seleccionada para la siguiente transición.

13 El parámetro T, también llamado temperatura es gradualmente decrementado en el programa de búsqueda. La lógica detrás de esto es que mientras T decrementa p’ también lo hace, permitiendo de esta forma que el algoritmo termine en un estado estable.

14 Este algoritmo es similar al algoritmo Hill Climbing, en el sentido de que siempre existe al menos un estado mejor que el estado en curso, localizado en la PILA. Si la situación anterior falla entonces se invoca al algoritmo de recocido simulado. El cual revisa cada estado siguiente y si su probabilidad de ocurrencia es mayor que la probabilidad random [0,1], y en el caso que se mayor se selecciona ese estado. Caso contrario se pasa al siguiente. De forma optimista siempre se cumplirá esta condición.

15 Otro punto importante que no se incluyó en el algoritmo es el cálculo de E. El cual es calculado tomando la diferencia entre el valor de f(x) del estado en curso (PopElem) con la f(x) del siguiente estado. Otro punto es que T debe ser decrementada cada vez que se selecciona el estado menos prometedor. T siempre debe mantenerse positiva, ya que cuando llega a cero, la probabilidad p’ se vuelve cero.

16 Procedure RecSimul BEGIN END.
Identifique posibles estados iniciales y calcule f(x) de cada uno. ARRAY OF elem; Ordene los nodos en forma ascendente de acuerdo al f(x) y colóquelos en la PILA (push); REPEAT Encontre = FALSE; POP (PILA, elem); IF (elem = objetivo) THEN encontre = TRUE; ELSE Genera los Hijos de ese elem y calcula la f para cada nodo. IF (la f de almenos uno es mejor THEN PUSH (Hijos en la PILA) {en orden ascendente de acuerdo a f } IF ninguno de los hijos de N tiene una f (x) mejor; ENTONCES Procedure RecSimul_I END; UNTIL (encontre) OR PilaVacia END.

17 Procedure RecSimul_I END; BEGIN Seleccione aleatoriamente cualquiera
Calcule su p’ y verifique si excede la calculada de forma random entre [0,1]. En caso afirmativo seleccione ese estado. Si no genere otro estado alternativo, hasta que uno pueda ser seleccionado y coloque los estados nuevos en la PILA. Decremente el valor de T. Si este es negativo póngala a cero. END;

18 Best-First Se comienza con un estado prometedor y generamos todos sus nuevos estados. Evaluamos su fitness y el mejor es seleccionado para su expansión. Una vez hecho el paso anterior se evalúa todas las funciones de fitness de los hijos. Se elige el mejor de todos los nodos hijos y los anteriores. Lo anterior con el fin de que se hubiera cometido un error en los pasos anteriores.

19 Procedure Best_First BEGIN END.
Identifique posibles estados iniciales y calcule f(x) de cada uno. ARRAY OF elem; Colóquelos en LISTA; MIENTRAS (VaciaLista) AND  (encontre) DO Encontre = FALSE; Identifica el nodo n de LISTA que tiene el mínimo f, si existe más de uno selecciónalo de forma aleatoria; SI n = objetivo ENTONCES Regresa n y su camino desde el nodo inicial; Encontre = TRUE; ELSE Retira n de LISTA Agrega todos los hijos de n que no estén en LISTA, con sus caminos desde el nodo inicial; FIN_SI FIN_MIENTRAS; END.

20 Algoritmo A*… A un nodo se le conoce como OPEN, si el nodo ha sido generado y el h’ (x) ha sido calculada, pero aún no se expande. A un nodo se le conoce como CLOSE, si ha sido expandido y creada su descendencia. Para conocer la bondad de un nodo en A* se requieren dos funciones de costo: el costo heurístico y el costo generado.

21 El costo heurístico: es la medida de la distancia del nodo actual (x) al nodo objetivo y es denotada como h(x). El costo generado: es la medida de la distancia del nodo actual (x) al nodo de inicio y es denotada como g(x). La función estimada de la distancia a la que se encuentra el nodo; f(x) es la suma de g(x) + h(x).

22 Como se generan los costos…
La función g(x), se mide fácilmente, son las m transiciones desde el nodo inicial hasta el nodo generado. En el caso de la función h(x), estamos hablando de un costo que aún falta por gastarse antes de llegar al nodo objetivo. Cualquier valor que se le asigne será un costo predictivo, y se denota por h’(x). En consecuencia el costo predictivo total se denota como f’(x): f ’(x) = g(x) + h’(x)

23 Procedure A* Material de Apoyo: El algoritmo A* pag. 89-93
Libro Inteligencia Artificial / Elaine Rich Colección Ciencia Informática GG. 1983 Versión en inglés McGrawHill

24 Un ejemplo… Consideremos la siguiente función heurística:
Donde X y Y, de cubetas de 4 y 3 litros respectivamente. Y x denota un nodo arbitrario en el espacio de búsqueda.

25 h’ = 2, cuando 0 < X < 4 AND 0 < Y < 3,
(algo en las dos) = 4, cuando 0 < X < 4 OR 0 < Y < 3, (algo en alguna de las dos) = 10, cuando i) X = 0 AND Y = 0 OR ii) X = 4 AND Y = 3 = 8, cuando i) X = 0 AND Y = 3 OR ii) X = 4 AND Y = 0

26 Asuma que g(x) = 0 en el nodo raíz y representa la mínima distancia n.
Medida que toma en consideración a todos los nodos padre comenzando en la raíz y representada por g(x) = n. Ahora se ilustra el problema…

27 Problema de las cubetas…
x, y 4, 3 O Paso 0 (0,0) g + h’ = Paso 1 M N O (0,0) g + h’ = (4,0) g + h’ = 1 + 8 (0,3) g + h’ = 1 + 8

28 Problema de las cubetas…
x, y 4, 3 (0,0) g + h’ = Paso 2 O (0,3) g + h’ = 1 + 8 M N (4,0) g + h’ = 1 + 8 P R (3,0) g + h’ = 2 + 4 (4,3) g + h’ =

29 Problema de las cubetas…
x, y 4, 3 (0,0) g + h’ = Paso 3 O (0,3) g + h’ = 1 + 8 M N (4,0) g + h’ = 1 + 8 P R (3,0) g + h’ = 2 + 4 (4,3) g + h’ = S (3,3) g + h’ = 3 + 4

30 x, y 4, 3 (0,0) g + h’ = Paso 3 O (0,3) g + h’ = 1 + 8 M N (4,0) g + h’ = 1 + 8 P R (3,0) g + h’ = 2 + 4 (4,3) g + h’ = S (3,3) g + h’ = 3 + 4 T (4,2) g + h’ = 4 + 2 U (0,2) g + h’ = 5 + 4 T (2,0) g + h’ = 6 + 4

31 Reducción del problema
Otra clase de estructura es el grafo O-Y, es útil para la representar la solución de problemas, que pueden resolverse descomponiéndolos en un conjunto de sub-problemas más pequeños, cada uno de los cuales debe de resolverse a su vez. Esta descomposición, o reducción genera arcos que llamaremos arcos Y.

32 Un arco Y puede apuntar a cualquier número de nodos sucesores, todos los cuales deben resolverse en orden para que el arco apunte a una solución. Meta: adquirir un aparato de TV SubMeta: Robar un aparato de TV SubMeta: Comprar un aparato de TV SubMeta: Ganar dinero

33 Los arcos Y, se indican con una línea que conecta a todos sus componentes.
Para encontrar soluciones el algoritmos se parece a del A*, solo que con la capacidad de manejar estos arcos Y apropiadamente. en este caso puede ser necesario obtener más de un estado de solución, debido a que cada brazo puede conducir a una solución.

34 Ejemplos… A A B C D B C D E F G H I J (6) (18) 36 + 2 (38) (9) (5) (3)
(4) (17) (9) (27) E F G H I J (5) (10) (3) (4) (15) (10) 15 + 2 7 + 2 25 + 2

35 Para calcular la función f´ supongamos por simplicidad que cada operación tiene un costo uniforme.
Un nodo con un único sucesor tiene un costo de 1. Cada arco Y, con múltiples sucesores tenga un costo de 1 para cada uno de ellos.

36 Cadena de razonamiento…
Si simplemente elegimos para expander el nodo de menor costo, debemos seleccionar a C, sin embargo para usarlo debemos también usar D. El costo del camino es C+D+2= 3+4+2=9 Así que también exploramos el camino B Cuyo costo es B+1= 5+1=6 Sin embargo elegir un nodo depende de que sea el mejor camino, el más prometedor y eso depende del paso siguiente donde se expanden En este caso el nodo simple más prometedor es G, quien además forma parte del arco más prometedor GH. Pero también hay que usar el arco IJ, por lo que no resulta tan bueno. Siendo el mejor camino el de B con el arco EF Con un costo total de 18. A+17= = 18.

37 Qué se necesita para buscar en un arco Y-O
Atravesar el grafo por el nodo inicial y siguiendo el mejor camino actual, acumulando el conjunto de nodos que van en ese camino y aún no han sido expandidos. Seleccionar uno de esos y expandirlo. Agregar sus sucesores al grafo y calcular f´, para cada uno de ellos. Cambiar la f´ estimada del nodo recientemente expandido para reflejar la nueva información. Propagar este cambio hacia atrás a través de grafo. Para c/nodo que se visita mientras se va avanzando en el grafo, decidir cual de sus arcos sucesores es más prometedor.

38 Ejemplo … D C B A 6 9 4 3 5 A D C B A 11 9 4 3 10 F E D C B A 11 12 4
H G 7 5

39 Características importantes
En el siguiente ejemplo los nodos están numerados en el orden en el que se han generado. Supongamos que el nodo 10 se expande en el siguiente paso y que uno de sus sucesores es el nodo 5. Esto implica que el nuevo camino a 5, es más largo que el camino anterior que va a través de 3. Pero puesto que el camino a través de 3 sólo conducirá a una solución ssi existe una solución para 4, lo que sabemos que no sucede. Por lo anterior el camino a través de 10 es mejor, por ser el único posible.

40 1 2 3 4 irresoluble 7 8 5 6 9 10 Nodo objetivo

41 Carácterísticas importantes
Un algoritmo de búsqueda de grafos Y-O, operará sobre grafos en los que podemos garantizar que no habrá ciclos. Se puede garantizar porque nunca se almacena un camino cíclico, ya que dicho razonamiento sería circular, como cuando intentamos demostrar un teorema en matemáticas,’si se demuestra X, entonces se demuestra Y y viceversa’. Pero este camino no puede constituir una prueba. De aquí que se pueda perder ese camino, sin el temor a perder una solución.

42 Esta situación genera una complicación en el algoritmo de búsqueda
Esta situación genera una complicación en el algoritmo de búsqueda. Debido a que siempre que se genere un sucesor deberá comprobarse que no sea un antecesor del nodo expandido. Sólo si no lo es debería entrar en el grafo el camino recién descubierto.

43 1 2 3 4 irresoluble 7 8 5 6 9 10 11

44 Procedure AO* Material de Apoyo: El algoritmo AO* pag. 100-103
Libro Inteligencia Artificial / Elaine Rich Colección Ciencia Informática GG. 1983 Versión en inglés McGrawHill

45 fin


Descargar ppt "Solución de problemas por búsqueda Inteligente-Heurísticas"

Presentaciones similares


Anuncios Google