Не более одного гипермаркета в рейсе
Когда использовать?
Когда нужно строить более надёжные маршруты с учётом плохо предсказуемого времени пребывания транспорта в ожидании разгрузки.
На гипермаркетах в очереди на разгрузку можно провести от 30 минут до 4 часов. Чтобы повысить надежность маршрутов, можно формировать рейсы таким образом, чтобы в рейсе было не более 1 гипермаркета.
Схема
Как реализовать сценарий?
Используйте совместимости 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 был доставлен вместе со вторым заказом из гипермаркета, так как это наиболее оптимально по расстоянию.