解讀 Route Optimization API 回應... 狗狗版

歐洲經濟區 (EEA) 開發人員

正式環境注意事項

為求簡單起見,本指南使用 REST 和 JSON。不過,在正式環境中,建議您使用 gRPC 和用戶端程式庫,以獲得更佳效能。詳情請參閱 Route Optimization API 用戶端程式庫。

在「發出第一項要求」中傳送要求後,最佳化工具會傳回 OptimizeToursResponse。這項回應是司機要遵循的路線規劃。本指南說明如何解讀。

路徑規劃摘要

在狗狗托育情境中,最佳化工具會將伯恩山犬和吉娃娃指派給貨車,並略過德國牧羊犬。司機的路線規劃如下:

  • 早上 7:55 在托兒中心開始值班。
  • 早上 8:20 在柯伊特塔附近接伯恩山犬。
  • 上午 8:58 在南日落遊樂場公園接吉娃娃。
  • 上午 9:24 抵達托兒中心,等待上午 9:30 開放接送。
  • 上午 9:30 送伯恩山犬。
  • 上午 9:35 讓吉娃娃下車。
  • 上午 9:40 結束輪班。

路線方案費用為 $147.22 美元,包括因略過德國牧羊犬而產生的 $100 美元罰款。

如要檢查結果,請將您的回覆與完整範例回覆進行比較。行程時間和距離取決於目前的道路資料,因此結果可能會略有不同。

完整回應範例

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T15:55:04Z",
      "vehicleEndTime": "2024-02-13T17:40:00Z",
      "visits": [
        {
          "isPickup": true,
          "startTime": "2024-02-13T16:20:00Z",
          "detour": "0s",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "isPickup": true,
          "startTime": "2024-02-13T16:58:12Z",
          "detour": "2600s",
          "shipmentLabel": "Chihuahua",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "startTime": "2024-02-13T17:30:00Z",
          "detour": "2297s",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "DELIVER_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "startTime": "2024-02-13T17:35:00Z",
          "detour": "656s",
          "shipmentLabel": "Chihuahua",
          "visitType": "DELIVER_SHIPMENT"
        }
      ],
      "transitions": [
        {
          "travelDuration": "1496s",
          "travelDistanceMeters": 7082,
          "waitDuration": "0s",
          "totalDuration": "1496s",
          "startTime": "2024-02-13T15:55:04Z"
        },
        {
          "travelDuration": "1992s",
          "travelDistanceMeters": 16589,
          "waitDuration": "0s",
          "totalDuration": "1992s",
          "startTime": "2024-02-13T16:25:00Z"
        },
        {
          "travelDuration": "1252s",
          "travelDistanceMeters": 7860,
          "waitDuration": "356s",
          "totalDuration": "1608s",
          "startTime": "2024-02-13T17:03:12Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2024-02-13T17:35:00Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2024-02-13T17:40:00Z"
        }
      ],
      "metrics": {
        "performedShipmentCount": 2,
        "travelDuration": "4740s",
        "waitDuration": "356s",
        "delayDuration": "0s",
        "breakDuration": "0s",
        "visitDuration": "1200s",
        "totalDuration": "6296s",
        "travelDistanceMeters": 31531,
        "performedShipmentPenaltyCostSum": 2000
      },
      "routeCosts": {
        "model.vehicles.cost_per_hour": 47.22
      },
      "routeTotalCost": 47.22,
      "vehicleFullness": {
        "maxFullness": 0.3497777777777778,
        "activeSpan": 0.3497777777777778
      }
    }
  ],
  "skippedShipments": [
    {
      "index": 2,
      "label": "German shepherd",
      "penaltyCost": 100
    }
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 2,
      "travelDuration": "4740s",
      "waitDuration": "356s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "1200s",
      "totalDuration": "6296s",
      "travelDistanceMeters": 31531,
      "performedShipmentPenaltyCostSum": 2000
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2024-02-13T15:55:04Z",
    "latestVehicleEndTime": "2024-02-13T17:40:00Z",
    "totalCost": 147.22,
    "costs": {
      "model.vehicles.cost_per_hour": 47.22,
      "model.shipments.penalty_cost": 100
    }
  }
}
    

回應結構

OptimizeToursResponse 包含 ShipmentRoute 物件 (內含 visits 訊息類型) 和 Metrics 物件 (內含 aggregatedRouteMetrics 和 totalCost)。

OptimizeToursResponse 包含兩個主要元件:

  • routes:車隊中每輛車的路線規劃,包括每次取貨和送貨的順序和時間。您有一輛貨車,因此有一項路線規劃。
  • metrics:整個路線規劃的摘要,包括總費用、時間長度和距離。

由於最佳化工具會略過德國牧羊犬,因此回應也會包含 skippedShipments。

以下各節說明如何在回應中找到路線規劃摘要的各項詳細資料。

哪輛車行駛哪條路線?

最佳化工具會產生路線規劃 (routes 陣列),對應要求中的 vehicles 順序。

vehicleIndex 欄位會根據車輛的零基準位置識別每輛車,貨車的位置為 0。vehicleStartTime 和 vehicleEndTime 欄位會指示司機何時開始和結束輪班。

無論要求中的時差為何,Route Optimization API 都會傳回世界標準時間 (UTC) 的時間戳記,並加上 Z 後置字元。如要取得舊金山時間,請減去 8 小時。貨車的班次時間為上午 7:55 到 9:40,如以下程式碼範例所示。

{
"routes": [
    {
    // "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
    "vehicleStartTime": "2024-02-13T15:55:04Z",
    "vehicleEndTime": "2024-02-13T17:40:00Z",
    ...
    }
  ]
  ...
}

上車和下車順序為何?

在每條路線中,visits 陣列會按照時間順序,包含指派車輛的所有取貨和送貨作業。

每次造訪的 shipmentIndex 是要求中貨件的零基位置:0 是伯恩山犬,1 是吉娃娃。shipmentLabel 欄位會顯示你為每筆運送設定的標籤。

如要區分上車和下車 (或送達),可以查看 visitType 或 isPickup 欄位:

  • visitType:明確定義造訪動作。
    • 自取:visitType = "PICKUP_SHIPMENT"
    • Delivery: visitType = "DELIVER_SHIPMENT"
  • isPickup:布林值輔助欄位。
    • 自取:isPickup = true
    • Delivery:isPickup = false (在 JSON 中省略)

如要判斷事件的確切順序和每個地點的預計抵達時間,請依序讀取 visits 陣列。下表根據 shipmentIndex、isPickup 或 visitType 和 startTime 欄位的順序和值,顯示路線方案動作。

序列 shipmentIndex值 isPickup 或 visitType 值 startTime值 (世界標準時間) 動作
首次造訪 0 (在 JSON 中省略) True 或 PICKUP_SHIPMENT 2024-02-13T16:20:00Z 上午 8:20 接伯恩山犬。
第二次造訪 1 True 或 PICKUP_SHIPMENT 2024-02-13T16:58:12Z 上午 8:58 接吉娃娃。
第三次造訪 0 (在 JSON 中省略) False (省略) 或 DELIVER_SHIPMENT 2024-02-13T17:30:00Z 上午 9:30 送伯恩山犬去狗狗托育中心。
第四次造訪 1 False (省略) 或 DELIVER_SHIPMENT 2024-02-13T17:35:00Z 上午 9:35 送吉娃娃去狗狗托育中心。

以下程式碼範例說明回應如何提供這個序列:

{
  "routes": [
    {
      "visits": [
        {
          // "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
          "isPickup": true,
          "startTime": "2024-02-13T16:20:00Z",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "isPickup": true,
          "startTime": "2024-02-13T16:58:12Z",
          "shipmentLabel": "Chihuahua",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          // "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
          // "isPickup": false, // Omitted in actual JSON response because it's false
          "startTime": "2024-02-13T17:30:00Z",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "DELIVER_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          // "isPickup": false, // Omitted in actual JSON response because it's false
          "startTime": "2024-02-13T17:35:00Z",
          "shipmentLabel": "Chihuahua",
          "visitType": "DELIVER_SHIPMENT"
        }
      ]
    }
  ]
}

