Documente Academic
Documente Profesional
Documente Cultură
Contenido
1 Caractersticas Principales
2 Bsqueda Heurstica
3 Cmo funciona A*?
4 Pseudocdigo
o 4.1 Tratar Punto
o 4.2 Implementacin
o 4.3 Tratar Sucesor
5 Observaciones
o 5.1 Funcin Abiertos
o 5.2 Especificacin del coste real g*
o 5.3 Eleccin del coste estimado h*
6 Vase tambin
7 Fuentes
8 Referencias
Caractersticas Principales
Como todo algoritmo de bsqueda en anchura, A* es un algoritmo completo: en
caso de existir una solucin, siempre dar con ella.
Si para todo nodo n del grafo se cumple g(n) = 0, nos encontramos ante una
bsqueda voraz. Si para todo nodo n del grafo se cumple h(n) = 0, A* pasa a ser
una bsqueda de coste uniforme no informada.
Para garantizar la optimalidad del algoritmo, la funcin h(n) debe ser admisible,
o sea que no sobrestime el coste real de alcanzar el nodo objetivo.
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. Para solucionar este problema, se han propuesto diversas variaciones
de este algoritmo, como pueden ser RTA*, IDA* o SMA*.
Bsqueda Heurstica
La familia de los algoritmos informados, 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.
f (n) = g(n) + h(n): Coste real del plan (camino) de mnimo coste que pasa por n.
Estrategia de A*
Entre las hojas del rbol de bsqueda, elegir el nodo de valor f* mnimo.
Interpretacin fuerte de A*
Esquematizacin de A*
Pseudocdigo
Tratar Punto
// 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'(.)
Implementacin
ABIERTOS := [INICIAL] //inicializacin
CERRADOS := []
f'(INICIAL) := h'(INICIAL)
repetir
si ABIERTOS = [] entonces FALLO
si no // quedan nodos
extraer MEJORNODO de ABIERTOS con f' mnima
// cola de prioridad
mover MEJORNODO de ABIERTOS a CERRADOS
si MEJORNODO contiene estado_objetivo entonces
SOLUCION_ENCONTRADA := TRUE
si no
generar SUCESORES de MEJORNODO
para cada SUCESOR hacer TRATAR_SUCESOR
hasta SOLUCION_ENCONTRADA o FALLO
Tratar Sucesor
SUCESOR.ANTERIOR := VIEJO
// coste del camino hasta SUCESOR
Observaciones
Funcin Abiertos
Precisamos que la heurstica o coste estimado que tomaremos desde un nodo actual
hasta el nodo meta y para todo nodo en el rbol de exploracin de camino a la solucin
ser en funcin de cuanto de recto se presenten los nodos; es decir, el coste estimado h*
es la distancia en lnea recta. En cada nodo hijo, el coste estimado es su distancia en
lnea recta con el nodo meta. Tomando como referencia que cada estacin tiene un
punto en el mapa, unas coordenadas en la imagen, y aplicando una escala ms o menos
aproximada, se logra la obtencin de coordenadas reales (valores discretos, relativos),
escogiendo las coordenadas de una cualquiera y las de la destino, y haciendo uso de la
distancia eucldea, distancia ordinaria entre dos puntos de un espacio eucldeo que se
deduce a partir del teorema de Pitgoras.