Mô hình chi phí

Các thuộc tính về chi phí được xác định trong ShipmentModel.shipments.Shipment và ShipmentModel.vehicles.Vehicle

Mục tiêu chính của Route Optimization API là tìm ra những 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í chung, chi phí của xe và chi phí vận chuyển.

Các thuộc tính mô hình chi phí hỗ trợ những loại mục tiêu tối ưu hoá sau đây:

  • Phân công xe và tuyến đường hiệu quả
  • Thời gian giao hàng và đến lấy 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 của mô hình chi phí được cấu trúc như sau:

Tài liệu này chỉ nêu bật các thông số mô hình chi phí thiết yếu. Hãy xem tài liệu tham khảo để biết toàn bộ các tham số về chi phí.

Danh sách kiểm tra Essentials

Danh sách kiểm tra sau đây mô tả kiến thức cần thiết giúp bạn tránh được những sai lầm 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í cho mỗi Nội dung mô tả về cơ sở lưu trú
Shipment penaltyCost số Đã bỏ qua lô hàng Chi phí phát sinh khi bỏ qua lô hàng.
API bỏ qua một lô hàng khi chi phí hoàn thành lô hàng đó vượt quá chi phí phạt.
  • Việc đặt penaltyCost sẽ ưu tiên việc giao các lô hàng có chi phí cao hơn.
  • Nếu không đặt penaltyCost cho lô hàng, thì lô hàng đó sẽ là bắt buộc.
  • Việc đặt rõ ràng một penaltyCost lô hàng thành 0 khiến API luôn bỏ qua lô hàng trừ phi bị ràng buộc bởi các hạn chế khác.
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 một chiếc xe 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 những 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 chiếc xe do tính đơn giản và đầy đủ.
costPerKilometer số Km Chi phí cho mỗi km mà xe đã đi, chẳng hạn như chi phí nhiên liệu và 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ỉ trong thời gian di 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 giúp ư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 kịch bản ví dụ minh hoạ 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.
  • 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ữ thú cưng. Bạn đang tối ưu hoá một tuyến đường cho chiếc xe tải mà bạn dùng để đón những chú chó tại 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 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.

Trong 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à:

Thuộc tính Giá trị Trường hợp
penaltyCost 10 Thể hiện khoản phí phạt mà bạn áp dụng cho khách hàng vì không đến nhận chú cún vào ngày đã hẹn. Mỗi khi bạn không đến đón chú cún vào ngày đã hẹn, khách hàng sẽ được giảm 40 đô la trong tổng số tiền dịch vụ.
fixedCost 30 Biểu thị 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 Thể hiện 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 cho mỗi 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 người lái xe 27 đô la mỗi giờ.
costPerTraveledHour 2.5 Thể hiện 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 di chuyển. Bất cứ khi nào xe không di chuyển, người lái xe có thể mở cửa sau và tắt điều hoà không khí.

Dựa trên các thông số về chi phí, trình tối ưu hoá có thể đưa ra những lựa chọn thoả hiệp mà người dùng không nhận thấy, nhưng có thể tìm thấy thông qua quá trình tối ưu hoá.

Sơ đồ sau minh hoạ một ví dụ về trường hợp mà 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 lưu lượng truy cập trên đường nét đứt màu đỏ.

Xe có thể đi theo 2 tuyến đường, một tuyến đường được biểu thị bằng đường nét đứt màu xanh lục (dài hơn nhưng không có sự cố) và một tuyến đường được biểu thị bằng đường chấm màu đỏ (ngắn hơn nhưng có một vụ đụng xe ở giữa).

Trong trường hợp này, số dư chi phí của hai tuyến đường như sau:

  • Đường nét đứt màu xanh lục có costPerHourcostPerTraveledHour thấp vì đây là tuyến đường nhanh, tránh được giao thông. Do đó, tuyến đường này tiết kiệm chi phí hơn ngay cả khi costPerKilometer cao.

  • Đường chấm chấm màu đỏ có costPerKilometer thấp vì đây là tuyến đường trực tiếp, nhưng costPerHourcostPerTraveledHour quá cao do thời gian chờ trong giao thông, khiến tuyến đường 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ũng cung cấp tổng chi phí của các tuyến đường 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 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í của tất cả các tuyến đường cộng lại.