Upload
ivan-de-la-rosa
View
465
Download
2
Tags:
Embed Size (px)
Citation preview
6. Técnicas de Búsqueda Heurística
1
Búsquedas Informadas
2.2
Bú
sq
ued
a H
eu
rísti
ca
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*
� Mejoras al Algoritmo A*
2
� Mejoras al Algoritmo A*
2. FUNCIONES HEURÍSTICAS
� Propiedades
3. BÚSQUEDA LOCAL
� Búsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
� Simulated annealing
� Haz Local
2.2
Bú
sq
ued
a H
eu
rísti
ca
Objetivos
� Al finalizar este tema el alumno deberá ser capaz de:1. Definir funciones heurísticas apropiadas a los
problemas planteados.2. Aplicar los algoritmos de b. heurística.
3
2. Aplicar los algoritmos de b. heurística.3. Aplicar los algoritmos de b. local4. Evaluar las ventajas de cada método.5. Seleccionar la mejor estrategia de acuerdo a
las características del problema.
2.2
Bú
sq
ued
a H
eu
rísti
ca
IntroducciónFunció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
4
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
2.2
Bú
sq
ued
a H
eu
rísti
ca
IntroducciónHeurísticas para el 8 -puzle
� h1 = nº de piezas mal colocadas
1 2 3
6 5
4
7
81
2 36
5
4
78
5
� h1 = nº de piezas mal colocadash1(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.
h2(x) = 1+1+0+0+0+2+1+1=6
2.2
Bú
sq
ued
a H
eu
rísti
ca
IntroducciónFunció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 mejor estado para
6
� Evaluar si el estado-actual es el mejor estado para 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
2.2
Bú
sq
ued
a H
eu
rísti
ca
IntroducciónFunción de Evaluación f(n)
AA
Una función de evaluacióndescribe la conveniencia de
expandir el nodo n
AA
BB
DD FFEE
CCf(B) f(C)
GG IIHH
7
AA
BB CC
h(B)h(C)
ObjetivoObjetivo
Una función heurísticaestima el coste de alcanzar el objetivo desde un estado n
DD FFEE GG IIHH
2.2
Bú
sq
ued
a H
eu
rísti
ca
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*
� Mejoras al Algoritmo A*
8
� Mejoras al Algoritmo A*
2. FUNCIONES HEURÍSTICAS
� Propiedades
3. BÚSQUEDA LOCAL
� Búsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
� Simulated annealing
� Haz Local
2.2
Bú
sq
ued
a H
eu
rísti
ca
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).
� Combina las ventajas de la Búsqueda en
9
� Combina las ventajas de la Búsqueda en Profundidad � Sigue un único camino, sin necesidad de generar
todos los caminos posiblesY la Búsqueda en Anchura:� No se queda en bucles infinitos o caminos sin
salida
2.2
Bú
sq
ued
a H
eu
rísti
ca
Búsqueda Avara (Voraz) 1º el MejorGreedy Search
� Trata de expandir el nodo más cercano al objetivo � minimizar el coste estimado para alcanzar el estado final
� Función Heurística h(n) estima el coste del camino
10
� Función Heurística h(n) estima el coste del camino del nodo n al estado final
� Selecciona de la lista ABIERTOS el nodo con el
menor valor de f(n)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Distancia entre ciudades rumanas
Realizar una estimación del camino más barato desde Arad a Bucarest
11 h(n) : distancia en línea recta de una ciudad a Bucarest
2.2
Bú
sq
ued
a H
eu
rísti
ca
Ejemplo de Búsqueda Avarah(n) realiza una estimación del camino más barato a Bucarest desde Arad: distancia en línea recta
Total recorrido=140+99+211 = 450
12
2.2
Bú
sq
ued
a H
eu
rísti
ca
� 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:
Algoritmo A*
13
f(n) = g(n) + h(n)
� g(n): coste de recorrer el camino desde el
estado inicial hasta n.
� h(n): coste estimado de ir del estado n hasta el
objetivo.
2.2
Bú
sq
ued
a H
eu
rísti
ca
Búsquedas Primero el Mejor
� Greedy Search (Búsqueda Avara):
f(n) = h(n)
14
� Algoritmo A*
f(n) = g(n) + h(n)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Función de evaluación en A*
AA
BB CC
g(C)g(B)
15
CC
h(B)h(C)
ObjetivoObjetivo
f(C) = g(C) + h(C)f(B) = g(B) + h(B)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Ejemplo A* h(n) : distancia en línea recta de una ciudad a Bucarest
g(n) : distancia del origen a un nodo
16Total Recorrido = 140 + 80 + 97 + 101 = 428 ¡ES MEJOR !
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3.
17
4. FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3. Mientras (ABIERTOS ≠≠≠≠ Nil Y
First(ABIERTOS) ≠≠≠≠ Objetivo)
a) actual:= First(ABIERTOS)b) CERRADOS:= {CERRADOS + actual}
18
b) CERRADOS:= {CERRADOS + actual} 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_Mientras4. Si (First(ABIERTOS)==Objetivo)
entonces Devolver Soluciónsi_no Devolver Fallo
FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3. Mientras (ABIERTOS ≠ Nil Y
First(ABIERTOS) ≠ Objetivo)
a) actual:= First(ABIERTOS)b) CERRADOS:= {CERRADOS + actual}
19
b) CERRADOS:= {CERRADOS + actual} 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_Mientras4. Si (First(Abiertos)==Objetivo)
entonces Devolver Soluciónsi_no Devolver Fallo
FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3. Mientras (ABIERTOS ≠ Nil Y
First(ABIERTOS) ≠ Objetivo)
a) actual:= First(ABIERTOS)b) CERRADOS:= {CERRADOS + actual}
20
b) CERRADOS:= {CERRADOS + actual} 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_Mientras4. Si (First(Abiertos)==Objetivo)
entonces Devolver Soluciónsi_no Devolver Fallo
FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3. Mientras (ABIERTOS ≠ Nil Y
First(ABIERTOS) ≠ Objetivo)
a) actual:= First(ABIERTOS)b) CERRADOS:= {CERRADOS + actual}
21
b) CERRADOS:= {CERRADOS + actual} 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_Mientras4. Si (First(Abiertos)==Objetivo)
entonces Devolver Soluciónsi_no Devolver Fallo
FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo A*
1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3. Mientras (ABIERTOS ≠ Nil Y
First(ABIERTOS) ≠ Objetivo)
a) actual:= First(ABIERTOS)b) CERRADOS:= {CERRADOS + actual}
22
b) CERRADOS:= {CERRADOS + actual} 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_Mientras4. Si (First(Abiertos)==Objetivo)
entonces Devolver Soluciónsi_no Devolver Fallo
FIN
2.2
Bú
sq
ued
a H
eu
rísti
ca
Ejercicio Genérico
� Aplica B. Voraz y A*g(nodo)= valores en los arcos
h(nodo)= valores dentro del nodo
23
2.2
Bú
sq
ued
a H
eu
rísti
ca
Búsqueda Voraz 1º el Mejor
� No es óptima� No es completa
� Complejidad en tiempo: nº de nodos generadosO(bm)
24
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
2.2
Bú
sq
ued
a H
eu
rísti
ca
Rendimiento de A*
� Completo: cuando elimina los estados repetidos
� Óptimo: cuando h es admisible (h nunca sobreestima el coste real de alcanzar la meta)
25
� Complejidad en tiempo: nº de nodos generadosO(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
2.2
Bú
sq
ued
a H
eu
rísti
ca
La principal desventaja de A* es que mantiene todos los
nodos generados en memoria (crecimiento exponencial)
A* de Profundidad Iterativa
� Utiliza como criterio de corte el f-valor:
Mejoras del Algoritmo A*
26
� Utiliza como criterio de corte el f-valor:
� 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
2.2
Bú
sq
ued
a H
eu
rísti
ca
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.
� Si el nodo actual excede este límite, vuelve al
27
� Si el nodo actual excede este límite, vuelve al 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)
2.2
Bú
sq
ued
a H
eu
rísti
ca
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� Completo si d es menor que el tamaño de la
28
� Completo si d es menor que el tamaño de la 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
2.2
Bú
sq
ued
a H
eu
rísti
ca
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*
� Mejoras al Algoritmo A*
29
� Mejoras al Algoritmo A*
2. FUNCIONES HEURÍSTICAS
� Propiedades
3. BÚSQUEDA LOCAL
� Búsqueda en escalada o Gradiente Hill-climbing
(Gradient descent)
� Simulated annealing
� Haz Local
2.2
Bú
sq
ued
a H
eu
rísti
ca
Admisibilidad
� Admisibilidad: Una heurística admisible es una función que nunca sobrestima el coste real de alcanzar el estado final.� P.ej. Distancia en línea recta
� Optimalidad: Si la función heurística h es
30
� Optimalidad: Si la función heurística h 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
2.2
Bú
sq
ued
a H
eu
rísti
ca
Demostración A* es Óptimo
� G1: objetivo óptimo f(G1)=g(G1)+h(n) ≤ C*
� G2: objetivo subóptimof(G2)=g(G2)+0> C*
AA
Bn
G2G2 ObjetivoSubÓptimo
h(G1) =0C* Coste Mínimo
f(n)f(G2)
31
f(G2)=g(G2)+0> C*
� n es un nodo en el camino de la solución óptima
f(n)=g(n)+h(n) <= C*h admisible
ObjetivoÓptimo
G1G1
h(G2) = 0g(G2) MAYOR que C*
f(n) MENOR O IGUAL que C*
A* nunca seleccionará el nodo G2 porque f(n) ≤ C* < f(G2)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Consistencia
Optimalidad en Grafos� Desechar camino más caro� Asegurar que se sigue el camino óptimo a cualquier estado repetido.
nnc(n,m)
h(n)
32
� 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
A* encuentra el camino óptimo
mm
GG
h(m)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Consistencia en las ciudades rumanas
� Heurística: distancia en línea recta
nnc(n,m)
h(n)
Sibiu
Fagarash(Sibiu)= 253
c(Sibiu,Fagaras)=99
33
mm
GG
h(m)
Fagaras
Bucarest
h(Sibiu)= 253
h(Fagaras)= 178
h(Sibiu) <= h(Fagaras) + c(Sibiu,Fagaras)
2.2
Bú
sq
ued
a H
eu
rísti
ca
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 h (n) ≥≥≥≥ h (n)
34
� 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)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Relajación de Precondiciones
� Una ficha puede moverse del cuadrado A al cuadrado B si:� A y B son adyacentes� B está vacía
� Problemas relajados:
35
� Problemas relajados:� Si no son adyacentes cualquier ficha del tablero
puede moverse al hueco
� Una ficha se puede mover a una ficha adyacente que no esté vacía
h1 = nº de piezas mal colocadas
h2 = ΣΣΣΣdistancias de Manhattan de las posiciones a sus obj etivos
2.2
Bú
sq
ued
a H
eu
rísti
ca
Heurísticas para el 8 -puzle
� h1 = nº de piezas mal colocadas
1 2 3
6 5
4
7
81
2 36
5
4
78
36
� h1 = nº de piezas mal colocadash1(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.
h2(x) = 1+1+0+0+0+2+1+1=6
2.2
Bú
sq
ued
a H
eu
rísti
ca
Técnicas de Búsqueda Heurística
� Búsqueda Primero el Mejor (Best-First Search)
� Búsqueda Voraz (Greedy search)
� Algoritmo A*
�
37
� Algoritmos Iterativos o de Búsqueda Local
� Búsqueda en escalada o Gradiente (Hill-climbing or Gradient ascent/descent)
� Haz Local
� Temple Simulado Simulated annealing
2.2
Bú
sq
ued
a H
eu
rísti
ca
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
38
� 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
2.2
Bú
sq
ued
a H
eu
rísti
ca
Búsqueda LocalAlgoritmos 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) � decreciente (si se trata de minimizar la función de
39
� decreciente (si se trata de minimizar la función de coste)
2.2
Bú
sq
ued
a H
eu
rísti
ca
Búsqueda en Escalada
� Se generan los sucesores de un estado n y sea m, 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).
40
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.
2.2
Bú
sq
ued
a H
eu
rísti
ca
Algoritmo B. en Escalada
vecino:=sucesor de actual con f mayorsi f(vecino) ≤ f(actual)
entonces ABIERTOS:= actual
La lista de ABIERTOS sólo mantendría un únicoestado después de aplicar los operadores a actual
41
entonces ABIERTOS:= actual si no ABIERTOS:= vecino
2.2
Bú
sq
ued
a H
eu
rísti
ca
Problemas
llanura Máximo global
42
Máximo local
Meseta
2.2
Bú
sq
ued
a H
eu
rísti
ca
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.
�
43
� Si alguno es un objetivo, finaliza.� Si no, se seleccionan los k mejores sucesores de la
lista completa y se repite el proceso
2.2
Bú
sq
ued
a H
eu
rísti
ca
Colocar n reinas sobre un tablero de n x n, sin que queden dos reinas en la misma columna, o diagonalMover una reina para reducir el número de conflictos
44
2.2
Bú
sq
ued
a H
eu
rísti
ca
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 alternativas menos costosas. Además plantea el
45
alternativas menos costosas. Además plantea el tratamiento de los estados repetidos, el cual se puede aplicar a cualquier estrategia seleccionada.
2.2
Bú
sq
ued
a H
eu
rísti
ca
Referencias Bibliográficas
� Inteligencia Artificial: Un Enfoque Moderno. S. Russell y P. Norvig, 2005
� Problemas Resueltos de IA Aplicada. Búsqueda y Representación. Fernández et al.
46
� Aspectos básicos de la Inteligencia Artificial. Mira et al. , 2003
7
Representación. Fernández et al. (2003)