Mục tiêu chính của Route Optimization API là tìm các tuyến đường có chi phí thấp nhất. Do đó, mô hình chi phí là yếu tố chính thúc đẩy việc tối ưu hoá tuyến đường.
Mô hình chi phí là một tập hợp các thuộc tính chỉ định chi phí toàn cầu, chi phí xe và chi phí vận chuyển.
Thuộc tính mô hình chi phí hỗ trợ các loại mục tiêu tối ưu hoá sau:
- Phân công xe và tuyến đường hiệu quả
- Thời gian đến lấy hàng và giao hàng tiết kiệm chi phí
- Ưu tiên các lô hàng quan trọng
Cấu trúc
Như minh hoạ trong sơ đồ, các thuộc tính mô hình chi phí được cấu trúc như sau:
Shipmentchứa thuộc tínhpenaltyCost.Vehiclechứa các thuộc tính sau:
Tài liệu này chỉ nêu bật các tham số mô hình chi phí thiết yếu. Hãy xem tài liệu tham khảo để biết tập hợp đầy đủ các tham số chi phí.
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ả kiến thức cần thiết để tránh các lỗi có thể liên quan đến chi phí. 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ố phản hồi.
Thuộc tính
Bảng sau đây liệt kê và mô tả các thuộc tính mô hình chi phí.
| Cha mẹ | Tên tài sản | Loại khách sạn | Chi phí mỗi | Mô tả thuộc tính |
|---|---|---|---|---|
Shipment |
penaltyCost |
số | Lô hàng bị bỏ qua | Chi phí phát sinh do bỏ qua lô hàng. API bỏ qua một lô hàng khi chi phí hoàn tất lô hàng đó vượt quá chi phí phạt.
|
Vehicle |
fixedCost |
số | Lô hàng | Chi phí cố định được áp dụng nếu xe này được dùng để xử lý một lô hàng. |
costPerHour |
số | Giờ | Chi phí vận hành xe mỗi giờ bao gồm thời gian vận chuyển, thời gian chờ, thời gian ghé thăm và thời gian nghỉ. Khi chi phí này tăng lên, trình tối ưu hoá sẽ cố gắng tìm các tuyến đường nhanh hơn nhưng có thể không phải là tuyến đường ngắn nhất. Thuộc tính này có thể là chi phí độc lập hiệu quả cho mỗi xe do tính đơn giản và đầy đủ của nó. |
|
costPerKilometer |
số | Km | Chi phí mỗi ki-lô-mét mà xe di chuyển, chẳng hạn như chi phí nhiên liệu và chi phí bảo trì xe được khấu hao. | |
costPerTraveledHour |
số | Giờ | Chi phí vận hành xe mỗi giờ chỉ khi đang vận chuyển, không bao gồm thời gian chờ, thời gian ghé thăm và thời gian nghỉ. Điều này ưu tiên các tuyến đường di chuyển nhanh hơn so với các tuyến đường ngắn hơn. |
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 mô hình chi phí.
- Một tình huống ví dụ cho thấy một cách sử dụng các thuộc tính mô hình chi phí để đạt được mục tiêu kinh doanh.
- Một 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
Mã mẫu sau đây cho thấy cấu trúc của các thuộc tính mô hình chi phí trong
Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Mã mẫu sau đây cho thấy cấu trúc của các thuộc tính mô hình chi phí trong
Vehicle:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
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ó. Bạn đang tối ưu hoá một tuyến đường cho chiếc xe tải mà bạn dùng để đón chó từ nhà của chúng. Trong tình huống này, bạn muốn trình tối ưu hoá tính đến các chi phí liên quan đến việc đón chó và vận hành xe khi cung cấp một tuyến đường.
Đối với ví dụ này, một đơn vị chi phí đại diện cho 1 đô la. Điều này có nghĩa là các giá trị thuộc tính mô hình chi phí trong yêu cầu của bạn là như sau:
| Thuộc tính | Giá trị | Trường hợp |
|---|---|---|
penaltyCost |
10 | Đại diện cho khoản phạt mà bạn đưa ra cho khách hàng vì không đón chó vào một ngày đã lên lịch. Bất cứ khi nào bạn không đón chó vào một ngày đã lên lịch, khách hàng sẽ được giảm giá 40 đô la so với tổng chi phí dịch vụ. |
fixedCost |
30 | Đại diện cho chi phí hằng ngày của các khoản thanh toán khoản vay mua xe, tức là 30 đô la mỗi ngày. |
costPerKilometer |
0.08 | Đại diện cho lượng xăng mà xe của bạn tiêu thụ trên mỗi ki-lô-mét. Xe của bạn cần 0, 04 gallon trên mỗi ki-lô-mét để di chuyển và chi phí mỗi gallon ở vùng của bạn là 2 đô la. |
costPerHour |
27 | Đại diện cho số tiền bạn trả cho một tài xế để lái xe của bạn. Bạn trả cho tài xế 27 đô la mỗi giờ. |
costPerTraveledHour |
2.5 | Đại diện cho số tiền bạn phải trả cho hệ thống điều hoà không khí của xe mỗi giờ cho chó khi đang trên đường. Bất cứ khi nào xe không di chuyển, tài xế có thể mở cửa ở phía sau và tắt hệ thống điều hoà không khí. |
Dựa trên các tham số chi phí, trình tối ưu hoá có thể đưa ra các quyết định đánh đổi mà người dùng không thấy rõ, nhưng có thể tìm thấy thông qua quá trình tối ưu hoá.
Sơ đồ sau đây minh hoạ một ví dụ trong đó trình tối ưu hoá có thể chọn một tuyến đường dài hơn nhưng nhanh hơn thông qua đường nét đứt màu xanh lục để tránh tình trạng giao thông trên đường nét đứt màu đỏ.

Trong tình huống này, số dư chi phí của 2 tuyến đường là như sau:
Đường nét đứt màu xanh lục có
costPerHourvàcostPerTraveledHourthấp vì đây là tuyến đường nhanh tránh tình trạng giao thông, tiết kiệm chi phí hơn ngay cả khicostPerKilometercao.Đường nét đứt màu đỏ có
costPerKilometerthấp vì đây là tuyến đường trực tiếp, nhưngcostPerHourvàcostPerTraveledHourquá cao do thời gian chờ trong tình trạng giao thông, khiến đây trở thành tuyến đường đắt nhất.
Ngoài việc cung cấp các tuyến đường tiết kiệm chi phí, trình tối ưu hoá còn cung cấp a tổng chi phí của các tuyến đường giao hàng trong các thuộc tính phản hồi.
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 cơ bản optimizeTours
kết hợp các giá trị được đặt 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 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Thuộc tính phản hồi
Thông báo OptimizeToursResponse có các thuộc tính chi phí
mô tả chi phí phát sinh trong quá trình hoàn tất một tuyến đường:
metrics.costs: Tổng chi phí trên tất cả các tuyến đường được chia nhỏ theo các trường yêu cầu liên quan đến chi phí.metrics.totalCost: Tổng chi phí trên tất cả các tuyến đường được cộng lại.