Вы находитесь на странице: 1из 80

INTELIGENCIA ARTIFICIAL Y

SISTEMAS EXPERTOS

Búsqueda Informada

Mg. Samuel Oporto Díaz


Mapa Conceptual del Curso

Agentes
Conocimi
de
ento
Búsqueda

Sistemas
Diseño de Agentes
Inteligent Agentes
Agentes Móviles
es

Otros
Complejid
tipos de
ad
agentes

2 /79
Tabla de Contenido
1. Introducción
2. Búsqueda Preferente por lo mejor
• Búsqueda Avara
• Búsqueda A*
3. Heurísticas
4. Búsqueda Limitada por Capacidad
• Búsqueda A*PI
• Búsqueda A*SRM
• Bibliografía

3 /79
INTRODUCCION

4 /79
Métodos
• Búsqueda Preferente por lo Mejor
– Búsqueda Avara
– Búsqueda A*
• Búsqueda limitada por la capacidad de la memoria
– Búsqueda A* por profundización iterativa (A*PI)
– Búsqueda A*SRM (Acotada por memoria simplificada)
• Algoritmos de Mejoramiento Iterativo
– Búsqueda por ascenso de cima (Hill-Climbing)
– Endurecimiento simulado (Simulated Annealing)

5 /79
BUSQUEDA PREFERENTE POR LO
MEJOR

6 /79
Búsqueda preferente
por lo mejor
• El conocimiento en base al cual se apoya la
decisión del nodo que toca expandirse es
obtenido desde una función de evaluación.
• La función de evaluación produce un número
que sirve para representar lo deseable (o
indeseable) que sería la expansión de un nodo.

7 /79
Búsqueda preferente
por lo mejor
• Si los nodos se ordenan de tal manera que se
expande primero aquél con mejor evaluación,
entonces la estrategia es llamada búsqueda
preferente por lo mejor.

8 /79
Búsqueda preferente
por lo mejor
función BUSQUEDA-PREFERENTE-POR-LO-MEJOR (problema,
FUNCION-EVALUACION) responde con una secuencia de
solución
entradas: problema, un problema
Función-Eval, una función de evaluación
Función-lista-de-espera  una función que ordena los nodos
mediante FUNCIÓN-EVAL
responde con BUSQUEDA-GENERAL (Problema, Función-lista-
de-espera)

9 /79
Búsqueda preferente
por lo mejor
• Así como es existe una familia de algoritmos
BUSQUEDA-GENERAL, con distintas funciones
de ordenamiento, también existe una familia de
algoritmos BUSQUEDA-PREFERENTE-POR-
LO-MEJOR, que varían la función de
evaluación.

10 /79
Búsqueda preferente por lo mejor
• En el método de costo uniforme, se empleaba el costo
de ruta (g) para decidir qué ruta ampliar.
• g(n) es, entonces, el costo acumulado desde el nodo
inicio hasta el nodo en que nos encontramos, n.
• Esta medida no es una búsqueda directa dirigida a la
meta
• Si se quiere enfocar la búsqueda hacia la meta, en esa
medida debe figurar algún tipo de cálculo del costo de
ruta del estado actual (n) a la meta.

11 /79
BUSQUEDA AVARA
Greedy Search

12 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara (Greedy Search)
– Es una de las más sencillas estrategias en la BPPLM,
que consiste en reducir al mínimo el costo estimado
para lograr una meta.
– En otras palabras, el nodo cuyo estado se considere
más cercano a la meta en términos de costo de ruta
se expande primero.

13 /79
Búsqueda preferente
por lo mejor
• Búsqueda Avara (Greedy Search)
– Aunque casi siempre es posible calcular el costo
aproximado hasta la meta, es difícil hacerlo con
precisión.
– La función utilizada para dicho estimado del costo se
llama función heurística, simbolizada por h.
– h(n) = costo estimado de la ruta más barata que une
el estado del nodo n con un estado meta

14 /79
Búsqueda preferente
por lo mejor
• Búsqueda Avara (Greedy Search)
– h puede ser cualquier función. El único requisito es
que h(n) = 0 cuando n es una meta.
– Cuando los problemas son de determinación de rutas
en el mundo real (ejemplo, Rumania), una buena
función heurística es la distancia en línea recta a la
meta:
• hDLR (n) = distancia en línea recta entre n y la meta

