Перейти к основному содержимому

Не более одного гипермаркета в рейсе

Когда использовать?

Когда нужно строить более надёжные маршруты с учётом плохо предсказуемого времени пребывания транспорта в ожидании разгрузки.

На гипермаркетах в очереди на разгрузку можно провести от 30 минут до 4 часов. Чтобы повысить надежность маршрутов, можно формировать рейсы таким образом, чтобы в рейсе было не более 1 гипермаркета.

Схема

Schema for case

Как реализовать сценарий?

Используйте совместимости order_features и order_restrictions.

  • Order_features — это особенность заказа.
  • Order_restrictions — это требование к заказу.

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

Также возможно решение данной задачи через ограничения по вместимости capacity_x, когда каждому заказу в гипермаркет мы указываем 1, а транспорту задаем максимально возможное количество гипермаркетов в рейсе.

Примеры

Пример 1

Есть три заказа, два из них — в гипермаркеты.

  • Заказ №1 в гипермаркет имеет order_restrictions = 1, order_features = 1
  • Заказ №2 в гипермаркет имеет order_restrictions = 2, order_features = 2
  • Заказ №3 имеет order_features = 1,2

В результате алгоритм рассчитал маршрут таким образом:

  • Заказы №1 и №2 были доставлены разными транспортными средствами, так как они не подходят по совместимости.
  • Заказ №3 был доставлен вместе со 2 заказом из гипермаркета, поскольку это наиболее оптимально по расстоянию.

Пример 2

Есть три заказа. два из них — в гипермаркеты. Есть два транспортных средства.

  • Заказы №1 и №2 в гипермаркеты имеют сargos.capacity_x = 1
  • Заказ №3 имеет сargos.capacity_x = 0
  • Два транспортных средства имеют transports.capacity_x = 1

В результате алгоритм рассчитал маршрут таким образом:

  • Заказы №1 и №2 в гипермаркеты были доставлены разными транспортными средствами, так как они не подходят по вместимости.
  • Заказ №3 был доставлен вместе со вторым заказом из гипермаркета, так как это наиболее оптимально по расстоянию.