Hola de nuevo a todos. Dentro de mi calendario apretado he encontrado un pequeño hueco para compartir otro de mis trabajos simples pero interesantes. Últimamente estaba con el tema de IA, mirando, una cosa llevó a la otra y pues al final me puse a programar un Pathfinder usando el algoritmo de A*. El Pathfinder consiste en buscar la ruta más óptima a partir de punto A y B.

[Funcionamiento]
Primero hace falta cargar el mapa, después aparecerá la lista de las ciudades. Indicando la ciudad del origen y destino, la aplicación se procederá a calcular la ruta más óptima e imprimir por la pantalla el resultado final.

Por cierto, el mapa es un fichero (.txt) que contiene la información en un cierto formato (Ciudad[D1];Ciudad2[D2] etc...), así que, para cargar otros mapas habrá que usar el mismo formato.
También incluyo el UML para que vean la estructura de la aplicación:


[Prueba]

Los nombres de las ciudades están en catalán, por si alguno se asusta viendo la captura :)



Código Fuente: Descarga

Cualquier duda, avisen-me, saludos!

5 Responses so far.

  1. Muy interesante como siempre. Una lastima que a mi Java nunca me gusto, es algo que arrastro desde hace años, solo Perl me parece mas engorroso para programar que Java.
    Respecto al post en cuestion, entiendo que es solo una prueba pero, te has planteado usar redes neuronales para resolver el problema?
    Yo hace poco que estoy trasteando con FANN y me he dado cuenta de que para problemas simples, como puede ser este, simplifican mucho las cosas.
    Solamente tienes que implementar el codigo para entrenar la red neuronal y una vez que ha aprendido bien es sorprendente el numero de aciertos que tiene con nuevas entradas distintas a la de aprendizaje.

    Saludos.

  2. Hola compañero, gracias por comentar! Bueno, lo de Java, hace tiempo, tampoco me gustaba, pero para dar solución a problemas de manera rápida y eficiente, pues me ha servido mas de una vez. Eso si, trabajo con lenguajes de bajo nivel como C++ y Object Pascal y admito que me gustan más! Referente al algoritmo, la verdad no me había planteado usar otras alternativas, porque fue la pura curiosidad que me llevo a ver el tema de IA. Empecé por los algoritmos de DFS / BFS y pues al final se me ocurrió programar el Pathfinder usando el A*. Aunque si encuentro tiempo, echaré un vistazo a la librería de FANN, parece traer cosas bastante interesantes!

    Un saludo!

  3. Me gustaria saber si es possible que vuelvas a subir el tutorial gracias

  4. Enlace actualizado. ¡Gracias por avisar!

    Saludos.

  5. Excelente post. GRACIAS

Publicar un comentario