15 /79
Búsqueda preferente DLR de
por lo mejor Bucarest a:
Arad: 366
Bucarest:
0
Neamt Craiova: 160
87
Dobreta:
Oradea Iasi 242
Eforie: 161
71 151 92 Fagaras:
Vaslui
75 Zerind Sibiu 99 Fagaras 178
142 Giurgiu: 77
ARAD 140 211 Hirsova: 151
118 80 Rimnicu Urziceni Iasi: 226
Timisoara Vilcea 85 Lugoj: 244
97 98
111 Pitesti Mehadia:
Lugoj 101 Hirsova 241
70 146 BUCHAREST
90 86 Neamt: 234
Mehadia Oradea: 380
75 138 Giurgiu Eforie Pitesti: 98
120 Craiova Rimnicu
Dobreta Vilcea: 193
Sibiu: 253
Timisoara:32
9 16 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara (Greedy Search)
– Para calcular los valores de hDLR se requieren las
coordenadas de las ciudades de Rumania.
– Esta función heurística es útil porque la carretera que
va de A a B tiende a dirigirse más o menos en la
dirección correcta.

17 /79
Ejercicio
• Utilizar el método de búsqueda avara para
solucionar el problema de Rumania. Mostrar el
desarrollo con árboles de búsqueda.

18 /79
Búsqueda preferente por lo mejor
DLR de
Bucarest a:
Arad: 366
Bucarest:
Neamt 0
87
Craiova: 160
Oradea Iasi Dobreta:
242
71 151 92 Eforie: 161
Vaslui
75 Zerind Sibiu 99 Fagaras Fagaras:
142 178
ARAD 140 211 Giurgiu: 77
118 80 Rimnicu Urziceni Hirsova: 151
Timisoara Vilcea 85 Iasi: 226
97 98
111 Pitesti Lugoj: 244
Lugoj 101 Hirsova Mehadia:
70 146 BUCHAREST
90 86 241
Mehadia Neamt: 234
75 138 Giurgiu Eforie Oradea: 380
120 Craiova Pitesti: 98
Dobreta Rimnicu
Vilcea: 193
Sibiu: 253
19 /79
Timisoara:32
Búsqueda preferente por lo mejor
• Búsqueda Avara

Arad
h=366

20 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329

21 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329
Arad
Fagaras Rimnicu
h=366
h=178 Oradea h=193
h=380

22 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329
Arad
Fagaras Rimnicu
h=366
h=178 Oradea h=193
h=380
Sibiu
h=253 Bucharest Es una solución, pero no es la óptima
23 /79
h=0
Búsqueda preferente por lo mejor
• Búsqueda Avara
– Esta búsqueda usualmente produce resultados
buenos
– Tienden a producir soluciones rápidamente, aunque
no siempre la solución encontrada es la óptima.
– Ejemplo, tratar de llegar de Iasi a Fagaras.

24 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Iasi
h=160

25 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Iasi
h=160

Neamt Vaslui
h=150 h=170

26 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Iasi
h=160

Neamt Vaslui
h=150 h=170

Iasi
h=160

27 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara

Iasi
h=160

Neamt Vaslui
h=150 h=170

Iasi
h=160

Neamt
h=150
28 /79
Búsqueda preferente por lo mejor
• Búsqueda Avara
– Se asemeja a la búsqueda preferente por profundidad, ya que
se “atora” al toparse con un callejón sin salida.
– Tiene sus mismas deficiencias: no es óptima, es incompleta,
puede recorrer una ruta infinita.
– Su complejidad es espacial es tan grande como su temporal:
O(bm), donde m es la profundidad máxima del espacio de
búsqueda. Una buena función heurística permite disminuir
notablemente la complejidad tanto de espacio como de tiempo.

29 /79
BUSQUEDA A*

30 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– La búsqueda avara reduce h(n), el costo hacia la
meta, pero no es óptima ni completa.
– La búsqueda de costo uniforme reduce g(n), el costo
de ruta, es óptima y completa, pero puede ser
ineficiente.
– Las dos funciones se podrían combinar mediante una
suma:
• f(n) = g(n) + h(n)

31 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– f(n) puede llamarse el costo estimado de la solución
más barata, pasando por n.
– Es posible demostrar que esta estrategia es completa
y óptima, dada una restricción de h.
– La restricción es escoger una función h que nunca
sobreestime el costo que implica alcanzar la meta.

32 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– A dicha función h se le llama heurística admisible.
– A la búsqueda preferente por lo mejor que usa f como
función de evaluación y una función h aceptable se le
conoce como búsqueda A*.

33 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– En el ejemplo de Rumania, la distancia en línea recta
es una heurística aceptable, ya que la ruta más corta
entre dos puntos es la línea recta (por lo tanto,
siempre será menor que la distancia real, nunca la
sobreestimará).

