No es que sea más lento, en muchas circunstancias es más rápido sobre todo para nodos lejanos, aunque en otras es más lento. Por eso digo que no me compensa el esfuerzo si luego no es totalmente efectivo y el principal problema que veo es que no siempre el coste está asociado a la distancia.
Y ya digo que es para cientos de nodos, si es para muchos miles o millones, si que sería una locura no usar ningún tipo de heuristica.
Por ejemplo, otro "fallo" que he detectado en el A* (o que quizás es mío), es que no siempre encuentra el mejor camino si supuestamente la búsqueda se finaliza una vez que se ha encontrado el destino, intentaré poner un ejemplo.
->
--(1)
---------(2)
----------(3)
\ /
\ /
(4)
------(5)
---- (x) destino
A* se encuentra en el nodo (1) y entiende que el mejor nodo es el (2) porque está mas cerca del destino que el 4 (x), el siguiente nodo que creerá que el mejor es el (3) porque también está más cerca que el (4), finalmente encuentra la (x) y el camino elegido es 1,2,3,4, cuando el correcto era el 1,4,5.
Por favor sacadme de dudas porque hay algo que no hago bien seguro, y si la cosa es más compleja a nivel de cálculos si que empeoraría el tema de velocidad.
Mars:
Entonces le darías al "camino" ascensor un valor inversamente proporcional a la distancia a la que te encuentres de él, y directamente proporcional al piso al que vayas.
¿Pero como puede saber que el camino por el ascensor va ser mejor que por la escalera si todavía no ha sido recorrido?, el A* tiraría para arriba por la escalera, el ascensor ni se lo plantearía ya que queda aparentemente lejos (seguro que el A* no sabe lo que jode subir 20 pisos).
Realmente ¿a quién no le ha pasado?, sobre todo yendo por el campo que quieres atajar por un sitio y la cagas porque era un asco de camino. Pues es lo que me parece que le ocurre al A*.
Daemon:
Si no te esta dando el resultado que tu esperas (tanto si es en eficiencia o en el camino que buscas), es por que tu funcion de coste y/o funcion heuristica no son adecuadas al problema que te le planteas.
¿Y cual sería la heurística adecuada a este problema desde tu punto de vista?, es que por lo que he podido comprobar para un número no muy elevado de nodos apenas compensa liarse en cálculos, y te hablo de grafos en 3D, con nodos esparcidos a cualquier distancia y sin más lógica que la del propio mundo en la que está inmerso.