Camino más corto entre dos puntos

Started by DCelso, July 08, 2009, 08:25:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

El A* (A star) es de los buenos.

Hay muchos algoritmos similares, aunque la verdad Dijkstra nunca lo había oído orientado a un path_find ???

En el fondo se trata de pasar de cada celda a la siguiente y calcular la cercanía al objetivo, hay distintos métodos para alcanzar el objetivo, puedes declinarte por ir siempre a las celdas con un valor de cercanía más bajo, puedes tener en cuenta todas las celdas para garantizar una solución más óptima, etc.

La mayor complicación es que hay veces que llegas a "callejones sin salida" y tienes que continuar buscando desde otra celda anterior

Por supuesto es necesario mantener una "lista de celdas ya evaluadas" para evitar consultar 2 veces la misma celda.

Dicho "verblamente" suena muy bónito, pero programarlo cuesta un rato... Yo en su día lo programé con Lisp, un lenguaje lógico orientado a la inteligencia artificial, aunque es horrible... Programarlo con Bennu tiene que ser sin duda mucho más agradable xD

Si consigues algo interesante no dudes en informarnos eeeehhhh ::)
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es