요청 메시지 작성

경로 최적화 개요에 간단히 설명한 것처럼 기본 요청은 Model, Shipment, Vehicles로 필수 항목으로 구성됩니다.

  • 모델ShipmentsVehicles를 모두 포함하여 전체 요청의 설정과 제약조건을 캡처합니다.
  • 배송은 수령 및 배송 VisitRequest가 포함된 작업 또는 실제 배송을 나타냅니다. 배송에는 로컬 설정 및 제약조건이 있습니다.
  • 차량은 차량, 운전자 또는 인력을 나타냅니다. 차량에는 로컬 설정 및 제약조건도 있습니다.

각 항목의 속성은 특정 수준의 세부사항에서 최적화 문제의 일부를 설명합니다. 모델 전반의 제약조건은 모든 배송 및 차량에 적용되지만 배송 또는 차량에 지정된 제약조건 및 속성은 단일 배송 또는 차량에만 적용됩니다.

각 메시지 유형에 관한 전체 문서는 ShipmentModel (REST, gRPC), Shipment (REST, gRPC), Vehicle (REST, gRPC) 메시지에 관한 참조 문서를 참고하세요.

숙박 시설 OptimizeToursRequest

최상위 OptimizeToursRequest 메시지(REST, gRPC)의 일반적으로 사용되는 속성은 다음과 같습니다.

  • searchMode는 지정된 제약 조건을 충족하는 첫 번째 솔루션을 반환할지 아니면 정해진 기한 내에 최적의 솔루션을 찾을지 여부를 나타냅니다.
  • considerRoadTraffic는 경로 설정 및 도착 예상 시간 추정에 실시간 트래픽을 사용할지 여부를 결정합니다.
  • populateTransitionPolylines는 경로 다중선 및 경로 토큰이 응답에 반환되는지 여부를 결정합니다.

모델 속성

일반적으로 사용되는 ShipmentModel 메시지 (REST, gRPC)의 속성은 다음과 같습니다.

  • globalStartTime은 모든 차량 및 배송의 경로 중 가장 빠른 시작 시간을 나타냅니다. 이 시간 전에 차량은 첫 번째 전환 및 배송을 시작할 수 없습니다.
  • globalEndTime는 모든 차량 및 배송의 경로의 최신 종료 시간을 나타냅니다. 이 시간 전에 모든 할당된 배송 및 전환이 완료되어야 합니다.

배송 속성

일반적으로 사용되는 Shipment 메시지 (REST, gRPC)의 속성은 다음과 같습니다.

  • pickups[]deliveries[]는 배송 상품을 수령하거나 발송할 수 있는 위치를 나타냅니다. pickups[]deliveries[] 속성은 모두 VisitRequest 메시지 (REST, gRPC)를 사용합니다.
  • loadDemands는 차량이 배송을 완료하는 데 필요한 로드를 나타냅니다. 차량의 상응하는 load_limits (REST, gRPC) 속성은 차량이 한 번에 수용할 수 있는 부하량을 나타냅니다. 부하 수요 및 한도에서 부하에 대해 자세히 알아보세요.
  • penalty_cost는 배송이 건너뛰어지면 발생하는 비용을 나타냅니다. 비용 모델 매개변수에서 비용에 대해 자세히 알아보세요.

차량 속성

Vehicle 메시지 (REST, gRPC)에서 일반적으로 사용되는 일부 속성은 다음과 같습니다.

  • startLocation는 차량이 경로를 시작해야 하는 위치를 나타냅니다. 이 속성은 선택사항입니다. 지정하지 않으면 차량의 경로는 첫 번째로 할당된 배송의 위치에서 시작합니다.
  • endLocation는 차량이 경로를 종료해야 하는 위치를 나타냅니다. 이 속성은 선택사항입니다. 지정하지 않으면 차량의 경로는 마지막으로 할당된 배송의 위치에서 종료됩니다.
  • startTimeWindows[]은 차량이 경로를 시작할 수 있는 시점을 나타냅니다. 이 속성은 선택사항입니다.
  • endTimeWindows[]는 차량이 경로를 시작하고 종료할 수 있는 시점을 나타냅니다. 두 속성 모두 선택사항입니다.
  • loadLimits는 배송의 부하 수요를 충족하는 데 사용할 수 있는 차량의 용량을 나타냅니다. 부하 수요 및 한도에서 부하 수요 및 한도에 대해 자세히 알아보세요.

JSON 형식의 전체 요청 예시는 다음과 같습니다.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeToursBatchOptimizeTours는 모두 위의 예와 같이 요청 메시지를 사용하지만 방식은 다릅니다. 경로 최적화 요청을 하기 전에 다음 두 가지 방법의 차이를 이해하는 것이 중요합니다.

OptimizeTours와 BatchOptimizeTours 비교