각 차량이 따라간 경로, 건너뛴 배송, 솔루션의 전체 비용이 포함된 순회 최적화 문제를 해결한 후의 응답입니다.
| JSON 표현 | 
|---|
{ "routes": [ { object (  | 
            
| 필드 | |
|---|---|
routes[] | 
              
                 
 각 차량에 대해 계산된 경로. i번째 경로는 모델의 i번째 차량에 해당합니다.  | 
            
requestLabel | 
              
                 
 요청에 라벨이 지정된 경우   | 
            
skippedShipments[] | 
              
                 
 모든 배송 목록을 건너뛰었습니다.  | 
            
validationErrors[] | 
              
                 
 독립적으로 감지할 수 있는 모든 유효성 검사 오류의 목록입니다.   | 
            
metrics | 
              
                 
 이 솔루션의 기간, 거리, 사용량 측정항목  | 
            
OptimizeToursValidationError
OptimizeToursRequest를 검증할 때 발생한 오류 또는 경고를 설명합니다.
| JSON 표현 | 
|---|
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
              
| 필드 | |
|---|---|
code | 
                
                   
 유효성 검사 오류는 항상 존재하는 쌍 ( 이 섹션 다음에 있는 필드는 오류에 관한 추가 컨텍스트를 제공합니다. MULTIPLE ERRORS: 오류가 여러 개 있는 경우 유효성 검사 프로세스에서 여러 오류를 출력하려고 시도합니다. 컴파일러와 마찬가지로 이는 불완전한 프로세스입니다. '치명적인' 유효성 검사 오류는 전체 유효성 검사 프로세스를 중단한다는 의미입니다. 특히  안정성:   | 
              
displayName | 
                
                   
 오류 표시 이름입니다.  | 
              
fields[] | 
                
                   
 오류 컨텍스트에는 0개, 1개 (대부분의 경우) 이상의 필드가 포함될 수 있습니다. 예를 들어 차량 4번과 배송 2번의 첫 번째 수령을 참조하는 방법은 다음과 같습니다. 그러나 특정 오류 코드에서   | 
              
errorMessage | 
                
                   
 사람이 읽을 수 있는 오류를 설명하는 문자열입니다.  안정성: 안정적이지 않음. 주어진   | 
              
offendingValues | 
                
                   
 필드의 값을 포함할 수 있습니다. 항상 사용 가능한 것은 아닙니다. 이 모델에 절대 의존하지 말고 수동 모델 디버깅에만 사용해야 합니다.  | 
              
FieldReference
유효성 검사 오류의 컨텍스트를 지정합니다. FieldReference는 항상 이 파일의 지정된 필드를 참조하며 동일한 계층 구조를 따릅니다. 예를 들어 다음을 사용하여 차량 5의 startTimeWindows 요소 2를 지정할 수 있습니다.
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
그러나 OptimizeToursRequest 또는 ShipmentModel과 같은 최상위 항목은 메시지 혼잡을 방지하기 위해 생략합니다.
| JSON 표현 | 
|---|
{ "name": string, "subField": { object (  | 
              
| 필드 | |
|---|---|
name | 
                
                   
 필드 이름입니다. 예: 'vehicles'.  | 
              
subField | 
                
                   
 필요한 경우 중첩된 하위 필드를 재귀적으로 중첩합니다.  | 
              
통합 필드  
  | 
              |
index | 
                
                   
 반복되는 경우 필드의 색인입니다.  | 
              
key | 
                
                   
 필드가 맵인 경우 키입니다.  | 
              
측정항목
모든 경로에서 집계된 전체 측정항목입니다.
| JSON 표현 | 
|---|
{
  "aggregatedRouteMetrics": {
    object ( | 
              
| 필드 | |
|---|---|
aggregatedRouteMetrics | 
                
                   
 경로별로 집계됩니다. 각 측정항목은 동일한 이름의 모든   | 
              
skippedMandatoryShipmentCount | 
                
                   
 건너뛴 필수 배송 건수입니다.  | 
              
usedVehicleCount | 
                
                   
 사용된 차량 수입니다. 참고: 차량 경로가 비어 있고   | 
              
earliestVehicleStartTime | 
                
                   
 중고차의 가장 빠른 시작 시간으로, 모든 중고차  RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면   | 
              
latestVehicleEndTime | 
                
                   
 중고차의 최신 종료 시간으로, 모든 중고차  RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면   | 
              
costs | 
                
                   
 비용 관련 요청 입력란별로 분류된 솔루션 비용입니다. 키는 입력 최적화 도구 투어 요청(예: 'model.shipments.pickups.cost')을 기준으로 한 프로토콜 경로(예: 'model.shipments.pickups.cost')이며 값은 해당 비용 필드에서 생성되어 전체 솔루션에 대해 집계된 총 비용입니다. 즉, costs["model.shipments.pickups.cost"]는 솔루션의 모든 수령 비용의 합계입니다. 모델에 정의된 모든 비용은 여기에서 자세히 보고됩니다. 단, 2022년 1월 기준으로 집계 방식으로만 보고되는 TransitionAttributes 관련 비용은 예외입니다.  | 
              
totalCost | 
                
                   
 솔루션의 총비용입니다. 비용 맵의 모든 값의 합계입니다.  |