SkippedShipment

솔루션에서 실행되지 않은 배송의 세부정보를 지정합니다. 사소한 케이스이거나 건너뛰는 이유를 파악할 수 있는 경우 여기에 이유를 보고합니다.

JSON 표현
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ],
  "penaltyCost": number,
  "estimatedIncompatibleVehicleRatio": number
}
필드
index

integer

색인은 소스 ShipmentModel의 배송 색인에 해당합니다.

label

string

Shipment에 지정된 경우 해당 Shipment.label의 사본입니다.

reasons[]

object (Reason)

배송이 건너뛴 이유를 설명하는 이유 목록입니다. Reason 위의 주석을 참고하세요. 배송이 건너뛴 이유를 파악할 수 없는 경우 이유가 설정되지 않습니다.

penaltyCost

number

건너뛴 배송의 심각성을 더 쉽게 확인할 수 있도록 여기에 포함된 Shipment.penalty_cost의 사본입니다.

실험용: 이 필드의 동작 또는 존재 여부는 향후 변경될 수 있습니다.

estimatedIncompatibleVehicleRatio

number

아래 이유 중 하나 이상으로 인해 이 배송을 수행할 수 없는 차량의 예상 비율입니다. 참고: 차량이 관련된 이유인 경우에만 작성합니다.

실험용: 이 필드의 동작 또는 존재 여부는 향후 변경될 수 있습니다.

이유

배송이 건너뛴 이유를 설명할 수 있는 경우 여기에 이유가 표시됩니다. 모든 차량의 이유가 동일하지 않은 경우 reason에는 2개 이상의 요소가 있습니다. 건너뛴 배송에는 중복된 이유가 있을 수 없습니다. 즉, 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

배송 차량 비호환성과 관련된 이유인 경우 이 필드에 관련 차량 1대의 색인이 표시됩니다.

코드

이유 유형을 식별하는 코드입니다. 여기서 순서는 의미가 없습니다. 특히 두 가지 이유가 모두 적용되는 경우 솔루션에서 어떤 이유가 먼저 표시될지 나타내지 않습니다.

열거형
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 36m/s (약 130km/h)로 계산됩니다.

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

배송에 대한 패널티 비용은 0입니다. 이는 고급 모델링 선택으로 유용하지만 배송이 건너뛴 이유를 사후에 설명할 수도 있습니다.

실험용: 이 필드의 동작 또는 존재 여부는 향후 변경될 수 있습니다.