Title: Curso de Java
1Búsqueda heurística
2Búsqueda mejor el primero
- Las estrategias de búsqueda sin información
suelen ser muy ineficientes. - Búsqueda mejor el primero
- Función de evaluación (eval-fn)
- Mide lo deseable de expandir un nodo
- Algoritmo
- function BEST-FIRST-SEARCH(problem,
eval-fn) - returns a solution sequence
- inputs problem, a problem
- eval-fn, an evaluation
function - queueing-fn lt-- a function that
orders by - increasing
eval-fn - return
- GENERAL-SEARCH(problem, queueing-fn)
3Búsqueda avara, I
- Es una búsqueda mejor el primero con
eval-fn(nodo)h(nodo). - Función heurística (h)
- Origen exclamación de Arquímedes, heureka,
tras el descubrimiento de su principio - Algoritmo
- function GREEDY-SEARCH(problem)
- returns a solution or failure
- 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)gt0, para todo nodo n
- h(n)0, si n es un nodo objetivo
4Búsqueda avara, II
- Ejemplo Mapa de carreteras
- Viajar desde Arad hasta Bucarest
- Solución obtenida por búsqueda avara
- Nodos expandidos Encuentra el camino
- Arad, Sibiu, Fagaras, Bucharest,
- No es óptima Es más corto
- 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.
5Búsqueda avara, IV
- En resumen
- No es óptimo ni completo.
- En el peor caso
- Complejidad temporal
- Complejidad espacial
- Se almacenan todos los nodos en memoria
- mmáxima profundidad del árbol de búsqueda
6Algoritmo A, I
- Algoritmo A, combinación de
- Búsqueda avara
- Reduce coste de búsqueda, pero no es óptima ni
completa. - Búsqueda de coste uniforme
- Es completa y óptima pero ineficiente.
- 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
- function A-SEARCH (problem)
- returns a solution or failure
- return BEST-FIRST-SEARCH(problem, gh)
7Algoritmo A, II
- Heurística admisible
- Una función heurística h es admisible si
- en donde h(n)mínima distancia desde n
- hasta el objetivo
- Ejemplo
- En el mapa de carreteras, h es admisible.
- Solución obtenida por A
- Orden de expansión A, S, R, P, F, B
- Encuentra la solución A, S, R, P, B
- Aplicación algoritmo (ver siguiente página)
- Es la mejor solución.
- Se va a tener el resultado
- Si h es admisible, A es completo y óptimo.
8Algoritmo A, III
1
f0366366
f140253393
f75374449
2
f118329447
f220193413
f291380671
5
3
f239178417
f300253553
4
f366160526
f591
f450
f31798415
6
f418
f607
f615
9Algoritmo A, IV
- Una heurística es monótona cuando
- 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
10Algoritmo A, V
- h admisible monótona
- Dems Contraejemplo
- Si h es una heurística
- 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)
11Propiedades de A, I
- A es óptimo y completo si h es admisible
- Grafos localmente finitos
- con factores de ramificación finitos
- donde para todo operador
- Demostración (intuitiva)
- Para el caso más sencillo de heurísticas
monótonas - En el ejemplo del mapa de carreteras se tienen
conjuntos de nivel - En la búsqueda uniforme se tienen bandas
circulares, mientras que si la heurística es más
exacta (h --gt h), las bandas se dirigen más
directamente al objetivo.
12Propiedades de A, II
- A es óptimo
- Hipótesis
- (1) h es admisible
- (2) G es óptimo con coste de camino f
- (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
- que es una contradicción con (3). cqd.
13Propiedades de A, III
- A es completo
- Hipótesis
- (1) heurísticas monótonas,
- (2) factor de ramificación b,
- (3) coste de operadores,
- Dems En algún momento se llegará a que fcoste
de algún estado objetivo, salvo que existan
infinitos nodos con f(n)ltf, 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) - Por tanto, el algoritmo debe acabar.Y si acaba,
es que encuentra una solución. cqd.
14Propiedades 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
hh-g(n) - h admisible --gt 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)
- La búsqueda de coste uniforme es un caso
particular de A (h0)
15Propiedades 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
16Un ejemplo de A, I
h6
4
1
2
h5
h2
h5
4
5
1
4
2
h4
1
h5
h2
3
2
1
h1
3
h4
h1
5
6
6
h0
h0
17Un ejemplo de A, II
18Un ejemplo de A, III
- Si hubiéramos considerado eliminación de estados
repetidos, entonces - Habríamos eliminado (B--gtE), (E--gtH) y (G-gtK)
- Al ser h monótona
- A obtiene la mejor solución
- Al eliminar estados repetidos, ya que
- Si h es monótona, entonces si un nodo ha sido
expandido --gt g(n)g(n) - entonces, bastaría con
- 1) Si está repetido en los nodos ya expandidos,
eliminar directamente el nodo nuevo - 2) Si está repetido en las hojas, quedarse con
el mejor entre el nodo viejo y el nuevo
19Un 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
h1
1
3
h1
h4
1
3
f1
h0
f5
f4
Se eliminaría
f3
f6
f5
20Problema del 8-puzle
- En el problema del 8-puzle
- 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
- h1número de fichas mal colocadas
- h2suma de distancias de Manhattan de las
- fichas a sus posiciones objetivo
- Son heurísticas monótonas
21Exactitud de heurísticas, I
- Factor efectivo de ramificación (b)
- Nnúmero de nodos expandidos por A (incluido el
nodo de la mejor solución) - dprofundidad de la solución obtenida por A
- bfactor 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 d5, N52 ---gt b1.91
- Normalmente, para una heurística h, bconstante
en varias instancias del problema.
22Exactitud de heurísticas, II
- Si h--gth, entonces b--gt1.
- Si h--gt0 (búsqueda de coste uniforme), entonces
b--gt 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 (h2gth1
suponemos h1 y h2 monótonas), entonces h1 expande
al menos los mismos nodos que h2. - Idea intuitiva
- Si f(n)ltf, entonces n se expande. Pero esto es
equivalente a h(n)ltf-g(n). Por tanto, si ese
nodo es expandido por h2, también lo es por h1
23Creación de funciones heurísticas
- Método de relajación
- 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
- h para el problema 2) heurística h1
- h para el problema 1) heurística h2
- Otro método
- h1, h2, ...hn admisibles --gt maxh1, h2, ...hn
también es admisible
24Algoritmo IDA, I
- Iterative-Deepening A-search (h monótona).
- Algoritmo
- snodo inicial
- Se definen
- y para kgt1
- El algoritmo realiza búsqueda en profundidad para
los valores L0,1,2,... en los conjuntos
25Algoritmo IDA, II
1
1
3
3
2
2
2
4
4
1
3
3
Se producen 4 iteraciones flt0, flt1, flt3, flt4
26Algoritmo IDA, III, a
f6
f6
f7
f6
f6
f9
f7
f11
f10
f11
f10
Ejemplo de aplicación de IDA, iteración flt6
27Algoritmo IDA, III, b
f6
f6
f7
f6
f7
f9
f10
f11
f7
f6
f11
f10
f10
f9
Ejemplo de aplicación de A, iteración flt7
Faltarían otras dos iteraciones flt9, flt10
28Algoritmo 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á 12...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
profundidad de la mejor solución
29Algoritmos 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
- Máximos locales
- Zonas llanas
- Crestas
30Algoritmos de mejora iterativa, II
- 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.