每次造訪也都有 visitRequestIndex,這是最佳化工具為運送作業選擇的取貨或送貨選項位置 (從零開始)。在這個情境中,每隻狗都只有一個接送選項和一個送達選項,因此 visitRequestIndex 一律為 0,回應會省略這個值。

兩次造訪之間會發生什麼事?

在每條路線中,transitions 陣列會列出造訪地點之間的行程詳細資料。雖然 visits 和 transitions 是不同的清單,但兩者在時間上會交錯,如下所示:

  1. transitions[0] (從起點到第一個造訪地點的行車路線)
  2. visits[0] (初次造訪)
  3. transitions[1] (促成初次造訪到第二次造訪)
  4. visits[1] (第二次造訪)
  5. ...
  6. visits[N-1] (上次造訪,N 是總造訪次數)
  7. transitions[N] (從最後一個造訪地點開車到終點)

您可以查看兩個陣列中的 startTime 欄位,追蹤路線的時間軸。轉移的 startTime 是指司機開始行程的時間,而造訪的 startTime 是指司機開始接送乘客的時間。

每個轉場效果都會顯示地點之間的預估行車時間和距離。 下表將 transitions 和 visits 欄位對應至寵物托育情境的時間順序路線動作。

序列 欄位名稱 startTime值 (世界標準時間) 詳細資料 動作
首次轉換 transitions[0] 2024-02-13T15:55:04Z travelDuration:1496s
travelDistanceMeters:7082
從托育中心開車 7 公里 (25 分鐘) 去接伯恩山犬。班表從上午 7:55 開始。
初次造訪 visits[0] 2024-02-13T16:20:00Z shipmentIndex:0 (在 JSON 中省略)
isPickup:True
上午 8:20 起接伯恩山犬,預計花費 5 分鐘。
第二次轉換 transitions[1] 2024-02-13T16:25:00Z travelDuration:1992s
travelDistanceMeters:16589
上午 8:25 從柯伊特塔出發,開車 17 公里 (33 分鐘) 去接吉娃娃。
第二次造訪 visits[1] 2024-02-13T16:58:12Z shipmentIndex:1
isPickup:True
上午 8:58 起接吉娃娃,行程需要 5 分鐘。
第三次轉換 transitions[2] 2024-02-13T17:03:12Z travelDuration:1252 秒
travelDistanceMeters:7860
waitDuration:356 秒
上午 9:03 從南日落遊樂場出發,行駛 8 公里 (21 分鐘) 返回托兒中心。上午 9:24 抵達,等待 6 分鐘後,下車時段開始。
第三次造訪 visits[2] 2024-02-13T17:30:00Z shipmentIndex:0 (在 JSON 中省略)
isPickup:False (在 JSON 中省略)
上午 9:30 起,將伯恩山犬送到狗狗托育中心。這項行程需要 5 分鐘。
第四次轉換 transitions[3] 2024-02-13T17:35:00Z travelDuration:0 秒
travelDistanceMeters:0 (在 JSON 中省略)
不開車。準備在上午 9:35 將吉娃娃送到托育中心。
第四次造訪 visits[3] 2024-02-13T17:35:00Z shipmentIndex:1
isPickup:False (在 JSON 中省略)
上午 9:35 起,將吉娃娃送至狗狗托育中心。停留時間為 5 分鐘。
第五次轉換 transitions[4] 2024-02-13T17:40:00Z travelDuration:0 秒
travelDistanceMeters:0 (在 JSON 中省略)
不開車。司機在上午 9:40 下班。

以下程式碼範例說明回應如何為 transitions[0] 和 transitions[1] 提供這個序列:

{
  "routes": [
    {
      "transitions": [
        {
          "travelDuration": "1496s",
          "travelDistanceMeters": 7082,
          "waitDuration": "0s",
          "totalDuration": "1496s",
          "startTime": "2024-02-13T15:55:04Z"
        },
        {
          "travelDuration": "1992s",
          "travelDistanceMeters": 16589,
          "waitDuration": "0s",
          "totalDuration": "1992s",
          "startTime": "2024-02-13T16:25:00Z"
        },
        ...
      ]
    }
  ]
}

路線費用是多少?

您可以根據需要特定車輛的費用,還是整個車隊的總費用,查看回應中的多個欄位。

