SABSUS

ПАРНАЯ ТРАНСПОРТНАЯ ЗАЯВКА

Связанные забор и доставка: порядок, один автомобиль и загрузка

Забрать вещь у одного клиента и передать её по другому адресу — одно транспортное обязательство с двумя событиями. Если планировщик видит только независимые остановки, он может предложить доставку раньше забора или разделить пару между машинами. Короткая дистанция такую ошибку не исправляет.

Редакция SABSUS · · Источники проверены 9 октября

Когда остановки нужно связать в пару

Парная заявка описывает конкретное отправление: откуда его забирают, куда доставляют и какой груз должен пройти этот путь. У неё один идентификатор обязательства, но разные идентификаторы событий забора и передачи. Два одинаковых адреса не доказывают, что речь идёт об одном отправлении.

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

В Route Optimization API Google отправление с pickup и delivery требует сначала забора, затем доставки тем же автомобилем. Документация также отличает несколько альтернативных мест забора от обязательного посещения всех: выбирается один допустимый вариант. Google: структура Shipment.

Проверяйте три разных ограничения

Первое ограничение — предшествование: доставка конкретной вещи не может произойти до её забора. Второе — один автомобиль для обеих сторон пары, если так устроен выбранный процесс. Третье — допустимая загрузка на каждом участке между событиями.

Выполнение одного не доказывает остальные. Правильный порядок двух адресов ещё не гарантирует, что они назначены одной машине. Одинаковая машина не гарантирует свободного места после второго забора. Нулевая загрузка в конце рейса не доказывает отсутствие перегруза в середине.

Пример OR-Tools отдельно регистрирует pickup-delivery request, добавляет равенство назначенного автомобиля и ограничение предшествования. Это полезное напоминание при проверке реализации: наличия одной связи между остановками недостаточно для доказательства всех правил. Google OR-Tools: pickups and deliveries.

Общие окна времени, длительность обслуживания и передача плана рассмотрены в рабочем порядке маршрутизации. Здесь проверяем именно связанную пару и её груз, не заменяя остальные условия реального рейса.

Учебный пример на условной прямой

Все координаты и количества вымышлены. Они не описывают реальные дороги. Расстояние между точками равно модулю разницы их координат. Один автомобиль начинает пустым на базе O с координатой 0 и должен вернуться туда после всех четырёх событий.

  • Отправление A: забор PA в точке 8, доставка DA в точке 2.
  • Отправление B: забор PB в точке 3, доставка DB в точке 9.
  • Каждое отправление занимает две одинаковые условные единицы вместимости.
  • Вместимость автомобиля равна трём единицам; разделение отправления не разрешено.

Для изоляции задачи длительность обслуживания принята нулевой, временных окон и других ограничений нет. В рабочем плане эти упрощения необходимо заменить подтверждёнными данными. Физически допустимую нагрузку определяют по реальному автомобилю и грузу, не по числам этой статьи.

Маршрут длиной 18 может быть недопустимым

Рассмотрим O → PB → PA → DB → DA → O. Расстояния равны 3 + 5 + 1 + 7 + 2 = 18. Обе доставки стоят после своих заборов, все события назначены одному автомобилю.

Однако загрузка после остановок составляет 2 → 4 → 2 → 0. После PA внутри одновременно находятся A и B, то есть четыре единицы при пределе три. Этот маршрут недопустим, хотя начало и конец выглядят корректно и дистанция мала.

Другой ошибочный порядок — O → DA → PB → PA → DB → O. Здесь первое событие требует выдать A до того, как оно забрано. Проверка только общей суммы загрузок могла бы не заметить ошибку: поступления и выбытия за весь рейс взаимно погашаются. Нужна история конкретного отправления по порядку событий.

Если PA назначить первому автомобилю, а DA второму, порядок по времени может сохраниться, но в модели без перегрузки второй автомобиль не получит вещь. Такая пара также не проходит приёмку. Исправление требует допустимого назначения, а не комментария «передадим по пути».

Найдите допустимую последовательность

Порядок O → PB → DB → PA → DA → O имеет расстояние 3 + 6 + 1 + 6 + 2 = 18. Загрузка меняется 2 → 0 → 2 → 0. B полностью доставлено до забора A; обе пары соблюдают порядок и используют тот же автомобиль.

Порядок O → PA → DA → PB → DB → O тоже допустим, но расстояние равно 8 + 6 + 1 + 6 + 9 = 30. Разница составляет двенадцать условных единиц расстояния. Она относится только к заданной геометрии, не является обещанием экономии топлива или времени.

Всего четыре разные остановки имеют 24 перестановки. Из них шесть сохраняют забор раньше доставки для обеих пар. При нашей вместимости только две из этих шести не держат оба отправления внутри одновременно. Мы проверили обе: их длины 18 и 30, поэтому 18 — минимум именно этой учебной постановки.

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

Загрузка должна иметь единицу и подтверждённое начало

Для каждого типа ограничения задайте одинаковые единицы у отправления и автомобиля: например, число совместимых мест, масса или объём. Один показатель не заменяет другие. Отправление может проходить по массе и не помещаться по требуемому способу размещения.

Google использует соответствующие ключи типов для loadDemands и loadLimits. Если типы не совпадают или у машины отсутствует нужный лимит, ожидаемое ограничение может не применяться. Google: требования и пределы загрузки. Проверяйте смысл полей, а не только наличие чисел в запросе.

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

Сбой одной стороны пары меняет оставшуюся работу

Если забор не состоялся, доставка соответствующего отправления не может остаться обычной готовой остановкой. Укажите причину, владельца решения и дальнейший вариант. При этом независимая пара B не обязана исчезать из плана вместе с A.

Отмена после фактического забора отличается от отмены до него. Вещь уже находится у исполнителя. Нужно согласовать дальнейшую передачу или возврат и сохранить ответственность до подтверждённого получения. Удаление обеих строк из календаря не возвращает груз владельцу.

При отказе получателя фиксируйте конкретное отправление и его текущее место. Не отмечайте доставку успешной ради закрытия рейса. Перенос, обратный путь и передача другой машине требуют предусмотренного решения, а техническое обновление статуса не заменяет физическое событие.

Какие данные нужны диспетчеру

Сохраняйте идентификатор парной заявки, отправление, обе остановки, количества и типы загрузки. Для каждого события нужны место, окно, длительность обслуживания, назначенный автомобиль и подтверждение факта. Для рейса — исходное содержимое, рабочие ограничения и версия принятого плана.

При проверке результата полезен список загрузки после каждого события с указанием находящихся внутри отправлений. Он объясняет нарушение лучше общего числа заказов. Диспетчер должен видеть, какая именно пара создаёт проблему и какое изменение предлагается.

Приёмочный чек-лист

  1. DA до PA отклоняется даже при коротком пути.
  2. Забор и доставка пары не назначаются разным автомобилям без отдельной модели передачи.
  3. Последовательность PB → PA создаёт загрузку четыре и не проходит предел три.
  4. PB → DB → PA → DA даёт загрузку 2 → 0 → 2 → 0 и расстояние 18.
  5. Начальный фактический груз сохраняется при перепланировании.
  6. Несостоявшийся забор блокирует обычную доставку этой пары.
  7. Отмена после забора оставляет явное обязательство по находящейся у исполнителя вещи.
  8. Единицы отправлений соответствуют проверяемым лимитам автомобиля.

В SABSUS проверьте связи доставки и заказов. Поддержку парных ограничений, расчёта загрузки и внешнего маршрутизатора нужно подтвердить в конфигурации.

Частые вопросы

Достаточно связать два адреса одним номером?

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

Можно передать вещь другой машине?

Только в отдельно предусмотренном процессе с подтверждённой передачей. Учебная модель такой перегрузки не допускает.

Самый короткий маршрут всегда лучший?

Сначала исключите недопустимые варианты. Затем сравнивайте оставшиеся по выбранному критерию и полным рабочим ограничениям.

Источники

Проверено 9 октября 2026 года. Координаты, отправления и дистанции учебные.