Mô hình chi phí

Các thuộc tính 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í chung, 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:

  • Tuyến đường và việc chỉ định xe hiệu quả
  • Thời gian nhận 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 toàn bộ tập hợp 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 tiềm ẩn 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ề câu trả lờ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 Nội dung 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 sẽ 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 rõ ràng lô hàng penaltyCost thành 0 sẽ khiến API luôn bỏ qua lô hàng trừ phi có 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ý 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 đủ.
costPerKilometer số Km Chi phí mỗi km xe đã đi, có thể đại diện cho chi phí nhiên liệu hoặc chi phí bảo trì xe được phân bổ.
costPerTraveledHour số Giờ Chi phí vận hành xe mỗi giờ chỉ trong khi 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í.
  • 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.
  • 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ó doanh nghiệp trông giữ chó. Bạn đang tối ưu hoá tuyến đường cho 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 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 Đại diện cho khoản phạt mà bạn cung cấp 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ụ mỗi km. Xe của bạn cần 0, 04 gallon mỗi km để di chuyển và chi phí mỗi gallon ở khu vực của bạn là 2 đô la.
costPerHour 27 Đại diện cho số tiền bạn trả cho người lái xe để lái xe của bạn. Bạn trả cho người lái xe 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 hòa 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, người lái xe 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 nhận thấy rõ rà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 tuyến đường dài hơn nhưng nhanh hơn thông qua đường gạch ngang màu xanh lục để tránh giao thông trên đường chấm màu đỏ.

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

Trong tình huống này, số dư chi phí của hai tuyến đường là:

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

  • Đường chấm màu đỏ có costPerKilometer thấp vì đây là tuyến đường trực tiếp, nhưng costPerHour và costPerTraveledHour quá cao do thời gian chờ trong 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ũng 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 yêu cầu optimizeTours cơ bản 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 tuyến đường:

  • metrics.costs: Tổng chi phí trên tất cả các tuyến đường được chia 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.