下表列出在回應中尋找費用資訊的所有方式:

父項 參數 範圍 說明
ShipmentRoute routeCosts 每條路徑 該特定路線的具體費用明細 (例如每小時費用)。
routeTotalCost 每條路徑 該特定路徑的總費用。
Metrics totalCost 總計 (所有路徑) 解決方案中所有路線的匯總總費用。
costs 總計 (所有路徑) 解決方案中所有路線的匯總費用組成細目。

routeCosts 和 costs 中指定的費用反映您在要求中指定的費用限制。詳情請參閱成本模式重要概念文件。

在這個狗狗托育情境中,由於您略過了一次運送,因此每條路線的費用和匯總總費用會有所不同。路線費用僅包含與該特定路線相關的費用 (司機薪資),而匯總總費用也包含略過運送的罰款。以下程式碼範例說明如何在回應中找到這些值:

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T15:55:04Z",
      "vehicleEndTime": "2024-02-13T17:40:00Z",
      ...
      "routeCosts": {
        "model.vehicles.cost_per_hour": 47.22
      },
      "routeTotalCost": 47.22
    }
  ],
  "metrics": {
    "totalCost": 147.22,
    "costs": {
      "model.shipments.penalty_cost": 100,
      "model.vehicles.cost_per_hour": 47.22
    },
    ...
  }
}

根據路線計畫,司機從上午 7:55 到上午 9:40 駕駛貨車,約 1 小時 45 分鐘 (6296 秒)。按照您定義的每小時 $27 美元費率,路線費用為 $47.22 美元。由於最佳化工具略過德國牧羊犬的運送,因此會加上 $100 美元的罰款費用,使匯總總費用達到 $147.22 美元。

為什麼略過出貨?

最佳化工具會在 skippedShipments 陣列中列出未執行的任何運送作業。略過出貨的原因取決於你是否設定 penaltyCost:

  • 強制運送 (無 penaltyCost):最佳化工具絕不會因為執行成本高昂而略過這些運送。只有在無法將貨件排入任何路線時 (例如時間範圍與其他貨件衝突),才會略過。
  • 選用運送 (標有 penaltyCost):如果執行這些運送的成本高於罰款,最佳化工具也可以略過這些運送。您可以設定不同的罰款費用,優先處理某些運送作業。

在這個情境中,德國牧羊犬的接送時段與伯恩山犬的時段衝突。柯伊特塔和蘭茲角相距 25 分鐘,因此司機無法在 20 分鐘內完成兩次接送。最佳化工具必須略過其中一個。由於德國牧羊犬的罰款費用較低 (一般客戶為 $1,000 美元,德國牧羊犬為 $100 美元),最佳化工具會略過該客戶,並產生 $100 美元的罰款。

以下程式碼範例顯示回應中的 skippedShipments 物件:

{
  ...
  "skippedShipments": [
    {
      "index": 2,
      "label": "German shepherd",
      "penaltyCost": 100
    }
  ],
  ...
}

回應中的 skippedShipments 物件包含下列欄位:

  • index:要求中貨件的索引 (從零開始),2 代表第三個貨件。
  • label:您在要求中指定的標籤 (「German shepherd」)。
  • penaltyCost:您在要求中指定的罰款費用,API 會將這筆費用加到總費用中。

如要避免最佳化工具略過運送作業,請放寬導致衝突的限制。舉例來說,您可以要求德國牧羊犬的飼主提供更彈性的接送時間,然後在要求中更新該接送行程的 timeWindows。

範例中的回應欄位

下表說明範例情境中 OptimizeToursResponse 傳回的所有回應欄位。雖然您不需要使用每個欄位來瞭解路線規劃,但可以分析這些欄位,判斷如何調整 OptimizeToursRequest 以符合業務需求。詳情請參閱「路線規劃生命週期」。

您可以依父項或文字搜尋篩選內容。

