Штраф за неиспользуемые склады
В задаче на планирование могут быть перечислены все склады, которые используются в компании. При этом для погрузки и выгрузки заказов нужны не все склады. Чтобы алгоритм не планировал лишние посещения складов, на которых не нужно загружать и выгружать заказы, используйте штраф options.penalty.unused_depot
.
У штрафа есть три составляющих:
-
starting
— штраф за каждый неиспользуемый начальный склад. По умолчанию 0. -
middle
— штраф за каждый неиспользуемый промежуточный склад. По умолчанию 10000. -
ending
— штраф за каждый неиспользуемый конечный склад. По умолчанию 0.
Примечание
Если курьер в конце рейса должен вернуться на склад (return_to_depot
= true
), но на складе он не выгрузит ни одного заказа, будет начислен штраф penalty.unused_depot.ending
. Чтобы избежать таких штрафов, разрешите курьеру не возвращаться на склад в конце рейса.
Если штраф используется в задаче, в ответе можно посмотреть следующие метрики:
-
total_unused_depot_penalty
— общий штраф за неиспользуемые склады всех видов; -
total_unused_starting_depot_count
— количество неиспользуемых начальных складов; -
total_unused_middle_depot_count
— количество неиспользуемых промежуточных складов; -
total_unused_ending_depot_count
— количество неиспользуемых конечных складов.
Пример
Два курьера выполняют 40 заказов. В задаче указаны пять складов, но заказы можно загрузить только на четырех. Курьеры не должны начинать маршруты на складе (visit_depot_at_start
= false
), но должны возвращаться на склад в конце рейса (return_to_depot
= true
). Разрешено дозагружаться на промежуточных складах (allow_different_depots_in_route
= true
). За посещения складов без загрузки и выгрузки установлен штраф penalty.unused_depot
, у которого каждая составляющая равна 20 000.
В решении один курьер стартует со склада и загружает заказы, а другой стартует не со склада и сначала собирает pickup-заказы. Оба курьера доставляют заказы и в конце рейсов возвращаются на склад, где не выгружают ни одного заказа. В результате начисляется двойной штраф penalty.unused_depot.ending
, это отображается в метриках total_unused_ending_depot_count
= 2 и total_unused_depot_penalty
= 40 000.
Пример Excel ⋅ Запрос API (JSON) ⋅ Ответ API ⋅ Открыть на карте