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 để 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í chung, chi phí cho xe và chi phí cho lô hàng.
Các thuộc tính của mô hình chi phí hỗ trợ các loại mục tiêu tối ưu hoá sau:
- Chỉ định xe và tuyến đường hiệu quả
- Thời gian lấy hàng và thời gian 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ư trong sơ đồ, các thuộc tính của 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ố thiết yếu của mô hình chi phí. Hãy xem tài liệu tham khảo để biết toàn bộ các tham số chi phí.
Danh sách kiểm tra về các yếu tố thiết yếu
Danh sách kiểm tra sau đây mô tả kiến thức thiết yếu giúp ngăn ngừa các lỗi có thể xảy ra 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ố về phản hồi.
Thuộc tính
Bảng sau đây liệt kê và mô tả các thuộc tính của mô hình chi phí.
| Cha mẹ | Tên tài sản | Loại khách sạn | Chi phí mỗi | Nội dung mô tả về cơ sở lưu trú |
|---|---|---|---|---|
Shipment |
penaltyCost |
số | Đã bỏ qua dịch vụ giao hàng | 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ố | Shipment | 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 một phương tiện mỗi giờ, bao gồm cả thời gian di chuyển, chờ đợi, ghé thăm và nghỉ ngơi. 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, có thể không phải là tuyến đường ngắn nhất. Thuộc tính này có thể là một chi phí độc lập hiệu quả cho mỗi xe nhờ tính đơn giản và đầy đủ. |
|
costPerKilometer |
số | Km | Chi phí cho mỗi km di chuyển của xe, có thể là chi phí nhiên liệu hoặc chi phí bảo dưỡng xe được khấu hao. | |
costPerTraveledHour |
số | Giờ | Chi phí vận hành xe mỗi giờ chỉ khi đang di chuyển, không bao gồm thời gian chờ, thời gian ghé thăm và thời gian nghỉ giải lao. Chế độ này ưu tiên các tuyến đường di chuyển nhanh hơn thay vì 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 trường hợp ví dụ cho thấy một cách sử dụng các thuộc tính của mô hình chi phí để đạt được mục tiêu kinh doanh.
- Ví dụ về yêu cầu bao gồm các giá trị được đặt trong trường hợp 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 trường hợp trong đó bạn có một doanh nghiệp chăm sóc chó. Bạn đang tối ưu hoá tuyến đường cho chiếc xe tải mà bạn dùng để đón chó từ nhà của chúng. Trong trường hợp 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 tuyến đường.
Trong ví dụ này, một đơn vị chi phí tương đương với 1 đô la. Điều này có nghĩa là các giá trị thuộc tính của mô hình chi phí trong yêu cầu của bạn như sau:
| Thuộc tính | Giá trị | Trường hợp |
|---|---|---|
penaltyCost |
10 | Thể hiện mức phạt mà bạn áp dụng cho khách hàng nếu họ không đến đón chó vào ngày đã hẹn. Mỗi khi bạn không đón chó vào ngày đã lên lịch, khách hàng sẽ được giảm 40 đô la trên tổng phí dịch vụ. |
fixedCost |
30 | Biểu thị chi phí hằng ngày cho các khoản thanh toán khoản vay mua xe, tức là 30 đô la mỗi ngày. |
costPerKilometer |
0,08 | Thể hiện lượng xăng mà xe của bạn tiêu thụ trên mỗi km. Xe của bạn cần 0, 04 gallon/km để di chuyển và chi phí cho mỗi gallon ở khu vực của bạn là 2 đô la. |
costPerHour |
27 | Thể hiện số tiền bạn trả cho 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 | Thể hiện số tiền bạn phải trả cho điều hoà không khí của xe mỗi giờ cho chó khi đang di chuyển. Bất cứ khi nào xe không di chuyển, tài xế có thể mở cửa sau và tắt điều hoà. |
Dựa trên các tham số chi phí, trình tối ưu hoá có thể đưa ra những đánh đổi không rõ ràng đối với người dùng, 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 đứt nét màu xanh lục để tránh lưu lượng truy cập trên đường chấm màu đỏ.

Trong trường hợp này, số dư chi phí của hai tuyến đường như sau:
Đường đứt nét màu xanh lục có
costPerHourvàcostPerTraveledHourthấp vì đây là tuyến đường nhanh giúp tránh tắc đường, tức là tiết kiệm chi phí hơn ngay cả khicostPerKilometercao.Đường chấm màu đỏ có
costPerKilometerthấp vì đây là tuyến đường trực tiếp, nhưngcostPerHourvàcostPerTraveledHourquá cao do thời gian chờ khi tắc đường, khiến đây trở thành tuyến đường tốn kém 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 thông tin tóm tắt về tổng chi phí của các tuyến giao hàng trong 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 optimizeTours cơ bản kết hợp các giá trị được đặt trong trường hợp 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, được chia nhỏ theo các trường yêu cầu liên quan đến chi phí.metrics.totalCost: Tổng chi phí của tất cả các tuyến đường.