Universidad Tecnolgica de Panam
Facultad de Ingeniera en Sistemas Computacionales
Presentado por:
Aarn Santamara 4-763-1256
Trabajo de
Inteligia Artificial
Tema
Algoritmo de busqueda A*
Profesor
Cristian Pinzon
Ao
2017
Tabla de contenido
Introduccin ....................................................................................................................................... 3
Algoritmo a* ....................................................................................................................................... 4
Caractersticas .................................................................................................................................. 6
Funcionamiento ............................................................................................................................ 6
componentes ..................................................................................................................................... 7
Pseudocdigo ................................................................................................................................... 8
Ejemplo .............................................................................................................................................. 9
Solucin ......................................................................................................................................... 9
Conclusin ....................................................................................................................................... 11
Bibliografa ....................................................................................................................................... 12
Introduccin
Un algoritmo de bsqueda es aquel que est diseado para localizar un
elemento con ciertas propiedades dentro de una estructura de datos; por
ejemplo, ubicar el registro correspondiente a cierta persona en una base de
datos, o el mejor movimiento en una partida de ajedrez.
Algoritmo a*
Es un algoritmo de bsqueda que puede ser empleado para el clculo de caminos mnimos en una
red. Se va a tratar de un algoritmo heurstico, ya que una de sus principales caractersticas es que
har uso de una funcin de evaluacin heurstica, mediante la cual etiquetar los diferentes nodos
de la red y que servir para determinar la probabilidad de dichos nodos de pertenecer al camino
ptimo.
Esta funcin de evaluacin que etiquetar los nodos de la red estar compuesta a su vez por otras
dos funciones. Una de ellas indicar la distancia actual desde el nodo origen hasta el nodo a
etiquetar, y la otra expresar la distancia estimada desde este nodo a etiquetar hasta el nodo destino
hasta el que se pretende encontrar un camino mnimo. Es decir, si se pretende encontrar el camino
ms corto desde el nodo origen s, hasta el nodo destino t, un nodo intermedio de la red n tendra la
siguiente funcin de evaluacin f(n) como etiqueta:
f(n)= g(n) + h(n)
Donde:
-g(n) indica la distancia del camino desde el nodo origen s al n.
-h(n) expresa la distancia estimada desde el nodo n hasta el nodo destino t.
h(n) se trata de una funcin heurstica, expresa la idea de cun lejos an se est de alcanzar el nodo
destino, y de su correcta eleccin depender en gran medida el rendimiento del algoritmo A* al
aplicarlo en una red. As, en el caso de que esta funcin heurstica nunca sobreestime el valor de la
distancia real entre el nodo y el destino, se dice que es admisible, y est garantizada la solucin
ptima. Por el contario, en el caso en que la funcin no sea admisible no se puede garantizar el
hallazgo de la solucin ptima para el problema del camino ms corto.
A la funcin de evaluacin f que caracteriza a un nodo y que sirve para etiquetarlo, tambin se la
conoce como mrito de ese nodo, y expresa la probabilidad del nodo de estar en el camino ms
corto. Cuanto menor sea el mrito de un nodo, es decir, cuanto menor sea el valor de su funcin de
evaluacin, ms probable ser que el camino ms corto atraviese ese nodo. En este mrito de los
diferentes todos se basar el funcionamiento del algoritmo A*. El algoritmo ir explorando nodos de
la red y sus sucesores (aquellos nodos con lo que les une algn enlace) basndose en su valor de
mrito. Es decir, mantendr una lista ordenada por valor creciente de mrito de los nodos que pueden
ser explorados, y de ah seleccionar el de menor valor, que ser el primero de la lista. El algoritmo
empezar analizando el nodo que se toma como origen para el problema del camino ms corto.
Calcular su mrito, y a continuacin pasar a explorar sus nodos sucesores, es decir, los nodos
con los que est unido por un enlace este nodo fuente. Para estos nodos se calcular su mrito, y
se seleccionar aqul de ellos que presente un menor valor, que ser el que se someter a anlisis.
Ahora el algoritmo continuar su ejecucin explorando los nodos vecinos de ese nodo con merito
menor, y as sucesivamente, hasta llegar al caso donde el nodo a analizar sea el nodo destino del
problema, momento en que el algoritmo termina y ya se dispone de la solucin. Para llevar a cabo
este funcionamiento ser necesario un registro donde el algoritmo ira guardando el conjunto de
nodos que han sido explorados con sus valores correspondientes de mrito, y de donde se irn
eliminando aquellos que sean seleccionados para ser analizados.
Caractersticas
Como todo algoritmo de bsqueda en anchura, A* es un algoritmo completo: en
caso de existir una solucin, siempre dar con ella.
La complejidad computacional est relacionada con la calidad de la heurstica que
se utilice en el problema. En el caso peor, con una heurstica de psima calidad,
la complejidad ser exponencial, mientras que en el caso mejor, con una buena
h'(n), el algoritmo se ejecutar en tiempo lineal.
El espacio requerido por A* para ser ejecutado es su mayor problema. Dado que
tiene que almacenar todos los posibles siguientes nodos de cada estado, la
cantidad de memoria que requerir ser exponencial con respecto al tamao del
problema.
El rendimiento de los algoritmos de bsqueda heurstica depende de la calidad de
la funcin heurstica.
Funcionamiento
1.- Establecer el nodo s como origen. Hacer f(s)=0, y f(i)= para todos los nodos i diferentes del nodo
s. Iniciar el conjunto Q vaco.
2.- Calcular el valor de f(s) y mover el nodo s al conjunto Q .
3.- Seleccionar el nodo i del conjunto Q que presente menor valor de la funcin f(i) y eliminarlo del
conjunto Q.
4.- Analizar los nodos vecinos j de i. Para cada enlace (i, j) con coste cij hacer:
4.1.-Calcular: f(j)=g(i)+cij +h(j)
4.2.-Si f(j)<f(j),
4.2.1.-Actualizar la etiqueta de j y su nuevo valor ser: f(j)= g(i)+cij +h(i)
4.2.2.-Insertar el nodo j en Q
4.3.-Si f(j)f(j)
4.3.1.-Dejar la etiqueta de j como est, con su valor f(j)
5.- Si Q est vaco el algoritmo se termina. Si no est vaco, volver al paso 3.
componentes
Funcin heurstica de A*
f (n) = g(n) + h(n): Coste real del plan (camino) de mnimo coste que pasa por n.
f* (n) = g(n) + h*(n): estimacin de f.
Estrategia de A*
Entre las hojas del rbol de bsqueda, elegir el nodo de valor f* mnimo.
Interpretacin fuerte de A*
Una heurstica suele facilitar la resolucin de un problema, pero no garantiza que
se resuelva.
Una heurstica es una regla de tres para un problema.
Bsqueda: Optimalidad o incluso completitud no garantizados.
Esquematizacin de A*
Se basa en la bsqueda general.
Almacenar el valor g de cada nodo expandido.
Mantener la estructura abierta ordenada por valores crecientes de f*.
Insertar nuevos nodos en la estructura abierta segn sus valores de f*.
Pseudocdigo
// coste del camino hasta .
caso . = . perteneciente a ()
si g(.) < g(.) entonces // (-----)
// nos quedamos con el camino de menor coste
.:= MEJORNODO
actualizar g(.) y f'(.)
propagar g a . de .
eliminar .
aadir . a ._MEJORNODO
caso . = . perteneciente a )-----(
si g(.) < g(.) entonces
// nos quedamos con el camino de menor coste
.:= MEJORNODO
actualizar g(.) y f'(.)
eliminar .
aadir . a ._MEJORNODO
caso . no estaba en ).( ni (.)
aadir . a ).(
aadir . a ._MEJORNODO
f'(.) := g(.) + h'(.)
Ejemplo
Problema del laberinto:
En el siguiente laberinto, se pude pasar desde una casilla aotra de las posibles
adyacentes (arriba, abajo, izquierda, derecha), salvo si existe una barrera entre
ellas.
Objetivo: ir de I a F
Solucin
La solucin encontrada es: I-W-K-M-F
-OBTIMA (heurstica admisible)
-Nodos analizados 8
-Aunque se hayan analizados ms nodos(se ha explorado parcialmente un
camino equivocado), pero la solucin est asegurada.
-Se nota que se generan dos nodos distintos de con el mismo estado K pero con
distintos caminos.
Conclusin
La bsqueda A* pertenece a la familia de los algoritmos informados, los cuales
frente a los desinformados o por fuerza bruta, son aquellos que poseen una
informacin extra sobre la estructura a objeto de estudio, la cual explotan para
alcanzar ms rpidamente su objetivo final, con un camino de costo mnimo desde
el punto inicial al final.
Adems de que la formulacin de algoritmos fue uno de los ms grandes
adelantos dentro de la ciencia matemtica ya que a partir de ellos se pudieron
resolver infinidad de problemas.
Bibliografa
Mendez, J. (2013). V Latin American Congress on Biomedical Engineering
CLAIB 2011 May 16-21, 2011, Habana, Cuba (1st ed.). Berlin: Springer.
N. Nilsson J., Inteligencia artificial, 2013.