SkippedShipment

指定解決方案中未執行的出貨作業詳細資料。對於簡單的情況和/或我們能夠找出跳過的原因,我們會在此處回報原因。

JSON 表示法
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ],
  "penaltyCost": number,
  "estimatedIncompatibleVehicleRatio": number
}
欄位
index

integer

該索引會對應至來源 ShipmentModel 中的出貨索引。

label

string

如果 Shipment 中指定了對應的 Shipment.label,則為該 Shipment.label 的副本。

reasons[]

object (Reason)

列出略過運送的原因。請參閱 Reason 上方的留言。如果我們無法瞭解跳過出貨的原因,就不會設定原因。

penaltyCost

number

這是 Shipment.penalty_cost 的副本,我們會將其納入這裡,方便您查看略過出貨的嚴重程度。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

estimatedIncompatibleVehicleRatio

number

由於下列任一原因,無法運送這項貨物的車輛所占的比例。注意:只有在原因涉及車輛時,才需要填寫這項資訊。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

原因

如果我們可以說明出貨作業未完成的原因,會列在這個頁面。如果所有車輛的原因不同,reason 就會有多個元素。跳過的出貨單不得有重複的原因,也就是說,除了 exampleVehicleIndex 以外,所有欄位都必須相同。範例:

reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 1
  exampleExceededCapacityType: "Apples"
}
reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 3
  exampleExceededCapacityType: "Pears"
}
reasons {
  code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
  exampleVehicleIndex: 1
}

跳過的運送作業與所有車輛都不相容。每輛車輛的原因可能不同,但至少有一輛車輛的「蘋果」容量會超出 (包括車輛 1)、至少有一輛車輛的「梨」容量會超出 (包括車輛 3),且至少有一輛車輛的距離限制會超出 (包括車輛 1)。

JSON 表示法
{
  "code": enum (Code),
  "exampleVehicleIndices": [
    integer
  ],
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
欄位
code

enum (Code)

請參閱程式碼的註解。

exampleVehicleIndices[]

integer

exampleVehicleIndex 相同,但我們會提供多輛已識別車輛的清單。這份清單僅列出部分示例。只有在 [fill_example_vehicle_indices_in_skipped_reasons][] 為 true 時,才會填入這個值。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

exampleExceededCapacityType

string

如果原因代碼為 DEMAND_EXCEEDS_VEHICLE_CAPACITY,請記錄超出容量的一種容量類型。

exampleVehicleIndex

integer

如果原因與出貨車輛不相容有關,這個欄位會提供相關車輛的索引。

程式碼

用來識別原因類型的代碼。這裡的順序沒有意義。特別是,如果兩者都適用,它不會指出解決方案中哪個原因會顯示在前面。

列舉
CODE_UNSPECIFIED 請勿使用這項功能。
NO_VEHICLE 模型中沒有車輛,因此無法運送所有貨物。
DEMAND_EXCEEDS_VEHICLE_CAPACITY 出貨需求超過某些容量類型的車輛容量,其中一個是 exampleExceededCapacityType
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

執行這項運送作業所需的最短距離 (即從車輛的 startLocation 到運送作業的取貨和/或送達地點,以及到車輛的終點位置) 超過車輛的 routeDistanceLimit

請注意,我們會使用大地測量距離進行這項計算。

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

執行這項運送作業所需的最短時間 (包括行車時間、等待時間和服務時間) 超過車輛的 routeDurationLimit

注意:系統會以最佳情況計算行程時間,也就是以測地線距離 x 36 公尺/秒 (約 130 公里/小時) 計算。

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT 與上述相同,但我們只比較最短行程時間和車輛的 travelDurationLimit
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS 如果車輛在最早的開始時間開始運送,則在最佳情況下 (請參閱 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT 瞭解時間計算方式),車輛將無法執行這項運送作業:總時間會使車輛在最晚的結束時間過後才結束。
VEHICLE_NOT_ALLOWED 貨運的 allowedVehicleIndices 欄位並未留空,且這輛車輛不屬於該貨運。
VEHICLE_IGNORED

車輛的 ignore 欄位為 true。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

SHIPMENT_IGNORED

出貨的 ignore 欄位為 true。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT

系統會在 injectedSolutionConstraint 中略過該出貨作業。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED

injectedSolutionConstraint 中指定的車輛路線放寬條件不允許插入任何拜訪。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。

ZERO_PENALTY_COST

這筆訂單的罰款費用為零。雖然這項功能可做為進階模擬選項,但也能用於事後說明為何跳過某次出貨。

實驗性功能:這個欄位的行為或存在情形可能會在日後變更。