Штраф за недогруженные рейсы {#empty-run-before-full}

Чтобы курьеры выполняли сначала рейсы с максимальной загрузкой, используйте штраф options.penalty.empty_run_before_full.scaled. Он начисляется за каждый рейс с меньшей загрузкой, который был выполнен раньше чем рейс с большей загрузкой, если рейсы выполнил один курьер.

Штраф рассчитывается следующим образом: для каждого рейса считается максимальная утилизация (число от 0 до 1) и максимальная утилизация последующих рейсов. Разница этих утилизаций умножается на размер штрафа.

Например, в маршруте 3 рейса. В первом рейсе курьер доставил 10 единиц груза, во втором — 15, в третьем — 20. Вместимость автомобиля — 25 единиц. Максимальная утилизация достигается в третьем рейсе — 20 единиц. По первому и второму рейсам начислен штраф:

[(20-10)/25 + (20-15)/25] * options.penalty.empty_run_before_full.scaled

Если тот же курьер доставляет в первом рейсе 20 единиц груза, во втором — 10, в третьем — 15, будет начислен штраф только по второму рейсу:

(15-10)/25 * options.penalty.empty_run_before_full.scaled

Пример 1

Курьер делает 3 рейса, в первом доставляет заказы с временными окнами до 12 часов, во втором и третьем рейсах — с временными окнами после 13 часов. Стоимость курьера зависит от времени ожидания на маршруте, поэтому после доставки ранних заказов курьер возвращается на склад.

Вместимость автомобиля — 25 единиц. В первом рейсе курьер доставляет 12 единиц груза, во втором — 16, в третьем — 20.

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

Пример 2

То же, что в примере 1, но определен штраф options.penalty.empty_run_before_full.scaled = 10 000. В первом рейсе курьер по-прежнему доставляет ранние заказы — 12 единиц груза. Но во втором и третем рейсе курьер теперь доставляет по 18 единиц груза. Штраф empty_run_before_full_penalty рассчитан только для первого рейса:

(18-12) / 25 * 10000 = 2400

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

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