費用模式

成本屬性定義於 ShipmentModel.shipments.Shipment 和 ShipmentModel.vehicles.Vehicle 下方

Route Optimization API 的主要目標是找出成本最低的路線。 因此,成本模型是路徑最佳化的主要推動因素。

成本模型是一組屬性,用於指定全球、車輛和貨運成本。

費用模型屬性支援下列最佳化目標:

  • 有效率地指派車輛和規劃路線
  • 符合成本效益的取貨和配送時間
  • 優先處理重要貨件

結構

如圖所示,費用模型屬性的結構如下:

本文只會著重說明重要的費用模式參數。如需完整的費用參數集,請參閱參考說明文件。

基本檢查清單

以下檢查清單說明基本知識,可避免潛在的費用相關錯誤。這份清單可協助您驗證要求及排解回應問題。

屬性

下表列出並說明成本模式屬性。

有子女 屬性名稱 房源類型 房源說明
Shipment penaltyCost 數字 已略過本月的沖印相片配送訂單 略過出貨所產生的費用。
如果完成運送的成本超過違規費用,API 會略過運送。
  • 設定 penaltyCost 會優先運送運費較高的貨件。
  • 如未設定運送方式 penaltyCost,系統會將運送方式設為必要
  • 如果明確將貨運 penaltyCost 設為零,API 一律會略過貨運,除非其他限制條件要求貨運。
Vehicle fixedCost 數字 運送地址 如果使用這輛車處理貨件,則會套用固定費用。
costPerHour 數字 小時 每小時的車輛營運成本,包括交通、等待、拜訪和休息時間。
如果這項成本增加,最佳化工具會嘗試尋找較快的路線,這些路線可能不是最短路線。
這項屬性簡單完整,可做為有效的單一車輛成本。
costPerKilometer 數字 公里 車輛每行駛一公里的成本,例如燃料費和攤銷的車輛維護成本。
costPerTraveledHour 數字 小時 車輛每小時的營運成本 (僅限行駛期間),不含等待、拜訪和休息時間。系統會優先顯示較快的路線,而非較短的路線。

範例

本節將介紹三種範例:

程式碼範例

下列程式碼範例顯示 Shipment 中費用模型屬性的結構:

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

下列程式碼範例顯示 Vehicle 中費用模型屬性的結構:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

範例情境

本節說明您經營狗狗托兒所的案例。您要為用來從狗狗住家接送牠們的卡車,規劃最佳路線。在這種情況下,您希望最佳化工具在提供路線時,將與接送狗狗和車輛營運相關的成本納入考量。

在這個範例中,一個費用單位代表 1 美元。也就是說,要求中的成本模式屬性值如下:

屬性 情境
penaltyCost 10 如果顧客未在預定日期領回狗狗,你可向他們收取這筆費用。如果未在預定日期接回狗狗,顧客的服務總費用可折抵 $40 美元。
fixedCost 30 代表車輛貸款的每日費用,即每天 30 美元。
costPerKilometer 0.08 代表車輛每公里消耗的汽油量。車輛每行駛一公里需要 0.04 加侖的燃料,而你所在區域的每加侖燃料價格為 2 美元。
costPerHour 27 代表你支付給駕駛的車輛駕駛費用。你每小時支付司機 $27 美元。
costPerTraveledHour 2.5 代表狗狗在車上時,你每小時必須支付的車輛空調費用。車輛停止時,駕駛人可以開啟後車門並關閉空調。

根據費用參數,最佳化工具可能會做出使用者不明顯的取捨,但可透過最佳化找出。

下圖顯示一個範例,當中最佳化工具可能會選擇較長但較快的路線 (綠色虛線),避開紅點線上的車流。

車輛有兩條可能的路線,一條以綠色虛線表示,較長但沒有任何事故;另一條以紅色虛線表示,較短但中間發生車禍。

在這個情境中,兩條路徑的成本平衡如下:

除了提供經濟實惠的路線,最佳化工具也會在回應屬性中,提供運送路線的總成本加總。

要求範例

以下範例顯示基本 optimizeTours 要求的結構,其中包含範例情境中設定的值:

{
  "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
      }
    ]
  }
}

回應屬性

OptimizeToursResponse 訊息具有費用屬性,可說明完成路線過程中產生的費用: