OptimizeToursResponse

각 차량이 따라간 경로, 건너뛴 배송, 솔루션의 전체 비용이 포함된 순회 최적화 문제를 해결한 후의 응답입니다.

JSON 표현
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
필드
routes[]

object (ShipmentRoute)

각 차량에 대해 계산된 경로. i번째 경로는 모델의 i번째 차량에 해당합니다.

requestLabel

string

요청에 라벨이 지정된 경우 OptimizeToursRequest.label 사본입니다.

skippedShipments[]

object (SkippedShipment)

모든 배송 목록을 건너뛰었습니다.

validationErrors[]

object (OptimizeToursValidationError)

독립적으로 감지할 수 있는 모든 유효성 검사 오류의 목록입니다. OptimizeToursValidationError 메시지에 관한 '오류가 여러 개' 설명을 참고하세요. solvingModeDEFAULT_SOLVE인 경우 오류 대신 경고가 포함됩니다.

metrics

object (Metrics)

이 솔루션의 기간, 거리, 사용량 측정항목

OptimizeToursValidationError

OptimizeToursRequest를 검증할 때 발생한 오류 또는 경고를 설명합니다.

JSON 표현
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
필드
code

integer

유효성 검사 오류는 항상 존재하는 쌍 (code, displayName)으로 정의됩니다.

이 섹션 다음에 있는 필드는 오류에 관한 추가 컨텍스트를 제공합니다.

MULTIPLE ERRORS: 오류가 여러 개 있는 경우 유효성 검사 프로세스에서 여러 오류를 출력하려고 시도합니다. 컴파일러와 마찬가지로 이는 불완전한 프로세스입니다. '치명적인' 유효성 검사 오류는 전체 유효성 검사 프로세스를 중단한다는 의미입니다. 특히 displayName="UNSPECIFIED" 오류가 여기에 해당합니다. 일부 오류는 유효성 검사 프로세스에서 다른 오류를 건너뛸 수 있습니다.

안정성: codedisplayName는 매우 안정적이어야 합니다. 하지만 시간이 지나면서 새 코드와 표시 이름이 나타날 수 있으며, 이 경우 주어진 (잘못된) 요청으로 인해 다른 (code, displayName) 쌍이 생성될 수 있습니다. 새 오류로 인해 이전 쌍이 숨겨져 있기 때문입니다. 예는 '여러 오류'를 참조하세요.

displayName

string

오류 표시 이름입니다.

fields[]

object (FieldReference)

오류 컨텍스트에는 0개, 1개 (대부분의 경우) 이상의 필드가 포함될 수 있습니다. 예를 들어 차량 4번과 배송 2번의 첫 번째 수령을 참조하는 방법은 다음과 같습니다.

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

그러나 특정 오류 코드에서 fields의 카디널리티는 변경되어서는 안 됩니다.

errorMessage

string

사람이 읽을 수 있는 오류를 설명하는 문자열입니다. codeerrorMessage는 일대일 매핑 관계입니다(code != 'UNSPECIFIED'인 경우).

안정성: 안정적이지 않음. 주어진 code와 관련된 오류 메시지가 시간이 지남에 따라 변경될 수 있습니다. 대신 displayNamecode를 사용하세요.

offendingValues

string

필드의 값을 포함할 수 있습니다. 항상 사용 가능한 것은 아닙니다. 이 모델에 절대 의존하지 말고 수동 모델 디버깅에만 사용해야 합니다.

FieldReference

유효성 검사 오류의 컨텍스트를 지정합니다. FieldReference는 항상 이 파일의 지정된 필드를 참조하며 동일한 계층 구조를 따릅니다. 예를 들어 다음을 사용하여 차량 5의 startTimeWindows 요소 2를 지정할 수 있습니다.

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

그러나 OptimizeToursRequest 또는 ShipmentModel과 같은 최상위 항목은 메시지 혼잡을 방지하기 위해 생략합니다.

JSON 표현
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
필드
name

string

필드 이름입니다. 예: 'vehicles'.

subField

object (FieldReference)

필요한 경우 중첩된 하위 필드를 재귀적으로 중첩합니다.

통합 필드 index_or_key.

index_or_key는 다음 중 하나여야 합니다.

index

integer

반복되는 경우 필드의 색인입니다.

key

string

필드가 맵인 경우 키입니다.

측정항목

모든 경로에서 집계된 전체 측정항목입니다.

JSON 표현
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
필드
aggregatedRouteMetrics

object (AggregatedMetrics)

경로별로 집계됩니다. 각 측정항목은 동일한 이름의 모든 ShipmentRoute.metrics 필드에 대한 합계 (또는 로드의 경우 최댓값)입니다.

skippedMandatoryShipmentCount

integer

건너뛴 필수 배송 건수입니다.

usedVehicleCount

integer

사용된 차량 수입니다. 참고: 차량 경로가 비어 있고 Vehicle.used_if_route_is_empty이 true인 경우 차량이 사용된 것으로 간주됩니다.

earliestVehicleStartTime

string (Timestamp format)

중고차의 가장 빠른 시작 시간으로, 모든 중고차 ShipmentRoute.vehicle_start_time의 최솟값으로 계산됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

latestVehicleEndTime

string (Timestamp format)

중고차의 최신 종료 시간으로, 모든 중고차 ShipmentRoute.vehicle_end_time의 최대값으로 계산됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

costs

map (key: string, value: number)

비용 관련 요청 입력란별로 분류된 솔루션 비용입니다. 키는 입력 최적화 도구 투어 요청(예: 'model.shipments.pickups.cost')을 기준으로 한 프로토콜 경로(예: 'model.shipments.pickups.cost')이며 값은 해당 비용 필드에서 생성되어 전체 솔루션에 대해 집계된 총 비용입니다. 즉, costs["model.shipments.pickups.cost"]는 솔루션의 모든 수령 비용의 합계입니다. 모델에 정의된 모든 비용은 여기에서 자세히 보고됩니다. 단, 2022년 1월 기준으로 집계 방식으로만 보고되는 TransitionAttributes 관련 비용은 예외입니다.

totalCost

number

솔루션의 총비용입니다. 비용 맵의 모든 값의 합계입니다.