Uno de los problemas que tuvo Caperucita fue que el lobo llegó antes a casa de la abuelita. Es posible que este lobo 2.0 hubiera utilizado el algoritmo pathfinding A* para encontrar el mejor camino para llegar antes. No en vano este algoritmo es muy bueno a la hora de encontrar caminos. Es un sencillo algoritmo, claro, a través del cuál, siguiendo los pasos indicados define el camino óptimo de un origen a un destino.
¿Pero le serviría este algoritmo en cualquier situación?. Partimos de que es un algoritmo diseñado para encontrar un camino óptimo, entre dos puntos, y que el lobo no pretende otra cosa. Si Lobo 2.0 desea saber si caperucita es realmente Caperucita, debería usar otro algoritmo, éste no le vale.
Una de los problemas que he observado de este algoritmo es que es bueno para las distancias cortas, pero cuando el mapa es muy grande, los nodos a trabajar y la memoria que debe utilizar empieza a ser considerable. Si la casa de la abuelita está lejos, es muy posible que a nuestro lobo 2.0 se le acabe la memoria o la capacidad de procesamiento antes de llegar. O tal vez, el tiempo que le lleve recalcular todo sea tanto que Caperucita llegue primero y se fastidie el cuento.
También uno de las claves del correcto funcionamiento de este algoritmo es la definición del costo del camino restante, si ésta definición es buena, el resultado puede ser más exitoso, pero en caso de no realizarse de manera adecuada, perjudica seriamente el cálculo.
¿Y qué pasa en el caso de que el objetivo esté en movimiento? Si la abuelita tiene una autocarabana en vez de una placida casita, el cálculo del itinerario para llegar a ella se complicaría mucho, obligando a un continuo reajuste del valor de todos los nodos pudiendo hacer inviable el cálculo.
Si A* no le sirve, Lobo 2.0 puede recurrir a otros algoritmos como el Jump Point Search que le ayudará a optimizar el cálculo. En el fondo, Lobo 2.0, sólo quiere jugar.
Bibliografía:
0 comentarios