Busqueda Con Informacion

30
Búsqueda heurística

description

ia busqueda

Transcript of Busqueda Con Informacion

Curso de JavaLas estrategias de búsqueda sin información suelen ser muy ineficientes.
Búsqueda “mejor el primero”
Función de evaluación (eval-fn):
Algoritmo:
increasing eval-fn
Función heurística (h)
Origen: exclamación de Arquímedes, “heureka”, tras el descubrimiento de su principio
Algoritmo:
return BEST-FIRST-SEARCH(problem, h)
h(nodo)=coste estimado del camino más corto desde un nodo hasta el objetivo.
Todas las funciones heurísticas deben cumplir al menos:
h(n)>=0, para todo nodo n
h(n)=0, si “n” es un nodo objetivo
*
“Arad, Sibiu, Fagaras, Bucharest”,
“Arad, Sibiu, Rimnicu, Pitesti, Bucharest”
La búsqueda avara suele encontrar soluciones rápidamente
No suelen ser óptimas
No siempre se encuentran (ciclos)
Ej. de situación anómala: Ir de Iasi a Fagaras. Si no eliminamos repeticiones se entra en un ciclo.
I
V
N
I
En el peor caso:
*
Reduce coste de búsqueda, pero no es óptima ni completa.
Búsqueda de coste uniforme:
Se define la función “f(n)”:
f(n)=g(n)+h(n)
f(n)=coste estimado de la solución de menor coste que pasa por “n”
Algoritmo:
return BEST-FIRST-SEARCH(problem, g+h)
en donde h*(n)=“mínima distancia desde n
hasta el objetivo”
Solución obtenida por A*:
Encuentra la solución: “A, S, R, P, B”
Aplicación algoritmo (ver siguiente página)
Es la mejor solución.
Si h es admisible, A* es completo y óptimo.
*
Si h es monótona h admisible.
Dems:
Sea n un nodo, y sea un camino desde n hasta el objetivo:
donde y es un nodo objetivo.
Por tanto
h monótona f creciente
En el problema del mapa, h es monótona (“d” es la distancia en línea recta; “C” es el coste del arco)
y f es creciente (ver gráfico del ejemplo)
C(n,m)
h(m)
h(n)
A
B
C
D
3
1
1
3
Grafos localmente finitos
donde para todo operador:
Para el caso más sencillo de heurísticas monótonas:
En el ejemplo del mapa de carreteras se tienen conjuntos de nivel:
*
(3) G’ es objetivo subóptimo
Dems:
Sea n un estado en el camino óptimo a G y supongamos que el algoritmo selecciona para expandir G’ en lugar de G, entonces por (1) y (2)
Y si se ha escogido G’ para expandir
Por tanto
Es decir
*
(3) coste de operadores,
Dems: En algún momento se llegará a que f=“coste de algún estado objetivo”, salvo que existan infinitos nodos con f(n)<f*, lo cual sucedería si:
Un nodo tuviera (¡!)
Hubiera un camino de coste finito pero con infinitos nodos. Esto significaría que, por (1) y (3)
*
Propiedades de A*, IV
Si h es monótona, y A* ha expandido un nodo n, entonces g(n)=g*(n)
Es consecuencia directa de que:
Un subgrafo de una heurística monótona da lugar a una heurística monótona (que es, por tanto, admisible), considerando la nueva heurística h’=h-g(n)
h admisible --> A* completo y óptimo
A* es óptimamente eficiente
Ningún otro algoritmo óptimo expandirá menos nodos que A*
Si un algoritmo no expande todos los nodos entre el origen y el contorno óptimo, corre el riesgo de perder la solución óptima.
Dems: ver Dechter – Pearl (1985)
*
Propiedades de A*, V
Complejidad (espacial y temporal):
Se puede demostrar que la complejidad del algoritmo sigue siendo exponencial si no ocurre que:
En casi todas las heurísticas, el error es al menos proporcional a h* y, por tanto, normalmente se tiene complejidad exponencial.
De todos modos, el uso de heurísticas produce enormes mejoras con respecto a la búsqueda no informada.
La complejidad espacial suele ser un mayor problema que la temporal.
“profundidad” de la mejor solución
*
h=6
A
G
H
7
Si hubiéramos considerado eliminación de estados repetidos, entonces:
Habríamos eliminado (B-->E), (E-->H) y (G->K)
Al ser h monótona:
Al eliminar estados repetidos, ya que:
Si h es monótona, entonces si un nodo ha sido expandido --> g(n)=g*(n)
entonces, bastaría con:
1) Si está repetido en los nodos ya expandidos, eliminar directamente el “nodo nuevo”
*
Un ejemplo de A*, IV
Si eliminamos estados repetidos, en el caso de una h admisible pero no monótona, podemos eliminar un nodo peor ya expandido:
3
1
1
3
Una solución típica tiene unos 20 pasos
Factor de ramificación (b):
Por tanto:
Si se lleva la cuenta de estados repetidos, el número de estados es 9!=362.880
Funciones heurísticas:
h2=suma de distancias de Manhattan de las
fichas a sus posiciones objetivo
Son heurísticas monótonas
Factor efectivo de ramificación (b*):
N=número de nodos expandidos por A* (incluido el nodo de la mejor solución)
d=profundidad de la solución obtenida por A*
b*=factor de ramificación de un árbol de profundidad d y N nodos.
Resolución no algebraica, sino con métodos de cálculo numérico.
Ejemplo: d=5, N=52 ---> b*=1.91
*
Si h-->h*, entonces b*-->1.
Si h-->0 (búsqueda de coste uniforme), entonces b*--> b (b = cantidad operadores)
Ejemplo (heurísticas h1 y h2 en el problema del 8-puzle):
Si una heurística h2 domina a otra h1 (h2>=h1; suponemos h1 y h2 monótonas), entonces h1 expande al menos los mismos nodos que h2.
Idea intuitiva:
*
Problema inicial:
Si A es adyacente a B y B es blanco, entonces mueve ficha desde A hasta B
Relajando las condiciones, se obtienen nuevos problemas:
1) Si A es adyacente a B, entonces mueve ficha desde A hasta B
2) Si B es blanco, entonces mueve ficha desde A hasta B
3) mueve ficha desde A hasta B
Entonces:
Otro método:
*
Algoritmo:
y para k>=1:
*
1
1
3
3
2
2
2
1
4
3
4
3
Se producen 4 iteraciones: f<=0, f<=1, f<=3, f<=4
A
B
C
D
E
F
G
H
I
J
K
L
M
A
4
J
I
H
B
E
F
D
C
L
K
3
2
1
f=10
f=9
f=6
A
J
I
H
B
E
F
D
C
L
K
3
2
1
E
H
G
4
5
6
Algoritmo IDA*, IV
IDA* es completo y óptimo, pero al ser iterativo en profundidad, necesita menos memoria. Complejidad espacial:
Complejidad temporal:
En problemas como el mapa de carreteras, cada iteración puede añadir sólo un nodo nuevo. Por tanto, si A* expande N nodos, IDA* necesitará N iteraciones y expandirá 1+2+...+N=
Una solución a este problema podría ser discretizar los posibles valores de (múltiplos de ). Se tendrían heurísticas -admisibles. En tal caso, el número de
iteraciones sería:
*
Algoritmos de mejora iterativa, I
Ejemplo de las N damas:
Partiendo de N damas en el tablero, moverlas hasta encontrar una solución.
Uso de funciones de evaluación (una heurística h es un ejemplo).
Búsqueda de máximos-mínimos.
Búsqueda con escalada:
Si se puede elegir más de un sucesor que mejore el inicial (con el mismo valor de la función de evaluación), se elige al azar.
Inconvenientes:
Enfriamiento simulado:
Simulated annealing
Annealing: “Proceso de enfriar lentamente un líquido hasta que se congela”.
“Si la temperatura se reduce suficientemente lentamente en un líquido, el material obtendrá su estado de más baja energía (ordenación perfecta)”.
Algoritmo:
En problemas de satisfacción de restricciones como el de las N-damas:
Resolución de problema de 1.000.000 de damas en menos de 50 pasos.
Minimización de conflictos (en una columna al azar mover una dama a la casilla que cree menos conflictos)
Aplicados también a programación de observaciones en el telescopio Hubble.
fig04_02.ps
nm
G