Алгоритм прокладки маршрута

Считается mauvais ton отвечать на сообщение, не дочитав его до конца.
Цитирую ту часть своего сообщения, до которой Вы не дочитали:

В принципе один порядок могу накинуть за счет памяти:

  • время доступа к памяти динамического типа сократилось за рассматриваемый интервал времени гораздо менее чем выросла чакстота процессора,
  • при на 2 порядка больших объемах данных существенно меньшая часть обмена приходится на быструю кэш-память и большая - на медленную из основного объема.

Зря паритесь. Дочитал я сообщение.
Просто привел примеры из реальности. На поп программах каждый владелец может проверить скорость
прокладки маршрута, в разных местах и на разные расстояния.
А часть вашего сообщения процитировал для масштаба, тык скыть для соизмерения возможного и реального.
Вполне возможно, что графы не оптимальны или алгоритмы не оптимизированы.
В Навителе скорость по родным картам в формате NM3 выше, чем по картам OSM в формате NM2.
Хотя родные карты по дефолту в PNA вне городов менее детальны, чем OSMовские.
Соответственно у них и граф может быть попроще.

(Помнится в программе “Rusa 3D” маршрут прокладывался довольно шустро. Без проблем прокладывал
маршрут от С-Пб до Тюмени. Правда в те времена и карта OSM была попроще. К востоку от Москвы.)

Там начали генерализировать граф, как испокон веков делалось во взрослых программах (например томтом, сиджик, igo). Народ жаловался на скорость прокладки маршрута - они и реализовали. С попутным отрезанием формата nm2, чтобы больше не было жалоб “ваша программа медленно работает”.

OSRM может и хорош, но не умеет прокладывать маршрут с промежуточными точками, что сильно расстраивает.

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

Вот мои выводы:
map.project-osrm.org - не умеет работать с промежуточными точками
http://www.yournavigation.org - умеет работать с промежуточными точками , имеет экспорт в форматы .gpx и .wpt , но нельзя изменить маршрут перетаскивая проложенную дорогу как в гугле.
http://www.openrouteservice.org/ - вроде как можно устанавливать промежуточные точки, но прокладка почему то идет все равно по 2м точкам
http://mgorka.info/by/router.html - не умеет работать с промежуточными точками
http://open.mapquest.com - умеет работать с промежуточными точками, умеет изменять маршрут перетаскиванием
http://maps.cloudmade.com/ - не вызывается меню поиска

В общем я для себя нашел что искал, это сервис http://open.mapquest.com, надеюсь и вам пригодится

Почему не умеет? Тыкаете в линию маршрута и тянете в сторону - получается промежуточная точка.

А что подразумевается под “не умеет прокладывать маршрут с промежуточными точками”?
http://osrm.at/6Sq

ну скажем когда в моем случае нужно отметить
Отправка Ошмяны
Загрузка Вильнюс
Растаможка Браслав
Назначение Ошмяны

Проложите мне такой маршрут, когда в OSRM можно только 2 точки задать изначально, а в гугле и open.mapquest.com все 4 задаешь, да и если нужно маршрут движение от точки к точке можно изменить перетягиванием выбирая нужную мне дорогу.

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

BuxarNET, эт мы не к тому что вы что-то не так делаете, нравится мапквест - пользуйте мапквест.

дело не в том что нравится а что нет

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

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

Сейчас в стиле осма посоветуют сделать все нужное самостоятельно

ну видимо к этому и идет

а то последние ответы вообще можно воспринять как “не нравится не пользуйся”

Твоя ошибка заключается в том, что при росте объёма данных сложность растёт не линейно, а экспоненциально.

А* ищет 100% точно, самый идеальный маршрут, причём и при однонаправленном, и при двунаправленном (встречном) поиске.

Реализовать на Питоне, кстати, недолго. Но на этом алгоритме серьёзный роутер для размеров дорожной сети страны уже не построить. Разве что если написать на C, будет что-то приемлемое.

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

Я осрмом обычно строил маршруты на 5-6 точек. То есть конечно, если бы автоматом появлялась следующая строчка для ввода - это было бы удобнее чем маркеры тягать, но таки строить он их умеет.

Самому делать - это перебор конечно, но в мейл-лист осрмовцам почему бы и не написать?

dkiselev, попробуйте проложить мой маршрут, посмотрите сколько у вас это время займет, особенно когда точка отправления и точка назначения совпадают, линии вообще тогда нету что бы её тянуть на промежуточную точку.

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

по поводу предложить идею осрмовцам, то конечно можно а если это предложит не один человек, больше шансов что предложение учтут

для интереса попробовал - 35 секунд
ну, я точных адресов не знаю, кншн, только в города тыкал и тянул

С какой стати?
Приведи хоть один аргумент, по которому сложность может расти быстрее, чем квадратичная.

написал, посмотрим что ответят

скажите как его добавить=МАПКВЕСТ=??? у меня прокладка в онлайн только =Your= :roll_eyes: в режиме =OSPM=пишет ошибка прокладки-Rout is- цифры динны машрута выводит но маршрут не прокладывает.