Алгоритмы Relog и «Яндекс.Маршрутизация»: в чем их преимущества при доставке товаров?

В успешном планировании ежедневной доставки ключевую роль играет алгоритм программы маршрутизации. В этой статье я сравнил работу демо-версий Relog и «Яндекс.Маршрутизация», у каждого из которых есть свои преимущества.

Первый кейс. В случае с TMS «Яндекса» одним из них называют прогнозирование пробок при построении маршрута. Моделирую стандартную задачу, чтобы увидеть, как ее выполнит алгоритм в Москве. Дистрибьютор воды завтра должен доставить бутыли по 576 заявкам, у него 18 машин. При этом продолжительность рабочего дня курьеров составляет 8 часов. В среднем на каждого водителя приходится 35 точек. Планирую доставку в «Яндекс.Маршрутизация» для первого водителя. Программа рассчитала, что время курьера в пути составит 2 часа 28 минут. Теперь копирую его маршрут и вставляю в «Яндекс.Карты», сервис показал, что без пробок на него потребуется 2 часа 25 минут, а с пробками прогнозируемое время доставки воды может увеличиться до 5 часов, то есть разница составит 2 часа 35 минут.

При сравнении оставшихся 17 маршрутов по «Яндекс.Картам» оказалось, что «Яндекс.Маршрутизация» заложил на них от 2 часов 30 минут до 3 часов. Данные картографического сервиса «Яндекса» свидетельствуют, что с учетом заторов водители будут развозить бутыли 5-6 часов 30 минут.

На графике: голубым цветом показан маршрут, построенный с помощью «Яндекс.Маршрутизация», серым - с помощью «Яндекс.Карты» без пробок, оранжевым с учетом заторов
На графике: голубым цветом показан маршрут, построенный с помощью «Яндекс.Маршрутизация», серым - с помощью «Яндекс.Карты» без пробок, оранжевым с учетом заторов

Алгоритм Relog учитывает пробки на основе статистики, но не прогнозирует их.

Второй кейс. Я решил протестировать обе программы в Алматы (Казахстан), где нет такой загруженности на дорогах, как в Москве. Кроме того, увеличил число точек для доставки воды и численность автопарка дистрибьютора. Пусть у него будет 24 машины и на завтра сформировано 747 заявок от клиентов, день работы курьеров так же составляет 8 часов. В этой задаче TMS Relog и «Яндекс.Маршрутизация» проходили проверку по двум параметрам: оптимизация количества автомобилей, сокращение времени маршрута.

Маршрутизатор «Яндекса» решил ее следующим образом: каждый водитель доставит бутыли в среднем по 35 заявкам, правда последнему курьеру придется развести воду по 45 точкам. Для обслуживания всех заказов в этот день понадобится 21 машина. То есть алгоритм оптимизировал работу так, что 3 машины для выполнения плана оказались не нужны.

Планирование Relog потребовало 20 машин, нагрузка на каждого водителя будет такая же, как у «Яндекс.Маршрутизация» — 35 точек. В целом Relog оптимизировал доставку компании на 4 машины.

Посмотрим на то, как оба алгоритма проложили маршруты на карте.

«Яндекс.Маршрутизация» нарисовал их вытянутыми - от начала до конца города, некоторые пересеклись между собой. У Relog они получились кучнее.
«Яндекс.Маршрутизация» нарисовал их вытянутыми - от начала до конца города, некоторые пересеклись между собой. У Relog они получились кучнее.

И снова о пробках. Планирование «Яндекс.Маршрутизация», показало, что продолжительность первого маршрута по времени составит 20 мин 47 секунд. Картографический сервис «Яндекса» без учета пробок спрогнозировал 21 минуту, а с заторами — 24 минуты.

Алгоритмы Relog и «Яндекс.Маршрутизация»: в чем их преимущества при доставке товаров?

Итак, основные выводы сравнительного анализа. Первый — в смоделированной ситуации маршрутизатор «Яндекса» не учел пробки на дорогах. Второй – разница при оптимизации доставки двумя программами составила 1 машину (Relog – 20 машин, «Яндекс.Маршрутизация» — 21) за счет кучности маршрутов, выстроенных в Relog.

1212
14 комментариев

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

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

По сути материала хотелось бы прокомментировать два момента:
1. Перекладывать маршрут, полученный в результате работы маршрутизации на Яндекс Карты - заведомо неверный способ проверить выполнимость маршрута. Кажется, мы на этом уже останавливались в одном из комментариев, но повторимся - Яндекс Карты учитывают пробки на текущий момент. Для всех 35 сегментов маршрута. Алгоритм маршрутизации учитывает пробки гораздо более гибко, мы знаем среднюю скорость движения на каждом дорожном сегменте в течение всего дня на соответствующую дату доставки и учитываем скорость в соответствии с нужным временным интервалом.

2. Кучные маршруты, как в вашем случае, можно получить и в Яндекс.Маршрутизации - такая опция есть и доступна всем клиентам. Какое бы решение получилось с учетом кучности? Вопрос, на который не видя задачи мы ответить не можем.

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

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

14

Коллеги, спасибо за отклик и конструктивный диалог. Что касается первого пункта, то хотел бы обратить ваше внимание на то, что в статье речь идет о прогнозировании пробок при построении маршрута на следующий день в Москве. «Яндекс.Карты» позволяют пользователю установить время выезда водителя на маршрут на будущий период. К слову, вы этого не знали? Таким образом, перекладывая маршрут из «Яндекс.Маршрутизация» (ЯМ) в «Яндекс.Карты», мы установили одни и те же параметры выезда водителей по дате и времени, то есть сделали все условия в двух системах одинаковыми. В итоге ЯМ решил задачу таким образом, что время водителя в пути при обслуживании всех заказов составит 2 часа 28 минут, а при переложении маршрута в «Яндекс.Карты», как я сказал выше, в режиме без учета пробок время водителя в пути составит 2 часа 25 минут. То есть прогнозное время выполнения маршрута в двух сервисах практически одинаковое. Тогда как с учетом пробок, по расчетам «Яндекс.Карты», водитель в пути проведет 5 часов 15 минут.

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

Все-таки, мы хотели бы понять, как и где включить этот «прогноз пробок» в ЯМ, потому что мы не смогли найти эту функцию и не смогли убедиться, что прогноз действительно есть. Хотя допускаем, что эта опция есть и возможно это мы не разобрались. Просим вас раскрыть эту тему досконально.

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

11

Действительно, при тесте явного параметра кучности и учета пробок не нашел. Есть фича отображения пробок на карте, что прикольно. Результат планирования не сохраняется, если закрыть вкладки, что было очень неудобно. Аналитика очень простая. Можно ли сделать в ЯМ параметр маршрута, чтобы определенные водители везли только определенные маршруты или параметр температурного режима при распределения заявок?

10

Ждём комментария от Яндекс Маршрутизации))

6

Интересный результат! Классная статья! 

5

Кхм, обошёл гиганта)

4