2012-06-06 21 views
7

Estoy rastreando ubicaciones y sus conexiones a otras ubicaciones.
Guardo ubicaciones en un NSArray mientras cada ubicación se representa como un diccionario. Cada ubicación que tiene Dictionary tiene los atributos (locationName, Connections, latitude, longitude) donde Connections es una matriz de otras ubicaciones a las que esta ubicación está conectada TO (no desde). Uso lat/lon y un algoritmo de Haversine para determinar la distancia entre dos puntos.Algoritmo de dijkstra en iOS

siguiente, me gustaría usar el algoritmo del camino más corto de Dijkstra para encontrar el camino más corto entre una ubicación de origen y destino (origen y destino son seleccionados por el usuario)

Esto no es para uso comercial y no necesita para admitir cientos o miles de ubicaciones.

Estoy buscando algún código C objetivo que realice esta búsqueda.

+4

No vamos a escribir el código para usted, pero si usted nos proporciona con lo que tienes, que puede dar sugerencias. – SomeKittens

+0

Entiendo. Al pasar los parámetros fuente, destino y LocationArray, quiero devolver la ruta más corta (en términos de distancia) entre ellos. Cada conexión es 'unidireccional', A ----> B significa que puede llegar a B desde A, pero no está implícito que puede obtener de B a A a menos que esté explícitamente definido en el Diccionario de ubicación B. Creo que esto puede ser más confuso si comparto mi código roto actual. Esta parte (el algoritmo de dijkstra) necesita una reescritura. – user1278974

+1

Adelante y compártelo (un código incorrecto no significa que eres un mal programador, solo significa que estás aprendiendo). Wikipedia tiene un gran ejemplo de pseudocódigo. http://en.wikipedia.org/wiki/Dijkstra's_algorithm – SomeKittens

Respuesta

4

Una rápida de Google encontró algo de código Objective-C en snyderp/PESGraph que dice

PESGraph es una sencilla aplicación gráfica para Foundation.kit que permite greating estructuras de nodos y caminos, y luego encontrar el menor camino entre ellos. Incluye pruebas unitarias que también proporcionan algunos ejemplos de cómo usar el código.

También esta pregunta se hizo previamente en SO theres-an-easy-way-to-apply-a-shortest-path-alghoritm-in-objective-c y la solución apuntaba al mismo repositorio de git que encontré a través de google.

+0

Gracias por el consejo Peter. – user1278974

+0

No se incluye un código de muestra con el repositorio de PESGraph. ¿Logramos usarlo realmente al final? – inigo333

0

Conector desvergonzado: mj-dijkstra Una representación gráfica es un NSDictionary o un objeto que se comporta como un diccionario.

Cuestiones relacionadas