Возможные причины нераспределенных заказов

Координаты

Ошибки в координатах заказов или склада

Возможные ошибки:

Текст ошибки Пояснение
Not enough time to visit location (lateness penalty increase is higher than drop penalty): {num} vehicles Недостаточно времени, чтобы доставить заказ

Типовые ошибки в данных:

  • Широта и долгота перепутаны местами.

  • Из-за некорректных данных по результатам геокодирования может получиться, что некоторые координаты сильно отличаются от остальных — заказ оказался в другом городе или стране.

Как исправить

Проверить корректность координат склада и заказов.

Пример

У заказа 1 указаны неправильные координаты — он не будет доставлен.

Запрос API (JSON)Ответ APIОткрыть на карте

Исправлены координаты заказа 1.

Запрос API (JSON)Ответ APIОткрыть на карте

Габариты

Заказ не помещается ни в одно ТС

Возможные ошибки:

Текст ошибки Пояснение
Not compatible vehicles: vehicle id {id} ref {ref} does not have enough capacity by weight Нет машин с соответствующей грузоподъемностью
Not compatible vehicles: vehicle id {id} ref {ref} does not have enough capacity by volume Нет машин с соответствующим объемом
Not compatible vehicles: vehicle id {id} ref {ref} does not have enough capacity by units Нет машин с соответствующей грузоподъемностью в юнитах

Как исправить

Убедиться, что заказ можно поместить хотя бы в одно из транспортных средств.

Проверять вместимость по всем параметрам:

  • weight_kg — вместимость по весу;

  • volume — вместимость по объему;

  • units — вместимость по грузовым единицам.

При необходимости поправить вместимость транспортных средств.

Следует учитывать дополнительные нюансы:

  1. У транспортного средства могут быть определены значения capacity.limit — ограничение по загрузке в процентах от указанной вместимости.

  2. Вместимость транспортного средства может быть задана в пользовательских единицах измерения.

Пример

На складе 5 заказов, их развозит один автомобиль, выполняющий один рейс за смену. Вес второго заказа — 510 кг, вместимость автомобиля — 500 кг. Заказ 2 не будет распределен.

Запрос API (JSON)Ответ APIОткрыть на карте

Добавлено второе ТС с вместимостью 550 кг. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Заказы суммарно не помещаются в имеющиеся ТС

Количества ТС недостаточно для такого объема заказов.

Возможные ошибки:

Текст ошибки Пояснение
Vehicle overload: {num} vehicles Транспортное средство перегружено

Как исправить

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

Выяснить, могут ли ТС делать несколько рейсов. Суммарная вместимость ТС может быть меньше объема заказов, при этом параметр max_runs должен быть больше 1 как минимум для некоторых ТС, либо для ТС должно быть указано несколько смен.

Пример

На складе 5 заказов, их развозит один автомобиль, который может выполнить только один рейс за смену. Суммарный вес всех заказов (600 кг) больше суммарной грузоподъемности автомобиля (500 кг). Один из заказов не будет доставлен.

Запрос API (JSON)Ответ APIОткрыть на карте

Добавлено второе ТС с такой же грузоподъемностью. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Жесткие временные окна

Жесткое окно заказа

Заказ нельзя выполнить без нарушения окна, а окно заказа жесткое.

Возможные ошибки:

Текст ошибки Пояснение
Hard time window failed: expected lateness is {sec} seconds ТС не успевает в место назначения
Failed hard time window of the location ТС еще не выехало на заказ, но уже не успевает

Типовые ошибки в данных:

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

  • Заказ с жестким окном находится слишком далеко — чтобы успеть на него, нужно выезжать намного раньше. Необходимо указать соответствующее время начала смены ТС и время начала работы склада.

Как исправить

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

Пример

На складе 5 заказов, их развозит одно транспортное средство. У заказов 2 и 3 короткие жесткие временные окна. Заказ 3 не будет доставлен.

Запрос API (JSON)Ответ APIОткрыть на карте

Расширено окно для заказа 3. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Жесткое окно смены ТС

Какой-то из заказов нельзя выполнить без нарушения окна смены ТС, а окно смены жесткое.

