2012-06-06 1 views
7

Sto monitorando le posizioni e le loro connessioni ad altre posizioni.
Conservo le posizioni in un NSArray mentre ogni posizione è rappresentata come un dizionario. Ogni posizione ha Dizionario ha gli attributi (locationName, Connections, latitude, longitude) dove Connections è una matrice di altre posizioni a cui questa posizione è collegata TO (non da). Io uso lat/lon e un algoritmo di Haversine per determinare la distanza tra due punti.Algoritmo dijkstra su iOS

NEXT, vorrei utilizzare l'algoritmo percorso più breve di Dijkstra per trovare il percorso più breve tra una posizione di origine e di destinazione (origine e destinazione vengono selezionati dall'utente)

Questo non è per uso commerciale e non ha bisogno di per supportare centinaia o migliaia di posizioni.

Sto cercando un codice obiettivo C che eseguirà questa ricerca.

+4

Noi non scrivere il codice per voi, ma se ci fornite con quello che hai, possiamo dare suggerimenti. – SomeKittens

+0

Capisco. Passando nei parametri source, destination e LocationArray voglio restituire il percorso più breve (in termini di distanza) tra di loro. Ogni connessione è 'a senso unico', A ----> B significa che puoi arrivare a B da A, ma non è implicito che puoi ottenere da B ad A se non esplicitamente definito nel dizionario di ubicazione B. Credo che questo potrebbe diventare più confuso se condivido il mio attuale codice rotto. Questa porzione (l'algoritmo di Dijkstra) ha bisogno di una riscrittura. – user1278974

+1

Vai avanti e condividilo (codice errato non significa che sei un cattivo programmatore, significa solo che stai imparando). Wikipedia ha un grande esempio di pseudocodice. http://en.wikipedia.org/wiki/Dijkstra's_algorithm – SomeKittens

risposta

4

Un google rapido trovato un certo codice Objective-C in snyderp/PESGraph che dice

PESGraph è un'implementazione semplice grafico per Foundation.kit che consente una greating strutture di nodi e percorsi, e poi trovare più breve percorso tra di loro. Include test unitari che anche forniscono alcuni esempi su come utilizzare il codice.

Anche questa domanda è stata precedentemente posta su SO theres-an-easy-way-to-apply-a-shortest-path-alghoritm-in-objective-c e la soluzione puntava allo stesso repository git che ho trovato tramite google.

+0

Grazie per il consiglio Peter. – user1278974

+0

Nessun codice di esempio incluso con il repository PESGraph. Riesci a usarlo effettivamente alla fine? – inigo333

0

spudorato: mj-dijkstra Una rappresentazione grafico è una NSDictionary o di un oggetto che si comporta come un dizionario.