46
6. Técnicas de Búsqueda Heurística 1 Búsquedas Informadas

Tema 6 - Busqueda Heuristica

Embed Size (px)

Citation preview

Page 1: Tema 6 - Busqueda Heuristica

6. Técnicas de Búsqueda Heurística

1

Búsquedas Informadas

Page 2: Tema 6 - Busqueda Heuristica

2.2

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

Page 3: Tema 6 - Busqueda Heuristica

2.2

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.

Page 4: Tema 6 - Busqueda Heuristica

2.2

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

Page 5: Tema 6 - Busqueda Heuristica

2.2

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

Page 6: Tema 6 - Busqueda Heuristica

2.2

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

Page 7: Tema 6 - Busqueda Heuristica

2.2

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

Page 8: Tema 6 - Busqueda Heuristica

2.2

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

Page 9: Tema 6 - Busqueda Heuristica

2.2

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

Page 10: Tema 6 - Busqueda Heuristica

2.2

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)

Page 11: Tema 6 - Busqueda Heuristica

2.2

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

Page 12: Tema 6 - Busqueda Heuristica

2.2

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

Page 13: Tema 6 - Busqueda Heuristica

2.2

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.

Page 14: Tema 6 - Busqueda Heuristica

2.2

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)

Page 15: Tema 6 - Busqueda Heuristica

2.2

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)

Page 16: Tema 6 - Busqueda Heuristica

2.2

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 !

Page 17: Tema 6 - Busqueda Heuristica

2.2

sq

ued

a H

eu

rísti

ca

Algoritmo A*

1. ABIERTOS:=(nodoinicial)2. CERRADOS:=NIL3.

17

4. FIN

Page 18: Tema 6 - Busqueda Heuristica

2.2

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

Page 19: Tema 6 - Busqueda Heuristica

2.2

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

Page 20: Tema 6 - Busqueda Heuristica

2.2

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

Page 21: Tema 6 - Busqueda Heuristica

2.2

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

Page 22: Tema 6 - Busqueda Heuristica

2.2

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

Page 23: Tema 6 - Busqueda Heuristica

2.2

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

Page 24: Tema 6 - Busqueda Heuristica

2.2

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

Page 25: Tema 6 - Busqueda Heuristica

2.2

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

Page 26: Tema 6 - Busqueda Heuristica

2.2

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

Page 27: Tema 6 - Busqueda Heuristica

2.2

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)

Page 28: Tema 6 - Busqueda Heuristica

2.2

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

Page 29: Tema 6 - Busqueda Heuristica

2.2

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

Page 30: Tema 6 - Busqueda Heuristica

2.2

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

Page 31: Tema 6 - Busqueda Heuristica

2.2

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)

Page 32: Tema 6 - Busqueda Heuristica

2.2

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)

Page 33: Tema 6 - Busqueda Heuristica

2.2

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)

Page 34: Tema 6 - Busqueda Heuristica

2.2

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)

Page 35: Tema 6 - Busqueda Heuristica

2.2

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

Page 36: Tema 6 - Busqueda Heuristica

2.2

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

Page 37: Tema 6 - Busqueda Heuristica

2.2

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

Page 38: Tema 6 - Busqueda Heuristica

2.2

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

Page 39: Tema 6 - Busqueda Heuristica

2.2

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)

Page 40: Tema 6 - Busqueda Heuristica

2.2

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.

Page 41: Tema 6 - Busqueda Heuristica

2.2

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

Page 42: Tema 6 - Busqueda Heuristica

2.2

sq

ued

a H

eu

rísti

ca

Problemas

llanura Máximo global

42

Máximo local

Meseta

Page 43: Tema 6 - Busqueda Heuristica

2.2

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

Page 44: Tema 6 - Busqueda Heuristica

2.2

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

Page 45: Tema 6 - Busqueda Heuristica

2.2

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.

Page 46: Tema 6 - Busqueda Heuristica

2.2

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)