Nhu cầu và giới hạn về tải là một loại quy tắc ràng buộc mà bạn có thể dùng để quản lý công suất. Quy tắc ràng buộc này chỉ định công suất bắt buộc của lô hàng và công suất 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 quy tắc ràng buộc này.
Nhu cầu và giới hạn về tải có thể hỗ trợ các mục tiêu như:
- Ngăn xe bị quá tải.
- Theo dõi cách tải trọng của xe thay đổi khi các lô hàng được nhận và giao.
- Ưu tiên việc ghép nối xe tải 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 về tải được chỉ định trong các thuộc tính sau:
loadDemandschỉ định lượng công suất mà một lô hàng cụ thể yêu cầu.loadLimitschỉ định công suất tối đa cho một xe cụ thể.
Cấu trúc
Như minh hoạ trong sơ đồ, nhu cầu và giới hạn về tải được cấu trúc như sau:
loadDemandslà thuộc tính củaShipment. MộtShipmentcó thể có nhiều nhu cầu về tải.loadLimitslà thuộc tính củaVehicle. MộtVehiclecó thể có nhiều giới hạn về tải.
Danh sách kiểm tra các yếu tố cần thiết
Danh sách kiểm tra sau đây mô tả những kiến thức cần thiết giúp ngăn ngừa các lỗi tiềm ẩn liên quan đến 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 về tải, bao gồm:
- Loại tải: Thuộc tính dùng chung giữa nhu cầu và giới hạn về tải.
LoadvàLoadLimit: Các thuộc tính riêng biệt có trong nhu cầu và giới hạn về tải tương ứng.
Loại tải
Loại tải là một khoá chuỗi mà bạn áp dụng đồng đều cho các lô hàng và xe. Một loại tải duy nhất áp dụng cho nhu cầu về tải của lô hàng cũng như giới hạn về 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 loại tải, hãy sử dụng các mã 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 các yêu cầu về công suất cho 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 | Mô tả thuộc tính |
|---|---|---|---|---|
Load |
loadDemands |
amount |
chuỗi (định dạng int64) | Xác định yêu cầu về công suất của lô hàng theo loại được chỉ định. |
LoadLimit |
loadLimits |
maxLoad |
chuỗi (định dạng int64) | Xác định công suất tải 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 nhu cầu và giới hạn về tải.
- Tình huống ví dụ cho thấy một cách sử dụng nhu cầu và giới hạn về 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 nhu cầu về tải, trong đó bạn có thể đặt loại
loadDemands thành chuỗi và thuộc tính amount thành 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 về tải, trong đó bạn
có thể đặt loại loadLimits thành chuỗi và thuộc tính maxLoad
thành 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 trong đó bạn có một doanh nghiệp trông giữ chó và bạn đang tối ưu hoá tuyến đường để vận chuyển một vài chú chó trên một chiếc xe có số lượng lồng hạn chế.
Mỗi lô hàng đại diện cho một điểm dừng nơi bạn nhậ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 nhận khác nhau (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 (toà nhà trông giữ chó của bạn).
Đối với 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 tải | chuỗi | dogUnit |
Xác định loại tải cho lô hàng. Ví dụ này sử dụng dogUnit, trong đó mỗi dogUnit đại diện cho một chú chó. |
loadDemands |
amount |
số | Lô hàng đầu tiên: 1Lô hàng thứ hai: 3 |
Chỉ định số lượng của loại tải đã 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 bạn nhận một chú chó, lô hàng thứ hai bạn nhận 3 chú chó. |
loadLimits |
loại tải | chuỗi | dogUnit |
Xác định loại giới hạn về tải áp dụng cho xe. Loại này phải khớp với loại tải của lô hàng để giới hạn có liên quan. |
loadLimits |
maxLoad |
số | 6 |
Chỉ định số lượng tối đa của loại tải mà xe có thể chở. Trong ví dụ này, bạn chỉ có một chiếc xe có công suất tối đa là 6 dogUnit, trong đó mỗi dogUnit đại diện cho một lồng chó. |
Sơ đồ sau đây minh hoạ giới hạn về tải của xe, nhu cầu về tải của từng lô hàng và cách mỗi lô hàng tiêu thụ giới hạn về tải của xe:

Trong ví dụ này, nhu cầu về tải của từng lô hàng và giới hạn về tải của xe có các tác độ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ỉ nhận 4 chú chó.
Việc có giới hạn về tải là 6
dogUnittrên xe cũng có nghĩa là bạn chỉ có thể chở thêm 2 chú chó trên chiếc xe cụ thể này.Nếu số lượng chó lớn hơn giới hạn về tải, thì trình tối ưu hoá sẽ bỏ qua một trong các điểm nhận hoặc chỉ định điểm nhậ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ị chó thành đơn vị trọng lượng để giới hạn trọng lượng của chó hoặc thay đổi thành số đo tuyến tính để giới hạn chiều rộng hoặc chiều cao của chúng. Tính linh hoạt này cho phép bạn điều chỉnh nhu cầu và giới hạn về tải theo 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 yêu cầu optimizeTours cơ bản kết hợp các giá trị trong 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 } ] } }
Hãy nhớ 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 nhu 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 quy tắc ràng buộc phức tạp để cân nhắc khi tối ưu hoá tuyến đường của đội xe.
Giới hạn linh hoạt về tải
Bạn có thể đặt giới hạn về tải làm quy tắc ràng buộc linh hoạt bằng cách thêm softMaxLoad và
costPerUnitAboveSoftMax vào loadLimits của xe. Điều này cho phép trình tối ưu hoá vượt quá tải tối đa của xe với một chi phí, ưu tiên hoàn thành tuyến đường hơn là tuân thủ nghiêm ngặt giới hạn về tải.
Bạn có thể sử dụng maxLoad và softMaxLoad cùng nhau để đặt cả giới hạn về tải cố định
và giới hạn về tải linh hoạt. Trong trường hợp này, softMaxLoad đặt tải có thể
vượt quá và maxLoad đặt giới hạn cố định không thể vượt quá. Khi
cả hai đều được sử dụng, maxLoad phải lớn hơn softMaxLoad.
Thuộc tính
Bảng sau đây mô tả các thuộc tính quy tắc ràng buộc linh hoạt cho nhu cầu và giới hạn về tải.
| Cha mẹ | Tên tài sản | Loại khách sạn | Mô tả thuộc tính |
|---|---|---|---|
loadLimits |
softMaxLoad |
chuỗi (định dạng int64) | Tải tối đa ưu tiên cho xe. Nếu tải của xe vượt quá giá trị này, thì sẽ phát sinh chi phí. |
loadLimits |
costPerUnitAboveSoftMax |
số | Chi phí trên mỗi đơn vị tải vượt quá softMaxLoad. Bạn phải điền trường này khi sử dụng softMaxLoad. Hãy xem khái niệm chính về Mô hình chi phí để tìm hiểu thêm về chi phí. |
Mã mẫu
Ví dụ sau đây cho thấy cấu trúc của các thuộc tính quy tắc ràng buộc linh hoạt của loadLimits:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }