Возможные причины нераспределенных заказов
Координаты
Ошибки в координатах заказов или склада
Возможные ошибки:
Текст ошибки | Пояснение |
---|---|
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
— вместимость по грузовым единицам.
При необходимости поправить вместимость транспортных средств.
Следует учитывать дополнительные нюансы:
-
У транспортного средства могут быть определены значения
capacity.limit
— ограничение по загрузке в процентах от указанной вместимости. -
Вместимость транспортного средства может быть задана в пользовательских единицах измерения.
Пример
На складе 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 ⋅ Открыть на карте