Обновление Яндекс Маршрутизации
от 22 марта 2023 года

  • Запрет на завершение рейса/маршрута на складе, отличном от стартового
  • Значение «Итого» по нескольким выбранным заказам
  • Несовместимые зоны на уровне машин
  1. Запрет на завершение рейса/маршрута на складе, отличном от стартового

Бывают ситуации, когда нам нужно чтобы в конце рейса или маршрута машины вернулись на тот же склад, откуда они стартовали. Например, чтобы привезти возвраты из торговой точки, или вернуть тару на склад. При этом в ситуациях, когда следующий рейс начинается с другого склада, алгоритму было бы выгоднее в конце рейса сразу отправить машину на этот склад, без возврата на стартовый. Чтобы контролировать это поведение, мы добавили два новых свойства:
1. finish_run_in_starting_depot заставляет курьера заканчивать заезды на том же складе, на котором заезд был начат, значение по умолчанию False.
2. finish_route_in_starting_depot заставляет курьера заканчивать маршрут на том же складе, на котором маршрут был начат, значение по умолчанию False.
При использовании вместе со значением флага visit_depot_at_start =False, начальным складом считается склад, начинающий второй заезд маршрута.
Пример:

{
"vehicles": [
{
...
"allow_different_depots_in_route": true,
"finish_route_in_starting_depot": true,
"id": 1,
...
},
{
...
"allow_different_depots_in_route": true,
"finish_run_in_starting_depot": true,
"id": 2,
...
},
]
}

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

  1. Значение «Итого» по нескольким выбранным заказам

При просмотре результатов планирования в рабочем месте логиста появилась возможность выбрать несколько заказов, и посмотреть суммарные значия по их весу, объему и количеству юнитов. Для этого нужно зажать клавишу control(ctrl) на клавиатуре, и выбрать интересующие заказы. Это работает и для распределенных и для нераспределенных заказов.

  1. Несовместимые зоны на уровне машин

По аналогии с возможностью задавать несовместимые типы загрузки на уровне отдельной машины, появилась возможность определять набор несовместимых зон. Для этого в определении транспортного средства добавлено поле incompatible_zones . В нем, аналогично одноименному глобальному параметру, задаваемому в options , можно перечислить наборы зон, которые в рамках машины будут считаться несовместимыми.
Несовместимые зоны имеют приоритет над зонами, определенными глобально на листе options.

Пример:

{
"options":
"incompatible_zones": [
["zone1, "zone2"],
["zone3, "zone4"]
]
},
"vehicles": [
{
"id": 1,
...
},
{
"id": 2,
"incompatible_zones": [["zone1", "zone3"]],
...
},
{
"id": 3,
"incompatible_zones": [],
...
},
]
}

В примере определены глобальные несовместимые пары зон zone1/zone2 и zone3/zone4.
1. У машины с id=1 не определено свойство incompatible_zones и для нее будут использованы зоны из глобального определения.
2. В случае с транспортным средством id=2 несовместимость определена и отличается, она и будет использована.
3. Наконец, для машины с id=3 определен пустой список несовместимых зон, а значит на нее ограничение по зонам распространяться не будет.

На этом сегодня все, по всем вопросам пишите на routing-support@yandex-team.ru

Был ли этот дайджест полезным?
Thu May 16 2024 14:25:48 GMT+0300 (Moscow Standard Time)