6. Técnicas de Búsqueda Heurística Búsquedas Informadas
1
a c i t s í r u e H a d e u q s ú B 2 . 2
Técnicas de Búsqueda Heurística 1. BÚSQUEDA PRIMERO EL MEJOR (Best-First Search) Búsqueda Voraz o Avara (Greedy search) Algoritmo A* * 2. FUNCIONES HEURÍSTICAS Propiedades 3. BÚSQUEDA LOCAL Búsqueda en escalada o Gradiente Hill-climbing (Gradient descent)
2
Simulated annealing Haz Local
a c i t s í r u e H a d e u q s ú B 2 . 2
Técnicas de Búsqueda Heurística 1. BÚSQUEDA PRIMERO EL MEJOR (Best-First Search) Búsqueda Voraz o Avara (Greedy search) Algoritmo A* * 2. FUNCIONES HEURÍSTICAS Propiedades 3. BÚSQUEDA LOCAL Búsqueda en escalada o Gradiente Hill-climbing (Gradient descent)
2
Simulated annealing Haz Local
a c i t s í r u e H a d e u q s ú B 2 . 2
Objetivos Al finalizar este tema el alumno deberá ser capaz
de: 1. Definir funciones heurísticas apropiadas a los problemas planteados. . . . 3. Aplicar los algoritmos de b. local 4. Evaluar las ventajas de cada método. 5. Seleccionar la mejor estrategia de acuerdo a las características del problema.
3
a c i t s í r u e H a d e u q s ú B 2 . 2
Introducción Función Heurística h(n) HEURÍSTICA Manera de buscar la solución de un problema mediante métodos no rigurosos, como por tanteo, reglas empíricas, etc (RAE, 2001) Proceso que puede resolver un problema dado, pero que no ofrece ninguna garantía de que lo hará (Newell, Shaw y Simon, 1963). FUNCIÓN HEURÍSTICA Estima el coste de elegir una ruta para llegar al objetivo Utiliza información del dominio específico del problema No garantiza el éxito, pero suele ser mejor que la búsqueda a
ciegas
4
a c i t s í r u e H a d e u q s ú B 2 . 2
Introducción Heurísticas para el 8-puzle 2
6
1 8
7
3
1
4
8
5
7
2
3 4
6
5
h1 = nº de iezas mal colocadas
h1(x) = fichas(1,2,6,7,8)=5 h2 = suma de las distancias de Manhattan de las posiciones a sus objetivos. La distancia de Manhattan es el nº de filas y columnas que restan de la posición actual de una pieza a su posición final. Por ejemplo, la distancia Manhattan de la pieza 2 sería de 1, de la pieza 5 sería 0, etc. 5
h2(x) = 1+1+0+0+0+2+1+1=6
a c i t s í r u e H a d e u q s ú B 2 . 2
Introducción Función de Evaluación f(n) La decisión final de expandir un nodo se basa en
la función de evaluación f(n) Evaluar si el estado-actual es el me or estado ara
seguir expandiendo el árbol o grafo de búsqueda
Normalmente se establece el criterio de elegir el
nodo con la f(n) más baja, de tal manera que la función heurística cumpla: h(objetivo) = 0 6
a c i t s í r u e H a d e u q s ú B 2 . 2
Introducción Función de Evaluación f(n) Una función de evaluación describe la conveniencia de expandir el nodo n B D
B
f(C)
f(B)
C
F
G
H
C
h(C)
h(B)
7
E
A
Objetivo
Una función heurística estima el coste de alcanzar el objetivo desde un estado n
I
a c i t s í r u e H a d e u q s ú B 2 . 2
Técnicas de Búsqueda Heurística 1. BÚSQUEDA PRIMERO EL MEJOR
(Best-First
Search)
Búsqueda Voraz o Avara (Greedy search) Algoritmo A* Me oras al Al oritmo A* 2. FUNCIONES HEURÍSTICAS Propiedades 3. BÚSQUEDA LOCAL Búsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
8
Simulated annealing Haz Local
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsquedas Primero el Mejor (Avara y A*)
Busca el nodo que parece ser el mejor (según la
función de evaluación) Ordena la lista ABIERTOS por los valores asociados a cada nodo en función de f(n). om na as ven a as e a sque a en Profundidad Sigue un único camino, sin necesidad de generar todos los caminos posibles Y la Búsqueda en Anchura: No se queda en bucles infinitos o caminos sin salida 9
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsqueda Avara (Voraz) 1º el Mejor Greedy Search
Trata de expandir el nodo más cercano al objetivo
minimizar el coste estimado para alcanzar el estado final
unc n eur s ca n es ma e cos e e cam no del nodo n al estado final Selecciona de la lista ABIERTOS el nodo con el
menor valor de f(n) 10
a c i t s í r u e H a d e u q s ú B 2 . 2
Realizar una estimación del camino más barato desde Arad a Bucarest
Distancia entre ciudades rumanas
11 h(n) : distancia en línea recta de una ciudad a Bucarest
a c i t s í r u e H a d e u q s ú B 2 . 2
h(n) realiza una estimación del camino más barato a Bucarest desde Arad: distancia en línea recta
Ejemplo de Búsqueda Avara
Total recorrido=140+99+211 =
12
450
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* La función de evaluación f(n) calcula el coste
estimado más barato a través del nodo n a la solución:
f(n) = g(n) + h(n) coste de recorrer el camino desde el estado inicial hasta n.
g(n):
coste estimado de ir del estado n hasta el objetivo.
h(n):
13
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsquedas Primero el Mejor Greedy Search (Búsqueda Avara):
f(n) = h(n)
Algoritmo A*
f(n) = g(n) + h(n)
14
a c i t s í r u e H a d e u q s ú B 2 . 2
Función de evaluación en A* A g(B)
g(C)
B
C f(C) = g(C) + h(C)
f(B) = g(B) + h(B)
h(C)
h(B)
Objetivo
15
a c i t s í r u e H a d e u q s ú B 2 . 2
Ejemplo A*
g(n) : distancia del origen a un nodo h(n) : distancia en línea recta de una ciudad a Bucarest
16 Recorrido = 140 + 80 + 97 + 101 = 428 Total
¡ES MEJOR !
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3.
4. FIN
17
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS ≠ Nil
First(ABIERTOS)
Y ≠
Objetivo)
a) actual:= First(ABIERTOS) := ac ua c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado
d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras
18
4. Si (First(ABIERTOS)==Objetivo) entonces Devolver Solución si_no Devolver Fallo FIN
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS ≠ Nil Y First(ABIERTOS) ≠ Objetivo)
a) actual:= First(ABIERTOS) := ac ua c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado
d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solución si_no Devolver Fallo
19
FIN
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS ≠ Nil Y First(ABIERTOS) ≠ Objetivo) a) actual:= First(ABIERTOS) := ac ua c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado
d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solución si_no Devolver Fallo
20
FIN
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS ≠ Nil Y First(ABIERTOS) ≠ Objetivo) a) actual:= First(ABIERTOS) := ac ua c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado
d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solución si_no Devolver Fallo
21
FIN
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo A* 1. ABIERTOS:=(nodoinicial) 2. CERRADOS:=NIL 3. Mientras (ABIERTOS ≠ Nil Y First(ABIERTOS) ≠ Objetivo) a) actual:= First(ABIERTOS) := ac ua c) Nuevos:= Expandir(actual) aplica operadores y calcula f(n)=g(n)+h(n) para cada nuevo nodo generado d) ABIERTOS:=Insertar(ABIERTOS, Nuevos, f(n)) en orden creciente de f(n) Fin_Mientras 4. Si (First(Abiertos)==Objetivo) entonces Devolver Solución si_no Devolver Fallo
22
FIN
a c i t s í r u e H a d e u q s ú B 2 . 2
Ejercicio Genérico Aplica B. Voraz y A*
g(nodo)=valores en los arcos h(nodo)=valores dentro del nodo
23
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsqueda Voraz 1º el Mejor No es óptima No es completa Complejidad en tiempo: nº de nodos generados
O(bm) Complejidad en espacio: longitud máxima que
puede alcanzar la lista de estados almacenada en memoria O(bm)
b: factor de ramificación y m profundidad máxima 24
a c i t s í r u e H a d e u q s ú B 2 . 2
Rendimiento de A* Completo: cuando elimina los estados repetidos Óptimo: cuando h es admisible (h nunca
sobreestima el coste real de alcanzar la meta) Complejidad en tiempo: nº de nodos generados
O(bm) Complejidad en espacio: longitud máxima que puede
alcanzar la lista de estados almacenada en memoria O(bm)
25
b: factor de ramificación y m profundidad máxima
a c i t s í r u e H a d e u q s ú B 2 . 2
Mejoras del Algoritmo A* La principal desventaja de A* es que mantiene todos los nodos generados en memoria (crecimiento exponencial)
A* de Profundidad Iterativa
Expadir nodo sólo si f(nodo) <= f-valor Actualizar f-valor = Mín{ f(nodo)>f-valor }
mínimo valor que supere el límite establecido en la iteración anterior
Sufre una regeneración excesiva de nodos
26
a c i t s í r u e H a d e u q s ú B 2 . 2
27
Derivaciones del Algoritmo A* A* BRPM: Búsqueda Recursiva 1º el Mejor Mantiene la pista del f-valor del mejor camino alternativo disponible desde cualquier antepasado del nodo actual. , camino alternativo con mejor f-valor. Actualiza todos los nodos hacia atrás, y no descarta volver por un camino olvidado si el f-valor vuelve a ser mejor. Regeneración excesiva de los nodos. Óptimo si h es admisible Complejidad en espacio: O(bd)
a c i t s í r u e H a d e u q s ú B 2 . 2
28
Derivaciones del Algoritmo A* A* con Memoria Acotada Simplificada Avanza como A* hasta que la memoria esté llena. A*MS retira el peor nodo hoja (mayor f-valor) y expande la mejor hoja omp e o s es menor que e ama o e a memoria. No es eficiente en problemas grandes porque la limitación de memoria puede hacer que un problema sea intratable desde el punto de vista de tiempo de cálculo
a c i t s í r u e H a d e u q s ú B 2 . 2
Técnicas de Búsqueda Heurística 1. BÚSQUEDA PRIMERO EL MEJOR
(Best-First
Search)
Búsqueda Voraz o Avara (Greedy search) Algoritmo A* * 2. FUNCIONES HEURÍSTICAS Propiedades 3. BÚSQUEDA LOCAL Búsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
29
Simulated annealing Haz Local
a c i t s í r u e H a d e u q s ú B 2 . 2
Admisibilidad Admisibilidad: Una heurística admisible es una
función que nunca sobrestima el coste real de alcanzar el estado final.
30
P.ej. Distancia en línea recta
p ma a : a unc n eur s ca es admisible, el algoritmo de búsqueda encontrará el camino más barato hacia la solución en el mínimo de pasos. A* es óptimo si h es admisible (con árboles de búsqueda): porque f(n)=g(n)+h(n) nunca sobrestima el coste actual de la mejor solución hacia n
a c i t s í r u e H a d e u q s ú B 2 . 2
Demostración A* es Óptimo G1: objetivo óptimo h(G1) =0 f(G1)=g(G1)+h(n)≤ C* C* Coste Mínimo G2: objetivo subóptimo * h(G2) = 0 g(G2) MAYOR que C*
f(n)
A
n B
f(G2) G2 G2
Objetivo SubÓptimo
G1 G1 Objetivo Óptimo
n es un nodo en el camino de la
31
solución óptima f(n) MENOR O IGUAL que C* f(n)=g(n)+h(n) <= C* h admisibleel nodo G2 porque A* nunca seleccionará f(n) ≤ C* < f(G2)
a c i t s í r u e H a d e u q s ú B 2 . 2
Consistencia Optimalidad en Grafos Desechar camino más caro Asegurar que se sigue el camino óptimo a cualquier estado repetido.
n c(n,m) h(n)
m
Una función heurística es consistente:
h(n) <= h(m)+c(n,m),
∀
(n,m)
f(n) es no decreciente Si h(n) es consistente 32
A* encuentra el camino óptimo
h(m)
G
a c i t s í r u e H a d e u q s ú B 2 . 2
Consistencia en las ciudades rumanas Heurística: distancia en línea recta Sibiu
c(n,m) h(n)
=
Bucarest
n
c(Sibiu,Fagaras)=99
m
h(Fagaras)= 178
h(Sibiu) <= h(Fagaras) + c(Sibiu,Fagaras) 33
h(m)
G
a c i t s í r u e H a d e u q s ú B 2 . 2
34
Eficiencia en las Funciones Heurísticas Factor de Ramificación Efectivo b* que debería
tener un árbol equilibrado de profundidad d para contener N+1 nodos: N +1 = 1+ b* + b* 2 …. + b*d Mejor heurística cuanto más cercano a 1 sea b* Funciones Heur sticas Dominantes h2(n) ≥ h1(n) h2 nunca generará más nodos que h1 Diseño de heurísticas: h(n)=max{(h1(n), h2(n), …, hp(n)} Aprender h(n) mediante la solución de muchos problemas (nodo, costo) Combinación de características : h(n) = c1x1(n) + c2x2(n)
a c i t s í r u e H a d e u q s ú B 2 . 2
Relajación de Precondiciones Una ficha puede moverse del cuadrado A al
cuadrado B si: A y B son adyacentes B está vacía ro emas re a a os: Si no son adyacentes cualquier ficha del tablero puede moverse al hueco h1 = nº de piezas mal colocadas
Una ficha se puede mover a una ficha adyacente que no esté vacía
h2 = Σdistancias de Manhattan de las posiciones a sus objetivos 35
a c i t s í r u e H a d e u q s ú B 2 . 2
Heurísticas para el 8-puzle 2
6
1 8
7
3
1
4
8
5
7
2
3 4
6
5
h1 = nº de iezas mal colocadas
h1(x) = fichas(1,2,6,7,8)=5 h2 = suma de las distancias de Manhattan de las posiciones a sus objetivos. La distancia de Manhattan es el nº de filas y columnas que restan de la posición actual de una pieza a su posición final. Por ejemplo, la distancia Manhattan de la pieza 2 sería de 1, de la pieza 5 sería 0, etc. 36
h2(x) = 1+1+0+0+0+2+1+1=6
a c i t s í r u e H a d e u q s ú B 2 . 2
Técnicas de Búsqueda Heurística Búsqueda Primero el Mejor (Best-First Search)
Búsqueda Voraz (Greedy search)
Algoritmo A*
Algoritmos Iterativos o de Búsqueda Local
Búsqueda en escalada o Gradiente (Hill-climbing or Gradient ascent/descent)
37
Haz Local
Temple Simulado Simulated annealing
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmos de Búsqueda Local Cuando el camino a la solución es irrelevante: Guardan sólo un estado en memoria: el estado actual Se mueven sólo a los nodos vecinos del nodo actual No son sistemáticos en la búsqueda Utilizan poca memoria Pueden encontrar soluciones razonables en
espacios de estados grandes o infinitos Pueden quedar atrapados en máximos/mínimos locales 38
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsqueda Local Algoritmos de Escalada (Hill-Climbing) Bucle que continuamente se mueve en la dirección
del valor: creciente (si se trata de maximizar una función objetivo)
39
coste)
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsqueda en Escalada Se generan los sucesores de un estado n y sea m,
40
el de mayor f(m). Si f(m)>f(n) devuelve m como expansión. Sigue el recorrido a través de los nodos en los que el valor de dicha función sea máximo (cuesta arriba). No mantiene un árbol de búsqueda, tan solo una estructura con el estado y el valor de la función objetivo. La B. en Escalada sólo mira a los vecinos inmediatos al estado actual. Termina cuando alcanza un “pico” donde ningún vecino tiene un valor más alto.
a c i t s í r u e H a d e u q s ú B 2 . 2
Algoritmo B. en Escalada La lista de ABIERTOS sólo mantendría un único estado después de aplicar los operadores a actual vecino:=sucesor de actual con f mayor si f(vecino) ≤ f(actual) := ac ua si no ABIERTOS:= vecino
41
a c i t s í r u e H a d e u q s ú B 2 . 2
Problemas llanura
Máximo global
Máximo local Meseta
42
a c i t s í r u e H a d e u q s ú B 2 . 2
Búsqueda por Haz Local Guarda la pista de k estados. Comienza con estados generados aleatoriamente En cada paso, se generan todos los sucesores de
los k estados. Si alguno es un objetivo, finaliza. Si no, se seleccionan los k mejores sucesores de la lista completa y se repite el proceso
43
a c i t s í r u e H a d e u q s ú B 2 . 2
44
Colocar n reinas sobre un tablero de n x n, sin que queden dos reinas en la misma columna, o diagonal Mover una reina para reducir el número de conflictos
a c i t s í r u e H a d e u q s ú B 2 . 2
Referencias Russell & Norvig : Capítulo 3 Realiza un repaso a las técnicas de búsqueda no informada, analizando el rendimiento de cada solución y planteando . tratamiento de los estados repetidos, el cual se puede aplicar a cualquier estrategia seleccionada.
45