2012-06-06 8 views
7

Śledzę lokalizacje i ich połączenia z innymi lokalizacjami.
Utrzymuję lokalizacje w NSArray, podczas gdy każda lokalizacja jest reprezentowana jako słownik. Każda lokalizacja ma słownik ma atrybuty (locationName, Połączenia, szerokość i długość geograficzna), gdzie Połączenia jest Tablicą innych lokalizacji, do których ta lokalizacja jest podłączona DO (nie z). Używam lat/lon i algorytmu Haversine do określenia odległości między dwoma punktami.Algorytm dijkstry na iOS

NEXT, chciałbym użyć algorytmu najkrótszej ścieżki Dijkstra, aby znaleźć najkrótszą ścieżkę między sąsiednich źródłowego i docelowego (źródłowego i docelowego są wybierane przez użytkownika)

ten nie jest przeznaczony do użytku komercyjnego i nie potrzebuje do obsługi setek lub tysięcy lokalizacji.

Szukam jakiegoś obiektywnego kodu C, który wykona to wyszukiwanie.

+4

Nie będziemy pisać kod dla ciebie, ale jeśli nam, co masz, możemy dać sugestie. – SomeKittens

+0

Rozumiem. Przechodząc przez parametry source, destination i LocationArray, chcę zwrócić najkrótszą ścieżkę (w zakresie odległości) między nimi. Każde połączenie jest "jednokierunkowe", A ----> B oznacza, że ​​można dostać się do B z A, ale nie jest domniemane, że można uzyskać od B do A, o ile nie jest to wyraźnie określone w Słowniku lokalizacji B. Myślę, że to może się bardziej zagmatwać, jeśli podzielę się moim zepsutym kodem. Ta część (algorytm dijkstry) wymaga przepisania. – user1278974

+1

Śmiało i udostępniaj go (zły kod nie oznacza, że ​​jesteś złym programistą, to po prostu oznacza, że ​​się uczysz). Wikipedia ma świetny przykład pseudokodu. http://en.wikipedia.org/wiki/Dijkstra's_algorithm – SomeKittens

Odpowiedz

4

Szybkie google znaleźć jakiś kod Objective-C na snyderp/PESGraph który mówi

PESGraph jest prosta implementacja wykres dla Foundation.kit że umożliwia greating struktury węzłów i ścieżek, a następnie znalezienie najkrótszej ścieżka między nimi. Obejmuje to testy jednostkowe, które również podają przykłady użycia kodu w postaci .

Również to pytanie było wcześniej zadawane na SO theres-an-easy-way-to-apply-a-shortest-path-alghoritm-in-objective-c, a rozwiązanie wskazywało to samo repozytorium git, które znalazłem przez google.

+0

Dziękuję za poradę Peter. – user1278974

+0

Nie ma próbnego kodu dołączonego do repozytorium PESGraph. Czy udaje ci się go użyć na końcu? – inigo333

0

Bezwstydna wtyczka: mj-dijkstra Reprezentacja wykresu to NSDictionary lub obiekt zachowujący się jak słownik.

Powiązane problemy