Требования и ограничения нагрузки — это тип ограничений, которые можно использовать для управления мощностью . Они определяют необходимую вместимость груза и максимальную вместимость транспортного средства , что позволяет оптимизировать назначение маршрутов с учетом этих ограничений.
Требования и ограничения нагрузки могут способствовать достижению таких целей, как:
- Не допускайте перегрузки транспортных средств.
- Отслеживайте, как меняется загрузка транспортных средств по мере приема и доставки грузов.
- Ограничьте количество раз, когда транспортное средство может посетить определенное место.
Требования и ограничения нагрузки указаны в этих свойствах:
-
loadDemands
определяет объем емкости, необходимый для конкретной партии груза . -
loadLimits
определяет максимальную грузоподъемность для данного транспортного средства .
Структура
Как показано на диаграмме, требования и пределы нагрузки структурированы следующим образом:
-
loadDemands
является свойствомShipment
.Shipment
может иметь несколько требований к загрузке. -
loadLimits
— это свойствоVehicle
.Vehicle
может иметь несколько пределов нагрузки.
Характеристики
В этом разделе описываются следующие свойства требований и ограничений нагрузки:
- Тип нагрузки: общее свойство между требованиями и ограничениями нагрузки.
-
Load
иLoadLimit
: уникальные свойства, присутствующие в требованиях к нагрузке и ограничениях нагрузки соответственно.
Тип нагрузки
Типы грузов — это строковые ключи, которые определяют тип требуемой нагрузки для отправления и пределы нагрузки для транспортного средства. Типы нагрузки имеют следующие важные характеристики:
- Определяется пользователем: типы нагрузки определяются вами. Для типов нагрузки не существует предопределенных системных переменных.
- Общий: типы грузов предназначены для совместного использования между отправлениями и транспортными средствами. Это означает, что груз будет потреблять мощность транспортного средства до предела только тогда, когда их типы загрузки совпадают. Если для транспортного средства не указан предел нагрузки для определенного типа, он может перевозить неограниченное количество груза этого типа.
Строковые ключи, представляющие типы загрузки, используют синтаксис типа карты протокольных буферов . Во избежание проблем эти строковые ключи не должны иметь значение null . При наименовании типа груза рекомендуется использовать идентификаторы, описывающие тип груза и его единицу измерения. Например: весКг , объем_галлонов , количество поддонов или частотаDaily .
Load
и LoadLimit
Объекты Load
и LoadLimit
содержат специальные свойства для определения требований к мощности для грузов и транспортных средств. Эти свойства описаны в следующей таблице:
Объект | Родитель | Свойство | Тип недвижимости | Описание недвижимости |
---|---|---|---|---|
Load | loadDemands | amount | строка (формат int64) | Определяет требуемую емкость отправки в указанном типе. |
LoadLimit | loadLimits | maxLoad | строка (формат int64) | Определяет максимальную грузоподъемность автомобиля указанного типа. |
Примеры
В следующем примере показана структура запроса на загрузку, где вы можете установить тип loadDemands
в виде строки, а свойство amount
— в виде строки в формате int64:
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
В следующем примере показана самая базовая структура ограничения нагрузки, где вы можете установить тип loadLimits
в виде строки, а свойство maxLoad
в виде строки в формате int64:
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
Попробуйте это
Используйте приведенные выше примеры кода, чтобы создать вымышленный сценарий. В этом сценарии у вас есть груз весом 10 килограммов и автомобиль, способный перевозить 100 килограммов:
В примере
loadDemands
определите тип нагрузки какweightKg
.Как только вы это сделаете, тип нагрузки в примере
loadLimits
также будет заполнен, разделяя тип нагрузки. Помните, что типыloadDemands
иloadLimits
должны совпадать , чтобы груз мог использовать пределы транспортного средства.В том же примере
loadDemands
установите для свойстваamount
значение10
.Это означает, что посылка весит 10 килограммов.
В примере
loadLimits
установите для свойстваmaxLoad
значение100
.Это означает, что автомобиль может перевозить максимум 100 кг.
Помните , что не существует набора предопределенных типов . В этом примере вы можете заменить килограммы на точки или изменить их на линейные измерения вместо веса. Такая гибкость позволяет адаптировать требования и ограничения нагрузки к вашим конкретным потребностям.
Пример запроса
В следующем примере показана структура базового optimizeTours
с loadDemands
в отправлении и loadLimits
в транспортном средстве:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
Помните, что груз может иметь несколько требований к загрузке, а транспортное средство может иметь несколько пределов нагрузки, что позволяет вам устанавливать сложные ограничения, которые необходимо учитывать при оптимизации маршрутов вашего автопарка.