2012-06-06 2 views
7

Я отслеживаю местоположения и их соединения с другими местоположениями.
Я сохраняю места в NSArray, в то время как каждое место представлено в виде словаря. Каждое место имеет словарь с атрибутами (locationName, Connections, широта, долгота), где Connections - это массив других мест, в которые это место подключено TO (не из). Я использую lat/lon и алгоритм Haversine для определения расстояния между двумя точками.алгоритм dijkstra на iOS

Далее, я хотел бы использовать короткий алгоритм пути Дейкстры, чтобы найти кратчайший путь между адресом источника и назначения (источника и назначения выбираются пользователем)

Это не для коммерческого использования и не требует для поддержки сотен или тысяч мест.

Я ищу некоторый объективный код C, который будет выполнять этот поиск.

+4

Мы не будем писать код для вас, но если вы предоставите нам, что у вас есть, мы можем дать предложения. – SomeKittens

+0

Я понимаю. Передача в параметрах source, destination и LocationArray Я хочу вернуть кратчайший путь (с точки зрения расстояния) между ними. Каждое соединение «одностороннее», A ----> B означает, что вы можете добраться до B от A, но не подразумевается, что вы можете получить от B до A, если явно не определено в словаре местоположения B. Я думаю, это может стать более запутанным, если я поделюсь своим текущим сломанным кодом. Эта часть (алгоритм dijkstra) нуждается в переписывании. – user1278974

+1

Идите и делитесь им (плохой код не означает, что вы плохой программист, это просто означает, что вы учитесь). В Википедии есть отличный пример псевдокода. http://en.wikipedia.org/wiki/Dijkstra's_algorithm – SomeKittens

ответ

4

Быстрый Google нашел Objective-C код в snyderp/PESGraph, который говорит

PESGraph является простой реализацией графика Foundation.kit, что позволяет структуру поздравительных узлов и путей, а затем найти самые короткий путь между ними. Он включает в себя модульные тесты, в которых также приведены примеры использования кода .

Этот вопрос был ранее задан на SO theres-an-easy-way-to-apply-a-shortest-path-alghoritm-in-objective-c, и решение указывало на тот же репозиторий git, который я нашел через Google.

+0

Спасибо за совет Петра. – user1278974

+0

В репозитории PESGraph нет образца кода. Вам удается фактически использовать его в конце? – inigo333

0

Бесстыдный штекер: mj-dijkstra Графическое представление представляет собой NSDictionary или объект, который ведет себя как словарь.

1

Мне пришлось написать свой собственный образец кода, потому что я не смог найти хороший и рабочий пример. Вы можете проверить его здесь:

https://github.com/aolszak/AOShortestPath

Смежные вопросы