Tarea Sobre Beam Search Sesión del 11/06/2004

Anuncio
UNIVERSIDAD DE LA SALLE BAJÍO
ALGORITMOS DE BÚSQUEDA BEAM SEARCH
luisgsl@yahoo.com
MISEC
Tercer cuatrimestre
Tecnologías Aplicadas de Información
Mtra. M.I. convazquezl@yahoo.com
León, Gto. a 11 de junio de 2004.
Índice
Solución de problemas con búsquedas
Tipos de búsqueda
Algoritmo de búsqueda Beam search
Análisis de los algoritmos
Fuente de Información
2
3
4
6
7
1
Solución de problemas con búsquedas






La formulación de metas es el primer paso en la solución de problemas. Se
considera que las metas son estados del mundo.
Las operaciones o acciones son las causantes de la transición entre un
estado y otro.
La formulación de un problema consiste en decidir que acciones y estados
son válidos.
El espacio de estados es el conjunto de todos los estados que pueden
alcanzarse a partir del estado inicial mediante cualquier secuencia de
acciones.
La solución del problema consiste en encontrar una secuencia de acciones
posibles que conduzcan a la meta.
Al proceso de hallar tal secuencia se conoce como búsqueda.
Representación:

Un espacio de estados se puede representar con una gráfica (ej. árbol)
donde los nodos son estados de un problema o soluciones parciales de
éste y los arcos son acciones u operaciones que se aplican a los nodos
para pasar de un estado a otro.

En una gráfica con estado inicial y estados finales (o metas), el proceso de
búsqueda consiste en encontrar un camino en la gráfica que vaya del
estado inicial a un estado final.
Ejemplo: El agente viajero.
Estado
Meta o estado final = G
inicial=S
Espacio de estados representado por una gráfica
Espacio de estados representado por un árbol
2
Tipos de búsqueda:



Sin información (ciega):
o depth-first (por profundidad),
o breath-first (a lo ancho)
Con información (heurística):
o hill-climbing
o beam search
o best-first search
Búsquedas óptimas (El mejor camino):
o british museum
o branch and bound
o programación dinámica
o A*
Búsquedas sin información
Algoritmo de búsqueda por profundidad (depth-first):
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces termina
Sino elimina el primero de la lista y agrega sus hijos al principio de la
lista
Álgoritmo de búsqueda a lo ancho (breath-first):
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces termina
Sino elimina el primero de la lista y agrega sus hijos al final de la lista
Análisis de los algoritmos:
n=
número
de
niveles
d=
número
de
niveles
hasta
la
meta
b= Número de operaciones posibles en un estado (hijos). Factor de arborecencia.
Por profundidad:



Mejor caso = d
Peor caso ~ bn
Es mejor en árboles balanceados
A lo ancho:
3



Mejor caso ~ bd-1
Peor caso ~ bd
Es mejor en árboles desbalanceados y con mucha profundidad
Búsquedas
(heurísticas)
con
información
Algoritmo de búsqueda Hill Climbing:
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces termina
Sino elimina el primero de la lista y agrega sus hijos al final de la lista
2. Ordena los elementos, selecciona el mejor y elimina el resto
(heurística)
Desventajas: no es completo, no funciona cuando existen máximos locales, pues
no puede llegar a la meta.
Algoritmo de búsqueda Best-first:
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces termina
Sino elimina el primero de la lista y agrega sus hijos al final de la lista
2. Ordena los elementos, pero no hace eliminaciones (heurística)
Ventaja: es completo, encuentra siempre la solución.
Algoritmo de búsqueda Beam search:
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces termina
Sino elimina el primero de la lista y agrega sus hijos al final de la lista
2. Ordena los elementos, selecciona los w mejores y elimina el resto
(heurística)
Desventaja: no es completo, no garantiza encontrar la solución.
Propiedades de los algoritmos
La estrategia de control es sistemática si:
1. No deja un solo camino sin explorar (completo)
2. No explora un camino más de una vez (eficiencia)
4
Un algoritmo búsqueda es:
1. Completo: si encuentra una solución cuando esta existe.
2. Admisible: si garantiza una solución óptima cuando ésta existe.
3. Dominante. Un algoritmo A1 domina a otro algoritmo A2 si cada nodo
expandido de A2 puede ser expandido por A1.
4. Óptimo: Si domina a todos los algoritmos que hacen la misma tarea.
Búsquedas óptimas
Algoritmo British museum
Hace una búsqueda exhaustiva para encontrar todas las soluciones (con depthfirst o breath-first), compara las soluciones y selecciona la mejor.
Desventaja: El espacio de búsqueda puede crecer considerablemente.
Algoritmo Branch and Bound
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces ve al paso 3
Sino elimina el primero de la lista y agrega sus hijos sumando el
costo acumulado del padre
2. Ordena los elementos de acuerdo al costo (heurística)
3. Expande todos los nodos con costo menor que el nodo meta.
Ventaja: La primer trayectoria encontrada es la solución óptima.
Una mejora a Branch and bound es utilizar programación dinámica. Esta técnica
considera que se puede llegar a un mismo nodo por diferentes rutas, su heurística
es ordenar los elementos, seleccionar el de menos costo y eliminar los elementos
repetidos (con mayor costo).
Algoritmo A* (A estrella)
Es una clase de algoritmo que utiliza programación dinámica y una función
heurística (h), que ayuda a que la búsqueda sea más eficiente. Ejemplo de una
heurística: h(n)= costo subestimado del nodo n hasta la meta.
La restricción consiste en escoger una heurística admisible (que nunca
sobreestima el costo de llegar a la meta).
El costo total estimado, f(n), es la suma del costo acumulado, g(n), más la función
heurística, h(n):
f(n) = g(n) + h(n)
Algoritmo A*
1. Crear una lista con el nodo raíz
2. Hasta que la lista esté vacía o se alcance la meta:
1. Si el primer elemento es la meta entonces ve al paso 3
Sino elimina el primero de la lista y agrega sus hijos sumando g + h
(heurística 1)
5
2. Ordena los elementos de acuerdo al costo y elimina los repetidos de
costo mayor (heurística 2)
3. Expande todos los nodos con costo menor que el nodo meta.
Análisis de los algoritmos:




British museum es mejor si el espacio de estados es pequeño.
Branch and Bound con programación dinámica es mejor si hay muchas
rutas para llegar a la meta.
A* se puede usar sólo cuando es posible estimar h(n).
En los demás casos es mejor Branch and Bound.
6
Fuente de Información
http://leibniz.iimas.unam.mx/~euraga/ia/busqueda.html
http://lorien.die.upm.es/~juancho/pfcs/aga/dos.txt
7
Descargar