34 /79
Búsqueda preferente por lo mejor
• Búsqueda A*

Arad
f=0+366
f=366

35 /79
Búsqueda preferente por lo mejor

Búsqueda A*
Arad

Sibiu Zerind
f=140+253 f=75+374
Timisoara
f=393 f=449
f=118+329
f= 447

36 /79
Búsqueda preferente por lo mejor

Búsqueda A*
Arad

Sibiu
Zerind
f=140+253
f=75+374
f=393 Timisoara
f=449
f=118+329
f= 447
Arad
Fagaras Oradea Rimnicu
f=280+366
f=239+178 f=146+380 f=220+193
f=646
f=417 f=526 f=413
37 /79
Búsqueda preferente por lo mejor
• Búsqueda A*. (Comportamiento)
– Se puede observar que a lo largo de las rutas
originadas en la raíz, el costo f nunca
disminuye.
– En toda heurística donde esto ocurre, se dice
que muestra monotonicidad.

38 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– Si la heurística fuera no monotónica, debe usarse la
fórmula

f(n’) = max f(n),g(n’) + h(n’)

Donde n’ es el nodo actual y n es el padre de n’


– A esta fórmula se le llama ecuación de ruta máxima.

39 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– Si f no disminuye, es posible dibujar contornos en el
espacio de estados.

Neamt

Oradea Iasi
Zerind Vaslui
Sibiu Fagaras
ARAD
Rimnicu Urziceni
f ≤ 380 Timisoara Vilcea
Pitesti
Lugoj Hirsova
f ≤ 400 BUCHAREST
Mehadia
Giurgiu Eforie
f ≤ 420 Craiova
Dobreta
40 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– Conforme va avanzando, la búsqueda A* dibuja
bandas concéntricas, e incluyendo nodos.
– En la búsqueda de costo uniforme (A* con h = 0) las
bandas son circulares alrededor del estado inicial.
– Si la heurística es buena, las bandas tienden al
estado meta y se concentran apretadamente sobre la
ruta óptima.

41 /79
Búsqueda preferente por lo mejor
• Búsqueda A*
– Este método es óptimamente eficiente para
cualquier función heurística.
– El problema con el A* es que, para la mayoría de los
problemas, la cantidad de nodos en el contorno de la
meta sigue siendo exponencial.
– El principal problema es el espacio, ya que
usualmente se agota la memoria primero (guarda
todos los nodos generados).

42 /79
HEURISTICAS

43 /79
Funciones Heurísticas
• Problema de las ocho placas

44 /79
Funciones Heurísticas
• Problema de las ocho placas
– Una solución típica tiene 20 pasos (depende del
estado inicial).
– El factor de ramificación es aproximadamente 3
– Una búsqueda exhaustiva de profundidad 20
examinaría 320 estados.
– Aún si se evitan estados repetidos, habría 362,880
arreglos diferentes.

45 /79
Funciones Heurísticas
• Problema de las ocho placas
– La función heurística no debe sobreestimar la
cantidad de pasos necesarios para la meta.
– Ejemplos:
• h1 = cantidad de placas en lugar incorrecto
• h2 = suma de las distancias (horizontales y verticales) que
separan a las placas de sus posiciones meta (distancia
Manhattan).

46 /79
Funciones Heurísticas
• Problema de las ocho placas: Heurística de la
cantidad de placas en lugar incorrecto.

h1 = 8 h1 = 0
47 /79
Funciones Heurísticas
• Problema de las ocho placas: Heurística de la
distancia Manhattan

h2 = 15 h2 = 0
48 /79
Funciones Heurísticas
• Efectos de la exactitud heurística en el desempeño
– Una forma de medir la calidad de una heurística es mediante el
factor de ramificación efectiva b*.
– Si la cantidad de nodos expandidos por A* para un problema
determinado es N, y la profundidad de la solución es d,
entonces b* es el factor de ramificación que deberá tener un
árbol uniforme de profundidad d para que pueda contener N
nodos, por lo que
N = 1 + b* + (b*)2 + ... + (b*)d

49 /79
Funciones Heurísticas
• Efectos de la Exactitud Heurística
– Un árbol como este tiene un factor de ramificación
efectiva de 2

N=7 b* = 2
d=2 1 + 2+ 22 = 7 50 /79
Funciones Heurísticas
• Efectos de la Exactitud Heurística
– Porque equivale a un árbol uniforme como este:

