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

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.
  • Việc đặt penaltyCost sẽ ưu tiên giao các lô hàng có chi phí cao hơn.
  • Việc không đặt penaltyCost cho lô hàng sẽ khiến lô hàng đó trở thành bắt buộc.
  • Việc đặt penaltyCost cho lô hàng thành 0 một cách rõ ràng sẽ khiến API luôn bỏ qua lô hàng trừ phi các ràng buộc khác yêu cầu.
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

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 đỏ.

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 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ó costPerHourcostPerTraveledHour thấ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ả khi costPerKilometer cao.

  • Đường nét đứt 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 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.