Возможные ошибки:

Текст ошибки Пояснение
Not enough time to visit location (hard time window failed): {num} vehicles Недостаточно времени, чтобы выполнить заказ

Как исправить

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

Пример

На складе 5 заказов, одно транспортное средство c жестким временным окном смены. Заказ 3 не будет доставлен вовремя.

Запрос API (JSON)Ответ APIОткрыть на карте

Расширено временное окно смены ТС. Все заказы будут доставлены вовремя.

Запрос API (JSON)Ответ APIОткрыть на карте

Жесткое окно склада

ТС не успевает выполнить заказы и вернуться на склад до завершения окна склада, а окно склада жесткое. Возникает, только если задан параметр return_to_depot = true.

Возможные ошибки:

Текст ошибки Пояснение
Not enough time to visit location (hard time window failed): {num} vehicles Недостаточно времени, чтобы выполнить заказ и вернуться на склад

Как исправить

Расширить окно склада или сделать временное окно склада мягким.

Пример

Время работы склада с 08:00 до 11:00, окно склада жесткое. У ТС задан параметр return_to_depot = true. Заказы 2 и 3 не будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Расширено временное окно склада. Все заказы будут доставлены вовремя.

Запрос API (JSON)Ответ APIОткрыть на карте

Несовместимость заказов

Суммарной вместимости ТС недостаточно

Суммарной вместимости ТС недостаточно с учетом несовместимости заказов.

Возможные ошибки:

Текст ошибки Пояснение
Incompatible load types: {num} vehicles Несовместимые типы заказов

Как исправить

Убрать лишние значения несовместимых заказов incompatible_load_types или убрать лишние значения load_types с заказов.

Пример

На складе пять заказов, их развозит одно ТС. У заказов несовместимые типы: заказы 1, 2 и 3 с типом fish и заказы 4, 5 с типом milk. Заказы 4 и 5 не будут распределены.

Запрос API (JSON)Ответ APIОткрыть на карте

Удалены значения load_types у заказов. Все заказы будут доставлены на одном ТС.

Запрос API (JSON)Ответ APIОткрыть на карте

Теги

У ТС нет требуемых свойств

Возможные ошибки:

Текст ошибки Пояснение
Incompatible tags Несовместимые свойства заказов и ТС

Как исправить:

Проверьте правильность написания тегов или добавьте значения в поле vehicle.tags у ТС.

Нет подходящего ТС для заказа

На заказе указан тег, которого нет ни на одном из ТС.

Возможные ошибки:

Текст ошибки Пояснение
Not compatible vehicles: vehicle id {id} ref {ref} (+ {N} others) does not have tags required for the location Нет подходящих машин по тегам
Not compatible vehicles: vehicle id {id} ref {ref} does not have tags required for the location У машин нет соответствующих тегов

Типовые ошибки в данных:

  • В написании тегов допущена опечатка (фактически на заказах и на машинах тег разный).

  • В написании тегов используется разный регистр (теги чувствительны к регистру).

Как исправить

Проверить правильность написания тегов или убрать лишние значения required_tags на заказах.

Пример

В написании тегов у заказа и ТС допущена ошибка: у заказа 2 задан тег Tag_1, у ТС — tag_1.

Запрос API (JSON)Ответ APIОткрыть на карте

Исправлено название тега заказа 2. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Суммарной вместимости ТС недостаточно

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

Возможные ошибки:

Текст ошибки Пояснение
Vehicle overload: {num} vehicles Required tags missing: {num} vehicles ТС средство перегружено
Vehicle id {id}, ref {ref} does not have enough capacity by weight, does not have tags required for the location У ТС с определенным тегом недостаточно вместимости, чтобы выполнить заказы

Как исправить

Убрать лишние значения required_tags на заказах, проставить нужный тeг на большем количестве ТС или использовать оба варианта.

Пример

На складе 5 заказов: заказы 1 и 3 с тегом tag_1 и суммарным весом 505 кг. Их развозят два транспортных средства, у машины 1 задан тег tag_1. Ее грузоподъемности 500 кг не хватит для доставки заказов с тегом.

