Solución de Problemas por Búsqueda Inteligente

Download Report

Transcript Solución de Problemas por Búsqueda Inteligente

Solución de problemas
por búsqueda
Inteligente-Heurísticas
Ana Lilia Laureano Cruces
UAM-A
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.
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.

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.
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.

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.
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
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.
Una pelota entre valles
El mínimo estado
de energía
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.
 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.
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.
 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.

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.

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.
Procedure RecSimul

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
encontre = TRUE;
• ELSE



BEGIN
• 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
•
BEGIN
•
Procedure RecSimul_I
•
END;
UNTIL (encontre) OR PilaVacia
END.
Procedure RecSimul_I

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;
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.
Procedure Best_First

BEGIN




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.
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.
 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).
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)
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
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.
 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
 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…
Problema de las cubetas…
x, y
4, 3
O
Paso 0
Paso 1
(0,3) g + h’ = 1 + 8
O
M
(0,0) g + h’ = 0 + 10
(0,0) g + h’ = 0 + 10
N
(4,0) g + h’ = 1 + 8
Problema de las cubetas…
x, y
4, 3
Paso 2
O
(0,3) g + h’ = 1 + 8 M
(3,0) g + h’ = 2 + 4
P
(0,0) g + h’ = 0 + 10
N
R
(4,0) g + h’ = 1 + 8
(4,3) g + h’ = 2 + 10
Problema de las cubetas…
x, y
4, 3
Paso 3
O
(0,3) g + h’ = 1 + 8 M
(3,0) g + h’ = 2 + 4
P
(0,0) g + h’ = 0 + 10
N
R
(4,0) g + h’ = 1 + 8
(4,3) g + h’ = 2 + 10
S
(3,3) g + h’ = 3 + 4
x, y
4, 3
Paso 3
O
(0,3) g + h’ = 1 + 8 M
(3,0) g + h’ = 2 + 4
P
(0,0) g + h’ = 0 + 10
N
R
(4,3) g + h’ = 2 + 10
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
(4,0) g + h’ = 1 + 8
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.
 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:
Ganar dinero
SubMeta:
Comprar un aparato de TV

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.
Ejemplos…
A
A
(6)
(18)
36 + 2
(38)
(9)
B
C
D
(5)
(3)
(4)
B
(17)
E
F
(5)
(10)
15 + 2
G
C
D
(9)
(27)
H
(3)
(4)
7+2
I
J
(15) (10)
25 + 2
 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.
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.


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



El costo del camino es C+D+2= 3+4+2=9
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= 1 + 17 = 18.
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.
Ejemplo …
A
9
3 B
9
3 B
A
4 E
12
D 10
F 4
6 B
5 G
6
C 4
11
C 4
A
7H
D 5
A
11
C 4
4 E
D 10
F 4
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.
1
2
7
3
8
9
5
10
4
6
irresoluble
Nodo objetivo
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.
 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.
1
2
7
8
9
3
5
10
11
4
6
irresoluble
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
fin