N=7 b* = 2
d=2 1 + 2+ 22 = 7 51 /79
Funciones Heurísticas
• Efectos de la exactitud heurística en el
desempeño
– Por ejemplo, si A* encuentra una solución en la
profundidad cinco, y utilizando 52 nodos, el factor de
ramificación efectiva es de 1.91.
– Por lo general, el b* correspondiente a una heurística
determinada permanece constante a través de un
amplia gama de problemas.
– En una heurística bien diseñada, b* se aproxima a 1.

52 /79
Funciones Heurísticas
Costo de Búsqueda Factor de Ramificación Efectivo
d BPPI A*(h1) A*(h2) BPPI A*(h1) A*(h2)
2 10 6 6 2.45 1.79 1.79
4 112 13 12 2.87 1.48 1.45
6 680 20 18 2.73 1.34 1.30
8 6,384 39 25 2.80 1.33 1.24
10 47,127 93 39 2.79 1.38 1.22
12 364,404 227 73 2.78 1.42 1.24
14 3,473,941 539 113 2.83 1.44 1.23
16 ----- 1,301 211 ----- 1.45 1.25
18 ----- 3,056 363 ----- 1.46 1.26
20 ----- 7,276 676 ----- 1.47 1.27
22 ----- 18,094 1,219 ----- 1.48 1.28
24 ----- 39,135 1,641 ----- 1.48 1.26

53 /79
Funciones Heurísticas
• Efectos de la Exactitud Heurística
– Comparando los factores de ramificación efectiva, h2
es mejor que h1.
– Si para todo nodo n, h2(n) ≥ h1(n), se dice que h2
domina a h1.
– En general, siempre conviene más emplear una
función heurística con valores más altos, siempre
cuando no dé lugar a una sobreestimación.

54 /79
Funciones Heurísticas
• Invención de Heurísticas
– A los problemas en que se imponen menos
restricciones a los operadores se les llama
problemas relajados.
– Es frecuente que el costo de la solución de un
problema relajado constituya una buena heurística
del problema general.

55 /79
Funciones Heurísticas
• Invención de Heurísticas
– Operador del Problema de las ocho placas (normal)
• “Una placa puede pasar del cuadro A al B si A está junto a B y B
está vacío”
– Operadores relajados para el problema de las ocho placas
• “Una placa se puede mover del cuadro A al B si A está junto a B”
• “Una placa se puede mover del cuadro A al B si B está vacío”
• “Una placa se puede mover del cuadro A al B”

56 /79
Funciones Heurísticas
• Invención de Heurísticas
– Si para un problema determinado existe un grupo de
heurísticas aceptables, h1,..., hm, y ninguna domina a
las demás, se puede usar:
• h(n) = max(h1(n), ..., hm(n)).
– Otra forma de inventar heurísticas es mediante
información estadística. Se pueden hacer búsquedas
sobre una gran cantidad de problemas de
adiestramiento y se obtienen las estadísticas
correspondientes.

57 /79
BUSQUEDA LIMITADA POR
CAPACIDAD

58 /79
Búsqueda limitada por la capacidad de
la memoria
• La capacidad de memoria es uno de los
principales obstáculos a los que se enfrentan los
algoritmos anteriores.
• Algoritmos de BLCM
– A* por profundización iterativa (A*PI)
– A* acotado por memoria simplificada (A*SRM)

59 /79
BUSQUEDA A*PI

60 /79
Búsqueda limitada por la capacidad de
la memoria
• A*PI
– Es algo similar a lo que se hizo con la búsqueda preferente por
profundidad, al hacerla iterativamente (profundización iterativa),
sólo que ahora se hace con la búsqueda A*.
– En esta algoritmo cada iteración es una búsqueda preferente
por profundidad, exactamente como en la PI, pero ahora se usa
un límite de costo f en vez de un límite de profundidad.
– Así, en cada iteración se expanden los nodos que están dentro
del contorno del costo f actual.

61 /79
Búsqueda limitada por la capacidad de
la memoria
• A*PI
– Una vez concluida la búsqueda dentro de un contorno
determinado, se procede a efectuar una nueva
iteración usando un nuevo costo f para el contorno
siguiente.
– A*PI es un método completo y óptimo, con las
ventajas y desventajas del A*
– Como es preferente por profundidad, sólo necesita un
espacio proporcional con la ruta más larga que
explore.

62 /79
Búsqueda limitada por la capacidad de
la memoria
• A*PI
– Si δ es el mínimo costo de operador y f* es el costo
de la solución óptima, en el peor de los casos se
necesitan bf* / δ nodos de almacenamiento.
– En la mayoría de los casos, bd es un estimado
bastante bueno de la capacidad de memoria
necesaria.