父項 參數 資源類型 說明
OptimizeToursResponse routes 物件陣列 (ShipmentRoute) 其中包含為每輛車計算的路線清單 (每輛車一條)。在這個狗狗托育情境中,這包含單一廂型車的詳細路線規劃。
metrics 物件 (Metrics) 其中包含解決方案的整體指標,彙整了所有路徑的資料。以這個狗狗托育中心情境來說,這是當天的費用和營運時間摘要。
skippedShipments 物件陣列 (SkippedShipment) 其中包含解決方案中略過的運送清單。 在這個情境中,系統會略過第三隻狗 (德國牧羊犬)。
ShipmentRoute vehicleStartTime 時間戳記 這是車輛開始行駛路線的時間。在這個狗狗托育情境中,司機在上午 7:55 開始駕駛廂型車。
vehicleEndTime 時間戳記 這是車輛完成路線的時間。在這個狗狗托育情境中,司機在上午 9:40 結束駕駛廂型車。
visits 物件陣列 (Visit) 這是路線上取貨和送貨的已排序的清單。在這個狗狗托育情境中,這是接送兩隻狗的順序。
transitions 物件陣列 (Transition) 這是造訪之間的距離、行程和等待時間的排序清單。以這個狗狗托育情境為例,這份報表會詳細列出柯伊特塔、南日落遊樂場公園和托育中心之間的行車距離和時間。
metrics 物件 (AggregatedMetrics) 這些指標僅適用於這條路線。以這個狗狗托育情境為例,以下是這輛貨車的統計資料。這些指標是根據您在要求中指定的費用計算。詳情請參閱成本模式重要概念文件。
routeCosts 物件 (地圖) 這是這條路線的具體費用明細。在這個狗狗托育情境中,這項指標顯示根據司機時薪 $27 美元計算的費用。
routeTotalCost 數字 這是這條特定路線的總費用。在這個狗狗托育情境中,這輛廂型車路線的總費用為 47.22。
vehicleFullness 物件 (VehicleFullness) 這項指標會細分車輛與作業限制 (例如時間、距離和負載) 的接近程度。在這個狗狗托育情境中,只有班次開始和結束時間會限制司機,因此最佳化工具會將 vehicleFullness 計算為實際路線時間長度與司機班次可用時間上限的比例。
Visit shipmentIndex 整數 這是原始要求中貨件的索引 (從零開始)。在這個狗狗托育中心情境中,0 代表伯恩山犬,1 代表吉娃娃。
isPickup 布林值 如果這筆造訪是取貨,這個欄位會設為 True。在這個狗狗托育情境中,接走狗狗時為 true,將狗狗送到托育中心時為 false (或缺少)。
startTime 時間戳記 這是預估的造訪開始時間。以這個狗狗托育情境來說,就是司機敲門的時候。
detour 時間長度 這是最佳化工具為這項特定運送行程增加的額外時間。繞道是指實際路線規劃與理想直達行程之間的差異,前提是司機沒有其他運送或工作要完成。

在這個狗狗托育情境中,第一個行程是接送伯恩山犬,繞道距離為 0,因為司機直接從托育中心前往這個接送地點。載吉娃娃時,繞道時間為 43 分鐘,因為司機會先載伯恩山犬 (並花 5 分鐘上車)。
shipmentLabel 字串 這是每筆運送要求的標籤。在這個狗狗托育情境中,標籤為「吉娃娃」或「伯恩山犬」。
visitType 字串 (列舉) 這代表造訪類型,可以是 PICKUP_SHIPMENT (取貨) 或 DELIVER_SHIPMENT (送貨)。在這個情境中,值為 PICKUP_SHIPMENT 或 DELIVER_SHIPMENT。
Transition travelDuration 時間長度 這是指在兩次造訪之間移動所花費的時間。舉例來說,在這個狗狗托育情境中,司機從托育中心開車到柯伊特塔接伯恩山犬,大約需要 25 分鐘。
travelDistanceMeters 整數 這是這段轉換期間移動的距離 (以公尺為單位)。舉例來說,在這個狗狗托育情境中,司機從托育中心出發,行駛 7 公里到柯伊特塔接伯恩山犬。
waitDuration 時間長度 這是指在下次取貨或送達前等待的時間。以這個狗狗托育情境來說,第三次轉換的時間為 6 分鐘 (356 秒),因為司機在上午 9:30 送達時間範圍開始前就抵達托育中心。其他轉換的值則為 0。
totalDuration 時間長度 這是轉換的總時間長度,包括駕駛和等待時間。舉例來說,司機在第一次轉換時花了 25 分鐘 (25 分鐘行駛,0 分鐘等待),在第三次轉換返回托兒所時花了 27 分鐘 (21 分鐘行駛,6 分鐘等待)。
startTime 時間戳記 這是行程開始的時間。這項資訊會與前一次造訪的完成時間一致 (如果是第一次轉移,則與車輛的開始時間一致)。以狗狗日托中心情境為例,第一次轉換從上午 7:55 開始,也就是司機離開日托中心時,第二次轉換則從上午 8:25 開始,也就是司機離開柯伊特塔時。
Metrics aggregatedRouteMetrics 物件 (AggregatedMetrics) 這是所有路徑的指標總和。以這個狗狗托育服務情境來說,這些是單一貨車的總指標。
usedVehicleCount 整數 這是解決方案中使用的車輛數量。在這個狗狗托育情境中,您只需要使用一輛貨車。
earliestVehicleStartTime 時間戳記 這是所有車輛中最早的開始時間。在這個狗狗托育情境中,廂型車的路線從上午 7:55 開始。
latestVehicleEndTime 時間戳記 這是所有車輛中最晚的結束時間。在這個狗狗托育情境中,貨車的路線會在上午 9:40 結束。
totalCost 數字 這是解決方案的總費用。在這個狗狗托育情境中,整個路線規劃當天的費用為 147.22 (包括 47.22 司機薪資和 100 略過運送罰款)。
costs 物件 (地圖) 這是依類別劃分的總費用明細。在這個狗狗托育情境中,最佳化工具會根據每小時費用和略過德國牧羊犬的罰款費用,計算路線費用。
AggregatedMetrics performedShipmentCount 整數 這是成功轉送的運送數量。在這個狗狗托育情境中,司機要載送兩隻狗。
travelDuration 時間長度 這是指總行程時間。在這個狗狗托育情境中,司機的行駛時間為 79 分鐘。
waitDuration 時間長度 這是等待時間總和。在這個狗狗托育情境中,司機在托育中心怠速 6 分鐘 (356 秒),等待托育中心開門。
delayDuration 時間長度 這是您使用轉場屬性定義的額外時間長度,例如預留的停車時間。在這個狗狗托育情境中,您並未在要求中定義任何轉換屬性,因此這個值為零。
breakDuration 時間長度 這是休息時間的總時長。在這個狗狗托育情境中,沒有任何休息時間。
visitDuration 時間長度 這是指在造訪期間提供服務的總時間。以這個狗狗托育情境為例,這個值為 20 分鐘 (每次造訪 5 分鐘,共 4 次)。
totalDuration 時間長度 這是所有時間長度元件的總和。以這個狗狗托育情境為例,總時間長度為 105 分鐘 (6296 秒)。
travelDistanceMeters 整數 這是總移動距離,以公尺為單位。在這個狗狗托育情境中,司機行駛的總距離為 31.5 公里。
performedShipmentPenaltyCostSum 雙人床 這是所有已執行運送作業的罰款費用總和。在這個情境中,司機載了伯恩山犬和吉娃娃 (每隻的罰款費用為 1000),因此罰款費用為 2000。
VehicleFullness maxFullness 數字 這是所有 VehicleFullness 欄位中最高的利用率。在這個狗狗托育情境中,這個值為 0.35,因為司機在整個早班中只駕駛貨車 105 分鐘,而您在要求中定義的早班時間為 5 小時。
activeSpan 數字 這是司機總班次長度與路線方案營運時間的比率。數字越低,表示駕駛人在工作天操作車輛的時間越短。以這個狗狗托育情境為例,司機在 5 小時的班次中駕駛貨車 105 分鐘,因此這個值為 0.35。
SkippedShipment index 整數 這是原始要求中以零為基準的運送索引。 在這個情境中,2 代表德國牧羊犬。
label 字串 這是您在要求中為貨品指定的標籤。
penaltyCost 數字 最佳化工具略過這筆運送訂單時,您會產生這項罰款費用。這會與您在要求中指定的 penaltyCost 相符。