Расчет маршрута оптимального: Построение оптимального пути между точками (на автомобиле, самолёте), кратчайший путь и расстояние между городами

Содержание

Программа для оптимизации и расчета маршрута для доставки и курьеров – B2Field

Используйте оптимизацию для планирования маршрута

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

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

Выполняйте больше заказов


с оптимальными маршрутами

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

  • Высокие расходы на ГСМ и амортизацию транспорта за счет большего километража.
  • Дополнительная нагрузка для диспетчеров по планированию маршрутов.
  • Отсутствие гибкости процессов и возможности удаленно и в реальном времени отслеживать выполнение задач.

Сделайте удобными планирование и оптимизацию маршрута по точкам, повысьте скорость бизнес-процессов, чтобы ваши сотрудники успевали выполнять больше заказов и доставок.

Преимущества B2Field для расчета и составления маршрутов

Экономьте рабочее время

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

Сокращайте затраты

Оптимизация поможет сократить время в пути, тем самым снизив километраж, затраты на ГСМ и амортизацию автопарка. Кроме того, автоматизация бизнес-процессов при планировании позволит снизить потребность в расширенном штате диспетчеров.

Уменьшайте ошибки

Без специального ПО логисту необходимо обладать отличным знанием своей территории. С программой B2Field сотрудники будут взаимозаменяемы и универсальны. Когда в команде появятся новички, их не придется длительно обучать специфике вашего бизнеса.

Улучшайте клиентский сервис

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

Оптимизируйте маршруты, чтобы выполнять больше заказов

Начать бесплатно

Готовый маршрут — в мобильном приложении

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

Кроме маршрута, в программе B2Field диспетчер сможет удаленно передать подробную информацию о задаче. Через приложение выездной сотрудник получит доступ к карточке клиента и сможет подготовить отчет для контроля его работы в офисе.

Повысьте эффективность


с программой B2Field

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

Проверяйте статусы: сервис автоматически обновляет сведения о задачах. Подтвердить, что сотрудник выполнил доставку или другую работу, можно с помощью просмотра местоположения. Его фиксирует мобильное приложение с GPS. Данные о геолокации доступны в режиме реального времени и в истории поездок, где отражается километраж и расчет топлива.

Узнать больше о заданиях

Для служб доставки и курьеров. Для выездных сотрудников

Используйте сервис B2Field, чтобы удаленно управлять разными полевыми специалистами и контролировать местоположение по GPS

Службы доставки

Отвечайте ожиданиям заказчиков и выполняйте больше доставок благодаря оптимизации процессов и отслеживанию по GPS.

Мобильная торговля

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

Выездной сервис

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

Сфера обслуживания

Гарантируйте клиентам соблюдение стандартов и высокое качество обслуживания — удалено наблюдайте за ходом работ.

Автоматизируйте максимум процессов: от клиентской заявки до маршрута

Получайте клиентские заявки в программе B2Field с помощью специального плагина на вашем сайте или через API. Это позволит легко создавать подробные задания выездным сотрудникам, а затем использовать оптимизацию и расчет маршрута.

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

Часто задаваемые вопросы

Какой метод используется в B2Field для оптимизации маршрута?

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

Какие параметры учитываются для оптимизации маршрута?

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

Как проверить, что сервис оптимизировал маршрут?

Вы увидите, что изменился километраж и время, за которое сотрудник выполнит маршрут.

Можно ли скорректировать маршрут вручную после оптимизации?

Да, вы можете изменить порядок локаций вручную.

Сколько стоит модуль для оптимизации маршрута?

Дополнительно платить не нужно. Функция оптимизации включена в тарифы. Для работы в B2Field вам нужно оплатить подписку, а сотрудникам — установить мобильное приложение.

Сотни тысяч маршрутов в секунду на ядро. Опыт Яндекс.Маршрутизации / Хабр