63 /79
Búsqueda limitada por la capacidad de
la memoria
• A*PI
– (ver algoritmo en el libro de texto)
– Tiene desventajas en dominios complejos.

64 /79
BUSQUEDA A*SRM

65 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)
– A*PI utiliza muy poca memoria
– Entre iteraciones, sólo guarda un número: el límite
actual del costo f.
– Como no puede recordar su historia, puede repetirla.
– El método A*SRM emplea más memoria que el A*PI,
para mejorar la eficiencia de la búsqueda.

66 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)
– Hace uso de toda la memoria de la que pueda disponer
– En la medida que se lo facilite la memoria, evitará estados
repetidos
– Es completo, si la memoria es suficiente para guardar la ruta de
solución mas cercana
– Es óptimo, si dispone de suficiente memoria para guardar la ruta
de solución óptima más cercana.
– Si se dispone de suficiente memoria para todo el árbol de
búsqueda, éste resultará óptimamente eficiente.

67 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)
– Si hay que generar un sucesor, pero ya no hay memoria, se
requiere espacio en la lista de espera
– Es necesario excluir un nodo de la lista de espera. A estos
nodos se les llama nodos olvidados, con un elevado f.
– Se conserva la información de los nodos ancestros sobre la
calidad de la mejor ruta en el subárbol olvidado.
– Así sólo se tendrá que regenerar el subárbol si las demás rutas
ofrecen peores perspectivas que la ruta olvidada.

68 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

69 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

70 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

En cada una de las etapas se añade


un sucesor nodo de menor costo f
más profundo cuyos sucesores no
estén actualmente en el árbol. El hijo
izquierdo B se añade a la raíz A.

71 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

Ahora, f(A) es todavía 12, por lo que


se añade el hijo que está a la
derecha, G (f = 13). Ahora que ya se
vieron todos los hijos de A, es
posible actualizar su costo f al
mínimo de sus hijos, es decir, 13. La
memoria ya se llenó.

72 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

G se escoge para efectuar una expansión, pero primero


hay que excluir un nodo para hacer espacio. Se excluye
la hoja de mayor costo f más próxima, es decir, B.
Ahora notaremos que el mejor descendiente olvidado
de A tiene f =15, como se muestra entre paréntesis.

Se procede a añadir H, cuya f(H) = 18.


Desafortunadamente, H no es un nodo meta, y la ruta a
H consume toda la memoria disponible (solo tenemos
espacio para tres nodos en memoria). Es decir, es
imposible encontrar una solución a través de H, por lo
que se define que f(H) = ∞. (si quisiéramos seguir,
tendríamos que olvidar al nodo inicial, y no es posible).

73 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

Se expande de nuevo G, se excluye H, se incluye


I, con f(I) = 24. (esto debido a que I sí es un nodo
meta, en caso contrario se le asignaría valor ∞).
Se han visto ya los dos sucesores de G, con
valores de ∞ y 24, por lo que f(G) se convierte en
24. f(A) se convierte en 15, el mínimo de 15
(valor del sucesor olvidado) y 24.

Hay que notar que a pesar de que I es un nodo


meta, quizás no sea la mejor solución debido a
que el costo de f(A) es solamente 15

74 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

Otra vez, A es el nodo más


prometedor, por lo que se genera por
segunda vez B. Nos hemos dado
cuenta que, después de todo, la ruta a
través de G no resultó ser tan buena.

75 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

C, el primer sucesor de B, es un
nodo no meta que está a máxima
profundidad, por lo que f(C) = ∞.

76 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)

Para examinar al segundo sucesor, D,


primero hay que excluir C. Entonces
f(D)=20, valor que heredan tanto B como A.
Ahora el nodo de menor costo f más
profundo es D, por lo que se le escoge.
Puesto que se trata de un nodo meta,
concluye la búsqueda.

77 /79
Búsqueda limitada por la capacidad de
la memoria
• A*SRM (A* Acotado por Memoria Simplificada)
– (Ver el algoritmo en el libro de texto)
– Las cosas se complican aun más so hay que incluir la
verificación de nodos repetidos . A*SRM es el algoritmo más
complicado visto hasta el momento.
– Cuando cuenta con suficiente memoria, A*SRM resuelve
probelmas mucho más difíciles que A* sin excesos
considerables en la generación de nodos adicionales.

78 /79
Bibliografía
• AIMA. Capítulo 4, primera edición.
• AIMA. Chapter 4, second edition.

79 /79
PREGUNTAS

80 /79

Вам также может понравиться