Nhu cầu và giới hạn tải là một loại ràng buộc mà bạn có thể sử dụng để quản lý sức chứa. Ràng buộc này chỉ định dung lượng bắt buộc của chuyến hàng và dung lượng tối đa của xe, cho phép bạn tối ưu hoá việc chỉ định tuyến đường dựa trên các ràng buộc này.
Nhu cầu và giới hạn tải có thể hỗ trợ các mục tiêu như:
- Ngăn chặn tình trạng xe chở quá tải.
- Theo dõi sự thay đổi về tải trọng của xe khi hàng được lấy và giao.
- Ưu tiên việc ghép nối xe hạng nặng với các lô hàng có tải trọng lớn.
Nhu cầu và giới hạn tải được chỉ định trong các thuộc tính sau:
loadDemands
chỉ định số lượng sức chứa mà một lô hàng cụ thể yêu cầu.loadLimits
chỉ định sức chứa tối đa cho một xe nhất định.
Cấu trúc
Như minh hoạ trong sơ đồ, nhu cầu và giới hạn tải được cấu trúc như sau:
loadDemands
là một thuộc tính củaShipment
. MộtShipment
có thể có nhiều nhu cầu tải.loadLimits
là một thuộc tính củaVehicle
. MộtVehicle
có thể có nhiều giới hạn tải.
Danh sách kiểm tra Essentials
Danh sách kiểm tra sau đây mô tả những kiến thức cần thiết giúp ngăn chặn các lỗi có thể xảy ra liên quan đến việc tải. Danh sách này có thể giúp bạn xác thực yêu cầu và khắc phục sự cố về phản hồi.
Thuộc tính
Phần này mô tả các thuộc tính cho nhu cầu và giới hạn tải, cụ thể là:
- Loại tải: Một thuộc tính chung giữa nhu cầu và giới hạn tải.
Load
vàLoadLimit
: Các thuộc tính duy nhất có trong nhu cầu tải và giới hạn tải tương ứng.
Loại cửa
Loại tải là một khoá chuỗi mà bạn áp dụng cho cả lô hàng và xe. Một loại tải duy nhất áp dụng cho nhu cầu tải của lô hàng cũng như giới hạn tải của xe.
Các loại tải sử dụng cú pháp loại bản đồ vùng đệm Giao thức. Khi đặt tên cho một loại tải, hãy sử dụng các giá trị nhận dạng mô tả loại tải và đơn vị của loại tải đó. Ví dụ: weightKg, volume_gallons, palletcount hoặc frequencyDaily.
Load
và LoadLimit
Các đối tượng Load
và LoadLimit
chứa các thuộc tính cụ thể để xác định yêu cầu về sức chứa cho các lô hàng và xe. Bảng sau đây mô tả các thuộc tính này:
Đối tượng | Cha mẹ | Thuộc tính | Loại khách sạn | Nội dung mô tả về cơ sở lưu trú |
---|---|---|---|---|
Load |
loadDemands |
amount |
chuỗi (định dạng int64) | Xác định yêu cầu về sức chứa của chuyến vận chuyển theo loại được chỉ định. |
LoadLimit |
loadLimits |
maxLoad |
chuỗi (định dạng int64) | Xác định sức chở tối đa của xe theo loại được chỉ định. |
Ví dụ
Phần này trình bày 3 loại ví dụ:
- Mã mẫu minh hoạ cấu trúc của các thuộc tính giới hạn và nhu cầu tải.
- Một ví dụ về tình huống cho thấy một cách sử dụng nhu cầu và giới hạn tải trong yêu cầu API.
- Ví dụ về yêu cầu bao gồm các giá trị được đặt trong tình huống ví dụ.
Mã mẫu
Ví dụ sau đây cho thấy cấu trúc của một yêu cầu tải, trong đó bạn có thể đặt loại loadDemands
dưới dạng một chuỗi và thuộc tính amount
dưới dạng một chuỗi ở định dạng int64:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
Ví dụ sau đây cho thấy cấu trúc cơ bản nhất của giới hạn tải, trong đó bạn có thể đặt loại loadLimits
dưới dạng một chuỗi và thuộc tính maxLoad
dưới dạng một chuỗi ở định dạng int64:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
Tình huống ví dụ
Phần này mô tả một tình huống mà bạn có một doanh nghiệp trông giữ chó và bạn đang tối ưu hoá một tuyến đường để vận chuyển một vài chú chó trong một chiếc xe có số lượng lồng hạn chế.
Mỗi chuyến vận chuyển là một điểm dừng nơi bạn đón một số lượng chó nhất định. Trong ví dụ này, mỗi lô hàng có một địa điểm đến lấy hàng riêng (là nhà của những chú chó mà bạn chăm sóc) và tất cả các lô hàng đều có cùng một địa điểm giao hàng (toà nhà của dịch vụ trông giữ chó).
Trong ví dụ này, các giá trị thuộc tính trong yêu cầu của bạn là:
Cha mẹ | Thuộc tính | Loại | Giá trị | Trường hợp |
---|---|---|---|---|
loadDemands |
loại cửa | chuỗi | dogUnit |
Xác định loại hàng hoá của lô hàng. Ví dụ này sử dụng dogUnit , trong đó mỗi dogUnit đại diện cho một chú cún. |
loadDemands |
amount |
số | Lô hàng đầu tiên: 1 Lô hàng thứ hai: 3 |
Chỉ định số lượng của loại tải được xác định. Trong ví dụ này, bạn đang xác định 2 lô hàng, trong đó lô hàng đầu tiên là 1 chú chó và lô hàng thứ hai là 3 chú chó. |
loadLimits |
loại cửa | chuỗi | dogUnit |
Xác định loại giới hạn tải trọng áp dụng cho xe. Phải khớp với loại tải của lô hàng thì hạn mức mới có liên quan. |
loadLimits |
maxLoad |
số | 6 |
Chỉ định số lượng tối đa của loại hàng hoá mà xe có thể chở. Trong ví dụ này, bạn chỉ có một chiếc xe với sức chứa tối đa là 6 dogUnit , trong đó mỗi dogUnit đại diện cho một lồng vận chuyển chó. |
Sơ đồ sau đây minh hoạ giới hạn tải của xe, nhu cầu tải của từng lô hàng và cách từng lô hàng tiêu thụ giới hạn tải của xe:
Trong ví dụ này, nhu cầu tải của mỗi lô hàng và giới hạn tải của xe có những ảnh hưởng sau:
Trình tối ưu hoá sẽ không gặp vấn đề khi tạo tuyến đường cho xe để vận chuyển chó, vì xe có thể chở tối đa 6 chú chó và bạn chỉ đón 4 chú chó.
Việc giới hạn số lượng người là 6
dogUnit
trên xe cũng có nghĩa là bạn chỉ có thể chở thêm 2 chú cún trên chiếc xe cụ thể này.Nếu số lượng chó lớn hơn giới hạn tải, thì trình tối ưu hoá sẽ bỏ qua một trong các lượt đón hoặc chỉ định lượt đón đó cho một chiếc xe phù hợp.
Hãy nhớ rằng không có tập hợp các loại được xác định trước. Trong ví dụ này, bạn có thể thay đổi loại tải từ đơn vị số lượng chó sang đơn vị trọng lượng để giới hạn trọng lượng của chó, hoặc thay đổi thành đơn vị đo chiều dài để giới hạn chiều rộng hoặc chiều cao của chó. Tính linh hoạt này giúp bạn điều chỉnh nhu cầu và giới hạn tải cho phù hợp với nhu cầu cụ thể của mình.
Ví dụ về yêu cầu
Ví dụ sau đây cho thấy cấu trúc của một yêu cầu optimizeTours
cơ bản kết hợp các giá trị của tình huống ví dụ:
{ "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 } ] } }
Xin lưu ý rằng không giống như trường hợp trong ví dụ này, một lô hàng có thể có nhiều yêu cầu về tải và một xe có thể có nhiều giới hạn về tải, cho phép bạn cung cấp các ràng buộc phức tạp cần xem xét khi tối ưu hoá các tuyến đường của đội xe.