Пару недель назад Даня Тарарухин рассказал на Хабре, как появился наш сервис, Яндекс. Маршрутизация, и как он помогает компаниям с логистикой. Создавая платформу, мы решили несколько интересных проблем, одной из которых и посвящён сегодняшний пост. Я хочу поговорить о самом планировании маршрутов и необходимых для этого ресурсах.

Поиск оптимального маршрута между множеством точек — классическая задача дискретной оптимизации. Для её решения нужно знать расстояния и времена в пути между всеми точками. То есть — знать матрицу расстояний и времён. Ещё два года назад долгое вычисление матрицы было для нас очень критичной проблемой и блокировало развитие. Сам поиск оптимального решения при известной матрице занимал 10 минут, а вот вычисление всех ячеек матрицы для больших задач (на несколько тысяч заказов) занимало часы.

Чтобы решить задачу с пятью тысячами заказов, нужно знать расстояния и времена в пути между всеми точками. Это две матрицы чисел размерностью 5000х5000. Мы планируем маршруты курьеров на весь день, и утром курьер доедет от точки до точки за одно время, а вечером — за другое.

Значит, нужно вычислять матрицы времён и расстояний для каждого часа дня. Не все часы дня уникальны, но пробочное время (утро и вечер) нужно покрыть хорошо. Поэтому мы пришли к конфигурации с тринадцатью часовыми срезами. Итого нам нужно два куба (времён и расстояний) размерностью 13х5000х5000 каждый. Это 325 млн маршрутов, посчитанных по реальному графу дорог, в котором 165 млн ребёр. Расчёт одного маршрута в хорошо оптимизированном алгоритме команды Яндекс.Карт занимает порядка 10 мс, суммарно получаем 900 часов вычислений. Даже при распараллеливании на 900 CPU нужно ждать 1 час. Такой сервис мы не могли запустить, нужен был более подходящий алгоритм.

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

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

Реальный граф дорог достаточно сильно структурирован, и это можно использовать. Когда вы ищете кратчайшее расстояние между Москвой и Питером, в классической Дейкстре вы будете вынуждены распространять волну по кругу и перебирать все улицы и переулки Москвы, подмосковных городов и деревень, улицы Твери и Новгорода. Это огромный объём вычислений, но можно заранее подготовиться и запомнить оптимальные маршруты между городами (aka шорткаты) и не повторять их в рантайме. Тогда для поиска маршрута между двумя точками в иерархической Дейкстре вам останется посчитать кратчайшие расстояния до нужного шортката. Так как уровней иерархии может быть не два, а 5-6, то они драматически снижают время поиска.

Команда роутера Карт уже достаточно давно реализовала такие оптимизации. Именно они позволили достичь 10 мс для поиска маршрута между двумя точками. 🙂 Так что пока мы не приблизились к решению нашей проблемы.

Раз режим поиска точка-точка уже предельно оптимизирован, мы можем оптимизировать расчёт ряда в матрице. Ряд — это расстояния от одной точки до всех остальных. Пока мы ищем расстояние до самой дальней точки, мы попутно вычисляем расстояния до более близких. Значит, вычисление ряда эквивалентно вычислению расстояния до самой дальней точки.

Смотрим на время вычисления ряда по такому алгоритму и вспоминаем, что последовательное вычисление 5000 маршрутов заняло бы порядка 5000 * 10 мс = 50 с:


На графике показано время вычисления строки в матрице расстояний размером 1*N для разных N (по реальным данным). Видно, что вычисление строки интересующего нас размера 1*5000 укладывается в 1,3 секунды. На график добавлена линия тренда, которая показывает, что время вычислений растет чуть медленнее, чем линейно по N, порядок N**0.74

Уже неплохо! С таким алгоритмом мы можем посчитать наш куб за 13 * 5000 * 1,3 с = 84 500 с = почти 24 часа. Он легко параллелится по рядам, и при использовании 50 CPU расстояния вычисляются за полчаса.

Порядок сложности алгоритма вычисления куба — O(N**1.74):


График оценочного времени вычисления 13 матриц размером N*N по рядам на 50 CPU (домножили предыдущий график на 13*N/50). По этому графику мы принимали решение, что если к нам придет клиент с 5000 заказов, то мы должны уложиться в полчаса со всеми тринадцатью часовыми срезами. А вот если заказов станет 10 000, то всё плохо: придётся добавлять железо или увеличивать время.

В таком виде два с половиной года назад мы запустили первую версию нашего API, решающего логистическую задачу. Клиенты достаточно часто жаловались на долгое время решения, и их легко понять: ты запустил задачу решаться, ждёшь 1 час, получаешь решение и понимаешь, что забыл поправить время смены у водителя, исправляешь и всё начинается сначала. Водители начинают нервничать, так как рискуют попасть в утренний час пик, а то и вовсе не успеют доставить заказ в срок. Нужно было что-то делать. «Закидывать» проблему железом не хотелось: мы готовились к большим нагрузкам, потребовалось бы много железа, да и закупка серверов происходит не одномоментно.

Изучение академических статей показало, что, оказывается, для этой задачи есть алгоритмы с линейной сложностью*! (В статье по ссылке есть большой обзор всевозможных современных способов ускорения Дейкстры, в том числе и для матричного случая.) Вычислять матрицу за линейное время — это не укладывалось в голове. Один из наших разработчиков вызвался написать прототип, и вот что получилось:


Время вычисления одной матрицы размера N*N на одном CPU с помощью алгоритма «быстрых матриц». Сложность получается порядка O(N**1,1). Высокие N выбиваются из линии тренда, поскольку на время уже больше влияет генерация ответа и его скачивание по сети.

115 секунд на матрицу 5000х5000 при использовании одного ядра и почти линейная зависимость от N. Фантастика стала реальностью! Идея алгоритма комбинирует две описанные выше идеи: Дейкстру для рядов и иерархический поиск. Очевидно, что, начав вычислять второй ряд, мы в какой-то момент вновь будем обходить ту же область графа, которую мы только что проходили, вычисляя предыдущий ряд.

Поэтому давайте запоминать в узлах иерархического графа кратчайшие расстояния до всех destinations. Когда мы начнём вычислять следующий ряд, то, дойдя до такого узла, мы разом получим почти все расстояния до других точек.

Полтора года назад это позволило нам сэкономить полчаса времени седения волос логиста и существенно уменьшить потребление железа. Если раньше на один большой запрос нам требовалось 50 ядер на полчаса, то теперь — 13 ядер на 2 минуты. Это примерно 200 000 маршрутов в секунду на ядро. Тот редкий случай, когда новый алгоритм не просто закрывает класс проблем, а расширяет наши представления о возможном.


* Статья «Route Planning in Transportation Networks», см. параграф 2.7.2 «Batched Shortest Paths»

Speedy Route — Планировщик маршрута доставки

О Speedy Route

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

Speedy Route доступен в США, а также по всему миру, например. в Соединенном Королевстве и остальной части Европы, а также в Канаде, Австралии и Новой Зеландии, на Дальнем Востоке, в Южной Америке и в остальном мире. Найдите лучший маршрут с Speedy Route.

Одно или несколько транспортных средств доставки

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

Кредиты

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

Цены *

Speedy Route — это платная услуга по подписке для расчета маршрутов, содержащих более 10 местоположений, а также более трех расчетов в течение скользящего 24-часового периода для маршрутов, содержащих любое количество местоположений. Периоды подписки активируются сразу после покупки и доступны как ежедневные, еженедельные, ежемесячные и периоды специальных предложений. В настоящее время мы принимаем платежи в долларах США ($), британских фунтах стерлингов (£) и евро (€).

69 $/мес: до 5 водителей, 500 остановок на маршруте
99 $/мес: до 10 водителей, неограниченное количество остановок на маршруте

Посмотреть полную информацию о ценах

регион

Добросовестное использование

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

Мы контролируем наши системы, чтобы поддерживать производительность и надежность Speedy Route. Все пользователи Speedy Route (как с платной подпиской, так и с бесплатными пользователями) соглашаются соблюдать нашу политику «Добросовестного использования». Пользователи не должны злонамеренно предпринимать атаки типа «отказ в обслуживании» на Speedy Route или повторно использовать службу для расчета одного и того же маршрута без уважительной причины. Пользователи также не должны пытаться обойти функции безопасности. Любому пользователю, уличенному в нарушении этих политик, может быть отменена его регистрация и подписка на Speedy Route, и ему будет заблокировано использование сервиса в будущем.

Подписка не может использоваться более чем с 5 различных клиентских IP-адресов в течение скользящих 24 часов.

Конфиденциальность

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

Бесплатная услуга

Speedy Route в настоящее время является бесплатной веб-службой при расчете маршрутов, содержащих 10 или менее местоположений, но мы оставляем за собой право отозвать или изменить функциональность, параметры или доступность бесплатной услуги в будущем без предварительного уведомления. Допускается только три бесплатных расчета маршрута для каждого IP-адреса клиента в течение скользящих 24 часов. Для расчета более трех маршрутов с одного IP-адреса в течение 24 часов необходимо приобрести подписку.

Свяжитесь с нами

Если у вас есть какие-либо вопросы или вам требуется поддержка, свяжитесь с нами, используя всплывающую форму для связи со Speedy Route, или напишите нам напрямую по адресу [email protected].

Оптимизация и планирование эффективных маршрутов

Примеры использования

Предлагайте эффективные маршруты

Быстро и эффективно направляйте людей или товары из пункта А в пункт Б.

К сожалению, ваш браузер не поддерживает встроенные видео.

Прокладывать маршруты в режиме реального времени

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

Посмотрите, как это работает для InDriver

Создание оптимизированных маршрутов для сложных маршрутов

Рассчитайте до 625 маршрутов и найдите оптимизированные маршруты до 25 путевых точек, используя стоимость проезда и информацию о расстояниях между складами, распределительными центрами, клиентами и ближайшими диспетчерскими транспортными средствами.

Посмотрите, как это работает для Parcel Shuttle

Оптимизация для экономии топлива

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

Читать блог

Отправка ближайшего водителя по расчетному времени прибытия или расстоянию

Используйте матрицу расстояний с трафиком в реальном времени, чтобы определить подходящего водителя для каждой погрузки или доставки. Затем укажите маршруты и ожидаемое время прибытия, изменив местоположение водителя с помощью Дороги.

Посмотрите, как это работает для SimpleDelivery

Полезные функции

Экологичный маршрут

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

Читать блог

Маршруты для двухколесных транспортных средств

Доступ к маршрутам для двухколесных транспортных средств для поездок на моторных транспортных средствах и маршрутов доставки.

Читать блог

Данные о платных дорогах

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

Читать блог

Продукты, созданные для оптимизации планирования маршрутов

Динамические карты

Настраивайте и оформляйте интерактивные карты с помощью стилей облачных карт для обновления в реальном времени на всех устройствах и платформах.

Узнать больше

Андроид iOS JS

Динамический просмотр улиц

Встраивайте изображения реального мира в панорамы на 360°.

Андроид iOS JS

Направления

Укажите маршруты для общественного транспорта, езды на велосипеде, вождения или ходьбы между несколькими местами.

API JS

Матрица расстояний

Расчет времени и расстояний в пути для нескольких пунктов назначения.

API JS

Дороги

Определение маршрута движения транспортного средства.

API

Маршруты

Планируйте маршруты с оптимизированной по производительности версией матрицы направлений и расстояний с расширенными возможностями маршрутизации.

API

Проверка адреса

Проверка адреса и его компонентов, стандартизация адреса для отправки по почте и определение наиболее известного геокода для него.

Узнать больше

API

Автозаполнение

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

Добавить комментарий

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