Запрос API (JSON)Ответ APIОткрыть на карте

Удален тег tag_1 у заказа 1. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Геозоны

Заказ относится к неподходящей геозоне

Указанной геозоны нет ни у одной машины в allowed_zones (и нет машины без allowed_zones) или есть у всех машин в forbidden_zones.

Возможные ошибки:

Текст ошибки Пояснение
Not compatible vehicles: vehicle id {id}, ref {ref} does not allowed to visit any of location zones ТС не может выполнить заказ в локации
Location not in the allowed zones Заказ находится за пределами зон доступности ТС

Как исправить

Изменить геозоны для ТС так, чтобы все заказы можно было доставить.

Пример

Зона транспортного средства в Московской области, заказы в Москву не доставляются. Ни один заказ не расположен в геозоне ТС, они не будут распределены.

Запрос API (JSON)Ответ APIОткрыть на карте

Изменено значение allowed_zones у ТС — удалена привязка к конкретной зоне. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Связанные заказы

Невозможно выполнить все связанные заказы

Заказы связаны между собой, например типами pickup и delivery. Если один из заказов не распределен, то не будет распределен и связанный с ним заказ.

Возможные ошибки:

Текст ошибки Пояснение
Linked via pickup and delivery with dropped location id Связанный заказ не выполнен, поэтому не выполнен и второй
Linked pickup location id {id} is not compatible with vehicles: vehicle id {id}, ref {ref} does not have tags required for the location Для связанного заказа не подходящего ТС с тегом

Как исправить

Удалить связь между заказами или исправить ошибки.

Пример

На складе пять заказов, одно ТС. У заказа 4 установлен тег, а машины с таким тегом нет, поэтому заказ 4 не выполнен. Заказ 5 также не выполнен, так как связан с заказом 4.

Запрос API (JSON)Ответ APIОткрыть на карте

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

Запрос API (JSON)Ответ APIОткрыть на карте

Штрафы

Слишком низкие значения штрафов за невыполнение заказа

Установлено низкое значение опции penalty.drop.

Возможные ошибки:

Текст ошибки Пояснение
Not enough time to visit location (lateness penalty increase is higher than drop penalty) Недостаточно времени, чтобы выполнить заказ (штраф за опоздание больше штрафа за нераспределенный заказ)
Location is too far (route cost increase is higher than drop penalty) Заказ слишком далеко (стоимость маршрута выше, чем штраф за недоставку заказа)

Как исправить

Изменить значения penalty.drop. Они должны быть на 2-3 порядка больше, чем остальные стоимости, и не должны быть равны 0. По умолчанию это значение равно 1 000 000.

Пример

На складе 5 заказов. У заказа 2 установлено слишком низкое значение penalty.drop, он не будет доставлен.

Запрос API (JSON)Ответ APIОткрыть на карте

Установлено правильное значение penalty.drop у заказа 2. Все заказы будут доставлены.

Запрос API (JSON)Ответ APIОткрыть на карте

Автоматическое планирование не может распределить заказы по ТС

Возможные ошибки:

Текст ошибки Пояснение
Vehicle overload: {num} vehicles Транспортное средство перегружено

Типовые ошибки в данных:

  • В списке заказов есть один или несколько больших грузов и много маленьких.

  • В списке доступных к использованию много разнотоннажных автомобилей.

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

  • Загрузка транспортных средств высокая.

См. раздел Пропорциональный штраф за невыполнение заказа.

Как исправить

Включить опцию options.weighted_drop_penalty = true.

Пример

В примере 30 заказов, из них один весом 4950 кг. Суммарный вес всех заказов 6400 кг. Используются два автомобиля вместимостью 700 кг и один автомобиль вместимостью 5000 кг. Параметр weighted_drop_penalty в значении false.

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

Запрос API (JSON)Ответ APIОткрыть на карте

Включена опция  weighted_drop_penalty = true. В результате все заказы будут распределены при любом запуске алгоритма.

Запрос API (JSON)Ответ APIОткрыть на карте

Написать в службу поддержки