Яндекс Маршрутизация

+145
с 2020

Яндекс Маршрутизация — это специализированная логистическая платформа, основанная на геоинформационных технологиях Яндекса. Она одновременно планирует маршруты…

877 подписчиков
0 подписок

И отдельно про параметр кучности. Ссылки на документацию, где описано применение параметра кучности маршрутов:
- маршруты, устойчивые к изменениям - https://yandex.ru/routing/doc/vrp/concepts/planning-proximity.html
- географическая группировка маршрутов - https://yandex.ru/routing/doc/vrp/concepts/global-proximity-factor.html

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

Мы взяли одну и ту же задачу и решили ее с базовыми настройками (без кучности) и с разными значениями параметра кучности. А затем сравнили полученные решения с точки зрения метрик.

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

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

Без учета кучности  - https://yadi.sk/i/idqCrWqY0xBe5A
Более кучные маршруты - https://yadi.sk/i/MH5x2Se1qVdG-g
Еще более кучные маршруты - https://yadi.sk/i/eP3hfofDxY9jAA
Сравнение решений - https://yadi.sk/i/YxbCPpv4j502cA

7

Добрый день,

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

1. Почему маршрут с выездом в 08:00 с учетом пробок показывает 5 ч.15 минут, а в Яндекс.Маршрутизации та же последовательность точек показала 2ч 28 мин?

Здесь все просто. Яндекс Карты действительно умеют показывать расчетное время в зависимости от даты и времени старта. Но также надо понимать, что для карт, которые как правило являются инструментом обычного горожанина объезд более 10 точек - довольно нетипичный сценарий. И карты при расчете времени проезда маршрута берут пробки на 08:00 и считают что они будут одинаковыми для всех точек в маршруте. Утренние пробки, как мы знаем, довольно плотные. Поэтому на картах и получается 5 часов 15 минут, как если бы тот же уровень пробок сохранялся на протяжении всего маршрута.
С этим, кажется, разобрались. Давайте перейдем к следующему вопросу.

2.  Почему Яндекс.Карты говорят, что без пробок ехать 2 ч 25 минут, а в Яндекс.Маршрутизации та же последовательность точек показала 2 ч 28 минут? Означает ли это что Яндекс.Маршрутизация не учитывает пробки?

Ответить на вопрос "почему так получилось?" имея только скриншоты, которые вы предоставили, довольно сложно. Не очень ясно, какие были настройки параметра выезда машин - вероятно они выехали раньше 08:00, например в 07:00 или в какое-то другое время, и в это время пробочный профиль был совсем другим. 
Но есть предложение не оперировать старым скриншотом, а сделать подобный расчет прямо сейчас.

Итак, мы взяли задачу, в которой установили жесткое время старта со склада в 08:00, поставили нулевое время на обслуживание на каждой точке, что означает, что мы просто приезжаем на точку и сразу едем дальше. 
Все это отправили в алгоритм планирования, указав завтрашнюю дату, то есть 18.06.2021.

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

Результаты такие:

- Яндекс.Маршрутизация - 2 ч 47 минут
- Яндекс.Карты с пробками на 08 утра - 3 ч 42 минуты (так как пробки в 8 утра больше)
- Яндекс.Карты без пробок - 2 ч 22 минуты

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

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

7

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

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

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

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

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

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

14

Денис, в Яндекс.Маршрутизации вы можете выставить разные сценарии окончания маршрута: возврат на склад, окончание маршрута на последней точке, возврат не на склад, а на произвольную точку (например, домой). От того, как будет выставлен параметр окончания маршрута будет зависеть и последовательность прохождения точек. 
По ощущениям, у вас стояло окончание маршрута не на складе, поэтому вам пришлось после доставки возвращаться в сторону дома "пустым".

1

Добрый день Денис,

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

Во-вторых, позвольте прокомментировать несколько моментов:

1. Распределение маршрутов (вытянутые vs кучные/районные)
В целом, параметры распределения заказов и конфигурации маршрутов могут быть разные - по умолчанию стоит динамическое распределение заказов, которое никак не привязывается к зонам доставки. Это, как правило, дает максимальную эффективность использования транспорта. Деление доставки по зонам, особенно, если эти зоны жестко регламентированы будет давать не совсем оптимальное решение. Однако, есть ситуации, когда наши клиенты хотят видеть более кучные маршруты - это тоже возможно - в Яндекс.Маршрутизации можно выставить, так называемый, параметр «кучности маршрутов», который позволяет автоматически «нарезать» город на сегменты и построить в них маршруты (подробнее здесь: https://yandex.ru/routing/doc/vrp/concepts/examples-of-settings.html#kuchnye-marshruty).
Прелесть такого подхода заключается в том, в отличие от жесткого деления по зонам мы получаем гибкие границы секторов и возможность для динамической маршрутизации.
На нашем сайте есть отличный пример того, как переход от статичного планирования по зонам к динамической маршрутизации с гибкими границами макросекторов помог увеличить эффективность работы каждого водителя - кейс ГК Simple https://yandex.ru/routing/articles/simple

2. Учет пробок. Чем Маршрутизация отличается от Яндекс.Карт
Не совсем корректно сравнивать маршруты лоб-в-лоб перенося их на Яндекс.Карты. Объясним почему. В Яндекс.Картах при ручном построении маршрута из нескольких точек берутся пробки на дату старта и считается непрерывное движение между точками. Дата старта у вас - 08:00 утра, когда пробки в городе довольно высокие. В Яндекс.Маршрутизации мы учитываем не пробки на начало маршрута, а знаем пробки в течение всего дня - для точек в начале маршрута прогноз пробок будет на утро, для точек в середине маршрута - на дневное время. Днем пробки обычно меньше и скорость движения по дорогам выше.
Поэтому верно сказать, что учет пробок для бизнес-доставки, с мультиточками и разными временными окнами правильней реализован в специализированном инструменте - в Яндекс.Маршрутизации.
Проверить выполнимость маршрута лучше всего не переносом его на Карты, а проехав по нему. В рамках тестирования сервиса вам также доступен сервис мониторинга с мобильным приложением и рабочим местом логиста. Соответственно можно видеть и трек и реальное время прибытия. Многие наши клиенты устраивают тест-драйв сервиса именно в таком ключе, чтобы убедиться в выполнимости маршрутов.

3. Сопротивление со стороны водителей
Если вы используете разных и наемных водителей, то динамическое планирование без оглядки на зоны - ключ вашей эффективной логистики. Вы можете сэкономить до 20% ресурсов.
Если водители постоянные и свои, которые уже много ездили по районам и знают все их детали — расскажите алгоритму про это, использовав параметр кучности - так вы с одной стороны получите лояльных водителей, но будете пользоваться преимуществами динамической маршрутизации, что также даст вам экономию - от 10 до 15%.

Денис, нам очень бы хотелось доказать, что эффективность в вашем случае возможна, и мы хотели бы помочь с первичными настройками планирования. Если у вас есть желание пообщаться по этому поводу, напишите, пожалуйста на pavelrasputin@yandex-team.ru

14

Георгий, нам тоже очень нравится формат доставки заказов Маркета из Лавки за 15 минут. Другой вопрос, что заказ должен доехать до ближайшей Лавки, и  это уже вопрос стандартной интервальной доставки, которая для получателя остается за кадром (и хорошо).

2020 год порадовал очень многими инновациями в части логистики — выход на рынок доставки такси, неожиданные партнерства, комбинированные схемы доставки. Продолжаем наблюдение ;)

Спасибо за комментарий :) 
Хотелось бы также прокомментировать, как мы видим себе ситуацию: 

1. Для многих наших клиентов доставка - критически важный процесс. Настолько критически важный, что если маршрутизация не отработает, то завтрашний день окажется под большим вопросом. Почему же они не делают это внутри, а покупают готовое решение? Ответов на это несколько, но все они по сути заключаются вот в чем: на такой квест нужна очень серьезная экспертиза, кадры, ресурсы, а главное время (которого на высококонкурентном рынке как правило не бывает)  При этом поддержка внутреннего продукта и его развития оказывается не таким простым делом. Поэтому компании ищут инструмент, который с одной стороны узко специализируется на подобной предметной области, с другой стороны постоянно развивается и предоставляет гибкость. Гибкость, которая подходит для любой операционной схемы.

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

3. Про качественный учет ситуации на дорогах - отдельный и очень интересный разговор. Но если кратко - есть разные способы учета прогноза пробок и есть правильный. Правильный способ учета пробок требует наличия огромного количества данных и алгоритма, который будет рассчитывать среднюю скорость движения по каждому дорожному сегменту для разных временных слайсов в течение дня. Тогда спрогнозировать время проезда можно довольно точно. Конечно, есть вещи, которые прогнозом не закрываются, например, если случится ДТП и возникнет пробка. Или если на какой-то улице начали незапланированный ремонт (алгоритм начнет узнавать об этом уже сегодня, но эти данные лягут в основе прогноза на будущее)

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

Да, у нас открытый API, с помощью которого можно настроить интеграцию с любой системой. Документацию можно найти здесь: https://yandex.ru/routing/doc/vrp/concepts/index.html

А, теперь ситуация стала более понятна. Если делать грубые прикидки, то средняя стоимость одного дня работы машины около 5 000 руб. Средняя стоимость курьерской доставки по Москве 200-300 руб. Это как раз от 15 до 20 заказов, чтобы окупить машину.

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

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

Мы описывали кейс перехода со статичной на динамическую маршрутизацию с компанией Simple Group. Если будет время и желание, почитайте https://yandex.ru/routing/articles/simple

1

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

Если же говорить про какие-то усредненные цифры по кол-ву точек на маршруте, то кажется это от 15 до 20 точек. Но мы видели примеры, когда маршрут состоял и из 40-50 точек и при этом был выполнимым.

Количество точек на маршруте в первую очередь зависит от сервисного времени - времени, которое курьер проводит на точке. Это оказывает сильное влияние на метрики маршрута. Разница между 10 минутами на точке и 20 минутами будет колоссальной и сильно повлияет на общее время маршрута.

2

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

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

Возможные способы работы: через интерфейс системы или через API. Для мониторинга используется приложения Яндекс.Курьер или популярные GPS-трекеры.
Есть бесплатный тестовый период 14 дней.

Кому подходит:
-FMCG-производители
-Ритейл
-Электронная коммерция
-Курьерские службы и транспортные компании
-Банки
-Сервисные компании

Стоимость зависит от количества машин, выбранной периодичности платежа и набора сервисов.
Например, для компании с 5 машинами месячная стоимость сервиса планирования составит 7 425 руб, а стоимость использования сервиса планирования и мониторинга вместе 11 360 руб. Подробнее про цены здесь: https://yandex.ru/routing/pricing

6

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

1

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

2