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

I.1.

El algoritmo A*

Introduccin al algoritmo a* (star o asterisco)


El algoritmo A* (conocido tambin como A estrella o asterisco) es un algoritmo de
bsqueda que encuentra la ruta de menor coste entre dos puntos siempre y cuando se
cumplan una serie de condiciones. Est clasificado dentro de los algoritmos de
bsqueda en grafos ya que tiene la necesidad de dar a los mecanismos robticos,
vehiculares o virtuales un sistema de navegacin autnomo.
Es ampliamente utilizado en las ciencias de la computacin para encontrar rutas y que
tan transitable es una grfica, es decir, se refiere al problema de visitar todos los nodos
en una grfica dada de forma particular , esto no es ms que el proceso de trazado de la
ruta ms eficiente entre unos puntos llamados nodos. Este algoritmo goza de una
aceptable y continua implementacin gracias a su desempeo y precisin. Fue descrito
por primera vez en 1968 como una extensin del algoritmo de Dijkstra (1959), por Peter
Hart, Nils Nilsson y Bertran Raphael, que expusieron que el A* lograba un mejor
desempeo con respecto al tiempo usando heursticas.

I.1.1

Orgenes del algoritmo A*

En 1964 Nils Nilsson invent una heurstica basada en aproximaciones para incrementar
la velocidad del algoritmo de Dijkstra. Este algoritmo fue llamado inicialmente como
A1.
En 1967 Bertran Raphael hizo mejoras dramticas sobre este algoritmo pero fall en
demostrar su optimalizad. l llam a este algoritmo como A2. Hart introdujo un
argumento que el A2 era ptimo usando una heurstica consistente haciendo unos
cambios menores. Su comprobacin del algoritmo tambin demostr que el A2 era el
mejor algoritmo dadas algunas condiciones. As Hart llam a este nuevo algoritmo con
la sintaxis Kleene star (debido a que representa una operacin con solamente un
operando [5, 6]) por ser un algoritmo que empieza con la letra A e incluye todas las
versiones de nmeros posibles o A*. El algoritmo A*, (ledo A estrella) es un algoritmo
de bsqueda en grafos. Fue presentado por Peter E. Hart y Nils J. Nilsson (1968), y
Bertram Raphael (1968), el algoritmo encuentra, siempre y cuando se cumplan unas

determinadas condiciones, el camino de menor coste entre una condicin inicial y una
condicin meta.
El algoritmo A* es usualmente utilizado en los problemas para encontrar la mejor ruta o
camino, lo que realiza el algoritmo es construir todas las rutas desde un punto inicial
hasta encontrar alguna que llegue al nodo final o meta. De ste modo solamente
construye aquellas rutas que son candidatas a formar una solucin o camino desde el
inicio hasta el nodo final. Para poder determinar que rutas son las que tienen mayor
probabilidad de llegar al nodo meta, el algoritmo utiliza una heurstica basada en la
distancia de cualquier punto dado haca la meta.
Donde se diferencia el algoritmo A* de otros algoritmos avaros de best-first search es
el hecho de que va tomando en cuenta la distancia que ya ha recorrido hasta el
momento, haciendo de este modo una respuesta mucho ms completa y ptima.
Este algoritmo en particular es uno de los ms adecuados para este proyecto de
investigacin ya que segn los creadores del mismo es un algoritmo que encuentra el
camino de menor coste de un recorrido A aun recorrido B. Aplicando dicho algoritmo a
este proyecto de investigacin pretendemos obtener un buen resultado en cuanto a la
optimizacin de rutas de transportes.

I.1.1

Descripcin del algoritmo A*

Es un algoritmo que se encarga de encontrar la ruta que representa un menor costo entre
un punto A y otro B. Es una tcnica de bsqueda para grafos que utiliza una funcin
heurstica (ya que trata de mtodos exploratorios durante la resolucin del problema en
el cual la solucin se descubre por la evaluacin del progreso logrado en la bsqueda de
un resultado final denotada f (x), la cual es una aproximacin a f(x) que proporciona la
verdadera evaluacin de un nodo para determinar el orden en que se realiza la visita a
los otros nodos del rbol. La funcin de evaluacin es el resultado de la suma de otras
dos funciones, una que indica el coste del camino que se ha seguido hasta un cierto
nodo la cual se representa como g(x) y otra que nos da una estimacin de la distancia
del punto o nodo en que nos encontramos hasta la meta que est representada como
h(x). Entonces la funcin de evaluacin es el resultado de la suma de h(x) y g(x).

Entonces cada una de ellas se representa de la siguiente manera:

Donde:
costo: representa el valor explcito de movernos de nuestro punto actual al siguiente en
alguna direccin dada, si no se especifica se toma como unitario ya que pertenece a una
distribucin uniforme.
abs: representa el valor absoluto de la operacin dentro del parntesis.
nodox, nodoy: son las coordenadas (x, y) del nodo en el que nos encontramos
actualmente.
objetivox , objetivoy : representa las coordenadas de posicin de nuestra meta u
objetivo al cual deseamos llegar.
Cuando comenzamos a analizar el problema nuestro nodo origen tiene un valor inicial 0
(cero) tanto en h como en g.
Posteriormente g(x) se representa de la siguiente manera:

Donde:
: representa un valor entre 0 y 1 dado por las circunstancias del problema a resolver.
padreg : es el valor obtenido de la ecuacin g(x) del anterior nodo padre. Cuando
iniciamos los clculos por primera vez, este valor es 0 para el nodo origen.
En esta ecuacin debemos prestar atencin especial conforme vayamos avanzado en el
pathfinding ya que debemos sumar al resultado obtenido en la ecuacin anterior el
mismo valor g del padre anterior de nueva forma, es decir, tendramos algo as:

De esta forma podemos empezar a realizar los clculos para cada uno de los nodos que
se vayan analizando. Este algoritmo consiste entonces en atravesar una grfica (de
forma definida normalmente) siguiendo una ruta con el menor costo conocido
manteniendo una cola sorteada de prioridades con segmentos de rutas alternas a lo largo
del camino para que si en un momento dado la ruta que se est siguiendo arroja un valor
(costo) superior en comparacin con otro segmento de ruta encontrado, esta abandona
esa ruta actual de alto coste y en vez de ella toma la que le brinda un camino ms
barato. De esta forma el proceso sigue hasta alcanzar la meta u objetivo.

Empezando en un nodo inicial dado, el algoritmo expande el nodo con el menor valor
de f(x). Este algoritmo mantiene un conjunto de soluciones parciales almacenadas en
una cola de prioridad. El proceso continua hasta que una meta tiene un valor f(x)
menor que cualquier otro nodo en la cola o hasta que el rbol ha sido recorrido
completamente. Como aspecto positivo podemos considerar que ningn otro algoritmo
ptimo nos garantiza expandir menos nodos que A*, pero ste requiere un alto consumo
de memoria

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