Như được mô tả ngắn gọn trong bài viết Tổng quan về hoạt động tối ưu hoá tuyến đường, yêu cầu cơ bản bao gồm Mẫu, Lô hàng và Xe là thực thể bắt buộc:
- Mô hình ghi lại các chế độ cài đặt và quy tắc ràng buộc cho toàn bộ yêu cầu, bao gồm cả
Shipments
vàVehicles
. - Lô hàng đại diện cho các tác vụ hoặc lô hàng thực tế bao gồm cả
VisitRequest
lấy hàng và giao hàng. Lô hàng có các chế độ cài đặt và quy tắc hạn chế tại địa phương. - Xe đại diện cho xe, tài xế hoặc nhân viên. Xe cũng có các chế độ cài đặt và quy tắc ràng buộc cục bộ.
Các thuộc tính của mỗi thực thể mô tả một phần của vấn đề tối ưu hoá ở một cấp độ chi tiết cụ thể. Các quy tắc ràng buộc trên toàn mô hình được áp dụng cho tất cả các lô hàng và xe, trong khi các quy tắc ràng buộc và thuộc tính được chỉ định trên lô hàng hoặc xe chỉ dành riêng cho một lô hàng hoặc xe.
Để biết tài liệu đầy đủ về từng loại thông báo, hãy xem tài liệu tham khảo cho thông báo ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) và Vehicle
(REST, gRPC).
OptimizeToursRequest
cơ sở lưu trú
Một số thuộc tính thường dùng của thông báo OptimizeToursRequest
cấp cao nhất (REST, gRPC) bao gồm:
searchMode
cho biết liệu có trả về giải pháp đầu tiên đáp ứng các điều kiện ràng buộc đã chỉ định hay tìm giải pháp tốt nhất có thể trong một thời hạn đã đặt hay không.considerRoadTraffic
xác định xem có sử dụng lưu lượng truy cập trực tiếp hay không để định tuyến và ước tính ETA.populateTransitionPolylines
xác định xem có trả về hình nhiều đường định tuyến và mã thông báo định tuyến trong phản hồi hay không.
Thuộc tính mô hình
Một số thuộc tính thường dùng của thông báo ShipmentModel
(REST,
gRPC) bao gồm:
globalStartTime
biểu thị thời gian bắt đầu sớm nhất của các tuyến trên tất cả xe và lô hàng. Không có xe nào được bắt đầu quá trình chuyển đổi và vận chuyển đầu tiên trước thời điểm này.globalEndTime
thể hiện thời gian kết thúc mới nhất của các tuyến trên tất cả xe và lô hàng. Tất cả các lô hàng và quá trình chuyển đổi được chỉ định phải hoàn tất trước thời điểm này.
Thuộc tính lô hàng
Một số thuộc tính thường dùng của thông báo Shipment
(REST, gRPC) bao gồm:
pickups[]
vàdeliveries[]
đại diện cho nơi có thể nhận hoặc trả hàng. Cả hai thuộc tínhpickups[]
vàdeliveries[]
đều sử dụng thông báoVisitRequest
(REST, gRPC).loadDemands
thể hiện tải trọng cần thiết để một xe hoàn tất một lô hàng. Thuộc tínhload_limits
(REST, gRPC) tương ứng của xe cho biết lượng tải mà một xe có thể chứa cùng một lúc. Đọc thêm về tải trong Nhu cầu và giới hạn tải.penalty_cost
thể hiện chi phí phát sinh nếu một lô hàng bị bỏ qua. Đọc thêm về chi phí trong phần Thông số mô hình chi phí.
Thuộc tính xe
Một số thuộc tính thường dùng của thông báo Vehicle
(REST, gRPC) bao gồm:
startLocation
biểu thị vị trí xe phải bắt đầu tuyến đường. Thuộc tính này là không bắt buộc. Nếu không được chỉ định, tuyến đường của xe sẽ bắt đầu tại vị trí của lô hàng được chỉ định đầu tiên.endLocation
thể hiện vị trí xe phải kết thúc tuyến đường. Thuộc tính này là không bắt buộc. Nếu không được chỉ định, tuyến đường của xe sẽ kết thúc tại vị trí của lô hàng được chỉ định gần đây nhất.startTimeWindows[]
biểu thị thời điểm một xe có thể bắt đầu hành trình. Thuộc tính này là không bắt buộc.endTimeWindows[]
thể hiện thời điểm một phương tiện có thể bắt đầu và kết thúc tuyến đường. Cả hai thuộc tính này đều không bắt buộc.loadLimits
thể hiện sức chứa hiện có của xe để đáp ứng nhu cầu tải của lô hàng. Hãy đọc thêm về nhu cầu tải và giới hạn tải trong phần Nhu cầu tải và giới hạn tải.
Yêu cầu mẫu hoàn chỉnh ở định dạng JSON sẽ có dạng như sau:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
và BatchOptimizeTours
đều sử dụng thông báo yêu cầu như ví dụ ở trên, nhưng theo những cách khác nhau. Trước khi tạo yêu cầu Tối ưu hoá tuyến đường, bạn cần hiểu sự khác biệt giữa hai phương thức: