Построение решения
Для запуска планирования по упрощенному сценарию выполните POST-запрос и передайте подготовленные данные.
При успешной постановке задачи в очередь ответ выглядит следующим образом:
{
"id": "<task_id>",
"status": {
"estimate": <время_ожидания_в_секундах>,
"queued": <timestamp_постановки_в_очередь>
},
"yt_operations": [],
"message": "Task queued"
}
где task_id — уникальный идентификатор задачи, который присваивается алгоритмом.
Ограничение времени на построение маршрутов
Время построения задачи варьируется от нескольких секунд до нескольких минут в зависимости от количества заказов и курьеров.
Просмотр решения
Результаты планирования можно посмотреть на карте по ссылке вида https://yandex.ru/courier/mvrp-map#<task_id>, где <task_id> — уникальный идентификатор задачи. Ссылка доступна после завершения расчета. Описание карты можно посмотреть в разделе Просмотр решения на карте документации Планирования.
Исходный запрос в формате JSON доступен по ссылке вида https://courier.yandex.ru/vrs/api/v1/log/request/<task_id>.
Результат планирования в формате JSON, включая метрики решения, можно посмотреть по ссылке вида https://courier.yandex.ru/vrs/api/v1/result/<task_id>.
Результат планирования можно выгрузить в Excel по ссылке вида https://yandex.ru/courier/companies/<company_id>/depots/all/mvrp/<task_id>/export/excel, где <company_id> — идентификатор вашей компании в сервисе Маршрутизации.
Обработка нераспределенных заказов
Появление нераспределенных заказов (dropped) ожидаемо при планировании экспресс-доставки. Они возникают в текущем цикле планирования, но могут быть назначены на курьеров в последующих планированиях.
Рекомендации при обработке нераспределенных заказов:
- Не удаляйте нераспределенные заказы из системы. Передавайте их в последующих запросах на планирование.
- Настройте регулярность планирования.
- Проверяйте корректность данных заказа (вес, координаты, временные окна) и правила распределения заказов, если заказ стабильно не распределяется.
Особенности работы алгоритма:
- При частых API-запросах в сочетании с поздними или длинными временными окнами доставки увеличивается число нераспределенных заказов. Это происходит из-за того, что алгоритм стремится собрать более оптимальный маршрут.
- Не стоит вручную назначать нераспределенные заказы на курьеров. Алгоритм распределит их при следующих итерациях планирования.
Ограничения на количество запросов
В сервисе есть два типа лимитов:
-
по количеству запросов в сутки. При необходимости этот лимит может быть увеличен до любого необходимого значения. Для этого обратитесь к вашему менеджеру.
-
по количеству одновременно выполняемых запросов. Если вы не собираетесь отправлять одновременно большое количество запросов (например, для разных городов или складов), это ограничение не будет влиять на вашу работу.
Для решения каждой задачи рассчитывается потребление вычислительных ресурсов Яндекса в юнитах (квотах). Количество юнитов, необходимых для задачи, зависит от многих параметров:
- количества заказов;
- периода планирования (количества отрезков времени);
- количества задач (
task_count); - количества вариантов (потоков) расчета для каждой задачи (
thread_count); - качества (
quality) решаемых задач.
Заранее сложно предсказать, какой объем ресурсов будет задействован, и как следствие — сколько задач одновременно сможет решать компания.
Чтобы снизить потребление вычислительных ресурсов:
- разделите одну объемную задачу на несколько более мелких. Например, поделите курьеров на группы и планируйте маршруты отдельно для каждой группы. Планируйте маршруты не на весь день, а отдельно для первой и второй смены.
Если из-за особенностей вашего бизнеса необходимо запускать одновременно большое количество задач, организуйте очередь так, чтобы отправлять новый запрос к сервису только после того, как будет получен ответ на предыдущий. Оценивайте время выполнения запроса.
Если после всех принятых мер лимиты не позволяют решать бизнес-задачи, запросите у менеджера сервиса увеличение квот для вашей компании.
Тарификация
Для сценария экспресс-доставки используется тарификация по количеству заказов за период. С описанием правил расчет можно ознакомиться в документации.
В сервисах нельзя установить жесткий лимит по количеству заказов за период. При превышении вашего тарифного пакета сервисы не будут заблокированы, но за превышение будет выставлен счет согласно условий вашего договора. Чтобы не превышать лимиты приобретенного пакета и не переплачивать за превышение, внимательно следите за биллингом в кабинете разработчика.