Штраф за неиспользуемые склады

В задаче на планирование могут быть перечислены все склады, которые используются в компании. При этом для погрузки и выгрузки заказов нужны не все склады. Чтобы алгоритм не планировал лишние посещения складов, на которых не нужно загружать и выгружать заказы, используйте штраф 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Открыть на карте

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