Какие алгоритмы вычисления направления из точки А в точку Б на карте?

Для начала скажу, что я зарабатываю через вот этого брокера, проверен он временем! А вот хороший пример заработка, человек зарабатывает через интернет МНОГО МНОГО МНОГО и показывает все на примерах, переходи и читай! Добавь страницу в закладки. А теперь читаете информацию ниже и пишите свой отзыв

Как сделать карту провайдеров (таких как Google или Yahoo! Карты) предложить направления?

Я имею в виду, у них наверняка есть данные реального мира в какой-либо форме, в том числе, конечно, и расстояния, но также, возможно, такие вещи, как скорость движения, наличие тротуаров, расписание поездов и др. Но предположим, что эти данные были в простом формате, скажем очень большой направленный граф с весами, отражающими край расстояний. Я хочу быть в состоянии быстро вычислить направлениях из одной произвольной точки в другую. Иногда эти точки будут близко друг к другу (в пределах одного города) хотя иногда они будут далеко друг от друга (кросс-кантри).

Граф алгоритмы, такие как алгоритм Дейкстры не работает, поскольку график огромна. К счастью, эвристических алгоритмов как* будет, вероятно, работать. Однако, наши данные хорошо структурированы, и, возможно, какой-то многоуровневый подход может сработать? (Например, хранение предварительно вычисленных направлениях между определенными “ключевые” точки далеко друг от друга, а также некоторые местные направления. Затем указателям на две далекие точки будут задействованы местные направления ключевой точки, глобальные направления в другую ключевую точку, а затем снова локальных направлениях.)

Какие алгоритмы реально применяются на практике?

ПС. Этот вопрос был мотивирован нахождением причуды в картографических онлайн-направления. Противоречит неравенству треугольника, иногда карты Google думает, что х-З длится дольше и дальше, чем с использованием какой-либо промежуточной точки, как в Х-Y-Z для. Но, возможно, их пешеходные маршруты оптимизировать для другой параметр, тоже?

ППС. Вот еще одно нарушение неравенства треугольника, что говорит о том (для меня), что они используют какой-то многоуровневый подход: х-Z по сравнению с х-у-З. Первая, кажется, использовать выдающиеся Бульвар-де-Севастополь, хотя это немного вне пути.

Редактировать: ни один из этих примеров, кажется, работают больше, но оба делали это в момент изначального поста.

Говоря о GraphHopper, быстрый с открытым исходным кодом планировщик маршрутов на основе данных OpenStreetMap, я прочитал немного литературы и реализованы некоторые методы. Самое простое решение-это Дейкстра и простое улучшение-это двунаправленный Дейкстры, который исследует примерно только половина узлов. С bidirctional Дейкстры маршрут через всю Германию занимает уже 1 сек (для режима авто), в C это было бы возможно только 0.5 S или так.

Я создал анимированный GIF реального пути Дейкстры двунаправленный поиск с здесь. Также есть еще несколько идей, чтобы сделать быстрее Дейкстры как делать*, которое представляет собой “целенаправленную Дейкстры”. Также я создания GIF-анимации для него.

Но как это сделать (намного) быстрее?

Проблема заключается в том, что на путь поиска всех узлов между локациями должны быть изучены и это действительно дорого, как уже в Германии насчитывается несколько миллионов из них. Но дополнительный болевой точки Дейкстры и т. д. заключается в том, что такие поиски использует много оперативной памяти.

Существуют эвристические решения, но и точные решения, который organzize график (дорожная сеть) в иерархических слоев, как у Pro, так и минусы и в основном решить скорость и проблема с оперативной памятью. Я перечислил некоторые из них в этот ответ.

Для GraphHopper я решил использовать сокращением иерархий , поскольку это относительно “легкий” для реализации и не берет возрасты для подготовки графика. Это все-таки результаты в очень быстрое Время отклика, как можно протестировать в нашем интернет-экземпляр GraphHopper карты. Е. г. от Южной Африки до Восточно-китайский который приводит в 23000km расстояние и почти 14 дней время для вождения автомобиля и взял только ~0.1 S на сервер.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*