負載需求和限制是可用於管理容量的限制類型。這項限制會指定貨運的必要容量和車輛的最大容量,方便您根據這些限制條件,將路線指派作業最佳化。
負載需求和限制可支援下列目標:
- 避免車輛超載。
- 監控車輛裝載量在取貨和送貨時的變化。
- 優先將重型車輛與重型貨物配對。
這些屬性會指定負載需求和限制:
loadDemands
:指定特定貨件所需的容量。loadLimits
指定特定車輛的容量上限。
結構
如圖所示,負載需求和限制的結構如下:
loadDemands
是Shipment
的屬性。一個Shipment
可以有多個負載需求。loadLimits
是Vehicle
的屬性。一個Vehicle
可以有多個負載限制。
基本檢查清單
以下檢查清單說明可避免潛在載入相關錯誤的基本知識。這份清單可協助您驗證要求及排解回應問題。
屬性
本節說明負載需求和限制的屬性,包括:
負載類型
貨物類型是字串鍵,適用於貨運和車輛。單一負載類型適用於貨運的負載需求,以及車輛的負載限制。
載入類型會使用 Protocol Buffers 地圖類型語法。命名負載類型時,請使用描述負載類型及其單位的 ID。例如:weightKg、volume_gallons、palletcount 或 frequencyDaily。
Load
和LoadLimit
Load
和 LoadLimit
物件包含特定屬性,可定義貨件和車輛的容量需求,下表說明這些屬性:
物件 | 有子女 | 屬性 | 房源類型 | 房源說明 |
---|---|---|---|---|
Load |
loadDemands |
amount |
字串 (int64 格式) | 定義指定類型出貨的容量需求。 |
LoadLimit |
loadLimits |
maxLoad |
字串 (int64 格式) | 定義車輛在指定類型中的最大載重能力。 |
範例
本節將介紹三種範例:
程式碼範例
以下範例顯示載入需求的結構,您可以在其中將 loadDemands
類型設為字串,並將 amount
屬性設為 int64 格式的字串:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
以下範例顯示負載限制最基本的結構,您可以在其中將 loadLimits
類型設為字串,並將 maxLoad
屬性設為 int64 格式的字串:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
範例情境
本節說明一個情境:您經營狗狗托兒所,並要規劃路線,在車輛中運送幾隻狗狗,但籠子數量有限。
每趟運送代表一個停靠站,您會在該處接送特定數量的狗狗。在這個例子中,每趟運送的取貨地點都不同 (即你照顧狗狗的住家),但送貨地點都相同,也就是狗狗托育中心。
以這個範例來說,要求中的屬性值如下:
有子女 | 屬性 | 類型 | 值 | 情境 |
---|---|---|---|---|
loadDemands |
負載類型 | 字串 | dogUnit |
定義貨件的裝載類型。這個範例使用 dogUnit ,每個 dogUnit 代表一隻狗。 |
loadDemands |
amount |
數字 | 第 1 次出貨:1 第 2 次出貨: 3 |
指定定義的負載類型數量。在這個範例中,您定義了兩批貨物,第一批要取回一隻狗,第二批要取回 3 隻狗。 |
loadLimits |
負載類型 | 字串 | dogUnit |
定義套用至車輛的負重限制類型。這必須與貨件的裝載類型相符,限制才適用。 |
loadLimits |
maxLoad |
數字 | 6 |
指定車輛可載運的負重類型數量上限。在本例中,你只有一輛車,最多可容納 6 個 dogUnit ,每個 dogUnit 代表一個狗籠。 |
下圖說明車輛的載重限制、每批貨物的載重需求,以及每批貨物如何消耗車輛的載重限制:
在本例中,每批貨物的負載需求和車輛的負載限制會產生下列影響:
由於車輛最多可載 6 隻狗,而你只會接送 4 隻狗,因此最佳化工具不會有問題,可為車輛生成運送狗狗的路線。
車輛的負重限制為 6
dogUnit
,表示你只能在這輛車上多載兩隻狗。如果狗狗數量超過負重限制,最佳化工具會略過其中一項接送服務,或指派合適的車輛。
請注意,沒有預先定義的類型組合。在這個例子中,你可以將負重類型從狗隻單位改為重量單位,限制狗隻的重量,或是改為線性測量,限制狗隻的寬度或高度。這項彈性功能可讓您根據特定需求調整負載需求和限制。
要求範例
以下範例顯示基本 optimizeTours
要求結構,其中包含範例情境值:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "One bernese mountain dog", "loadDemands": { "dogUnit": { "amount": "1" } } }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "Three chihuahuas", "loadDemands": { "dogUnit": { "amount": "3" } } } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "loadLimits": { "dogUnit": { "maxLoad": "6" } }, "costPerKilometer": 1.0 } ] } }
請注意,與本範例不同的是,出貨作業可能有多項裝載需求,車輛也可能有多項裝載限制,因此您可以提供複雜的限制,在規劃車隊路線時納入考量。