Hãy tạo một yêu cầu có chi phí tải để trình tối ưu hoá xem xét tải mà xe của bạn mang theo giữa các lượt truy cập. Chi phí phát sinh phụ thuộc vào cả lượng ShipmentRoute.VehicleLoad
được vận chuyển và khoảng cách hoặc thời lượng của quá trình chuyển đổi (sử dụng cost_per_kilometer
hoặc cost_per_traveled_hour
tương ứng).
Yêu cầu ví dụ tối thiểu có chi phí tải
Dưới đây là một ví dụ về một yêu cầu có chi phí tải. Trong ví dụ này, một xe không được chở quá 1.000 kg tổng trọng tải weightKg
, tức là phải trả 1 đơn vị chi phí cho mỗi km khi trọng tải weightKg
vượt quá 500 kg.
{ "model": { "vehicles": [{ "loadLimits": { "weightKg": { "maxLoad": "1000", "costPerKilometer": { "loadThreshold": "500", "costPerUnitAboveThreshold": 1 } } } }] } }
Cách tính chi phí tải cho ví dụ này như sau:
cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold
Vì vậy, nếu xe chở tải weightKg
là 600 trên 10 km, thì phép tính sẽ là:
(600 - 500) * 10 * 1 = 1000 cost units
Chi phí tải có thể được dùng để lập mô hình cho nhiều khái niệm, chẳng hạn như tăng mức sử dụng năng lượng của xe khi vận chuyển hàng nặng hoặc hao mòn xe do tải xe quá mức.
Một yêu cầu mẫu khác có chi phí tải
Dưới đây là một ví dụ khác về chi phí tải áp đặt chi phí trên mỗi thời gian di chuyển cả trên và dưới ngưỡng:
{ "model": { "vehicles": [{ "loadLimits": { "weightLbs": { "maxLoad": "1000", "costPerTraveledHour": { "loadThreshold": "900", "costPerUnitAboveThreshold": 10, "costPerUnitBelowThreshold": 1 }, }, } }] } }
Cách tính chi phí tải cho ví dụ này như sau:
cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
+ min(carried load, load threshold) * time * cost per unit below threshold
Vì vậy, nếu xe chở tải weightLbs
là 950 trong 5 giờ, thì
bạn sẽ tính như sau:
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
Trong ví dụ này, load_threshold
cho chi phí tải weightLbs
gần bằng max_load
. cost_per_unit_above_threshold
áp dụng chi phí cao cho mỗi giờ di chuyển khi xe di chuyển với tải trọng đặc biệt nặng, phạt các tuyến đường có thể làm tăng mức hao mòn của xe hoặc tiêu thụ quá nhiều nhiên liệu.
cost_per_unit_below_threshold
thêm chi phí trên mỗi đơn vị trọng lượng mà xe chở lên đến ngưỡng, thể hiện mức tiêu thụ nhiên liệu tăng lên khi xe chở nhiều tải hơn.
Câu hỏi thường gặp
Dưới đây là một số câu hỏi thường gặp về chi phí tải:
Câu hỏi | Trả lời |
---|---|
Tôi có thể chỉ định chi phí tải ở đâu? | Chỉ định chi phí tải trong Vehicle.LoadLimit . |
Chi phí tải hàng được so khớp với lô hàng như thế nào? | Phí tải áp dụng cho các lô hàng có loại nhu cầu tải khớp với loại giới hạn tải cho xe, chẳng hạn như trọng lượng hoặc thể tích. Loại tải là các chuỗi tuỳ ý, như mô tả trong phần yêu cầu và giới hạn tải. |
Chi phí tải được thể hiện như thế nào? | Chi phí tải được biểu thị bằng khoảng cách hoặc thời lượng chuyển đổi. Sử dụng cost_per_kilometer để chỉ định chi phí theo quãng đường và cost_per_traveled_hour để chỉ định chi phí theo thời lượng.
|
Khi nào áp dụng phí tải? | Tải trọng của xe được so sánh với load_threshold của chi phí tải. Nếu bạn chỉ định cost_per_unit_above_threshold , chi phí sẽ được thêm vào theo tỷ lệ tải của xe ở trên load_threshold bằng cách sử dụng công thức max(0, load - load_threshold) . Nếu bạn chỉ định cost_per_unit_below_threshold , chi phí sẽ được thêm vào theo tỷ lệ tải của xe dưới load_threshold , sử dụng công thức min(load, load_threshold) .
|
Giá trị mặc định của các tham số chi phí tải là gì? | load_threshold , cost_per_unit_above_threshold và cost_per_unit_below_threshold đều bằng 0 theo mặc định.
|
Chi phí tải được thể hiện bằng đơn vị nào? | Chi phí tải được biểu thị bằng cùng một đơn vị không thứ nguyên như tất cả các thông số chi phí khác, chẳng hạn như global_duration_cost_per_hour hoặc Shipment.penalty_cost .
|
Tôi có thể tìm thấy chi phí tải trong phản hồi ở đâu? | Chi phí tải đã phát sinh sẽ xuất hiện trong các thuộc tính metrics và route_metrics của thông báo phản hồi. Ví dụ: một cost_per_kilometer đã phát sinh sẽ xuất hiện dưới dạng model.vehicles.load_limits.cost_per_kilometer .
|
Để biết nội dung giải thích chi tiết về chi phí tải, hãy xem tài liệu tham khảo (REST, gRPC).
Ví dụ: Tạo yêu cầu OptimizeTours
Bạn cũng có thể tạo yêu cầu OptimizeTours
bằng REST hoặc gRPC.
Trước khi đưa ra yêu cầu, hãy thay thế các tham số sau bằng các giá trị phù hợp với môi trường của bạn:
- Đảm bảo bạn đã định cấu hình Thông tin xác thực mặc định của ứng dụng như mô tả trong phần Sử dụng OAuth.
Đặt PROJECT_NUMBER_OR_ID thành số hoặc mã dự án trên Google Cloud.
Lệnh sau đây sẽ gửi yêu cầu
OptimizeTours
đến API Tối ưu hoá tuyến đường và nhận phản hồi đồng bộ.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- << EOM { "model": { "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "penaltyCost": 100.0, "loadDemands": { "weightKg": { "amount": 50 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "penaltyCost": 30.0, "loadDemands": { "weightKg": { "amount": 10 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "penaltyCost": 50.0, "loadDemands": { "weightKg": { "amount": 80 } } } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0, "loadLimits": { "weightKg": { "maxLoad": "100", "costPerKilometer": { "loadThreshold": "15", "costPerUnitAboveThreshold": 1 } } } } ] } } EOM
Sau khi yêu cầu hoàn tất, bạn sẽ nhận được thông báo phản hồi.