부하 수요 및 한도

loadDemands 속성은 ShipmentModel.shipments.Shipment 아래에 정의되고 loadLimits 속성은 ShipmentModel.vehicles.Vehicle 아래에 정의됩니다.

부하 수요 및 한도는 용량을 관리하는 데 사용할 수 있는 제약 조건의 한 유형입니다. 이 제약조건은 배송필요한 용량차량최대 용량을 지정합니다. 이를 통해 이러한 제약조건에 따라 경로 할당을 최적화할 수 있습니다.

부하 수요 및 한도는 다음과 같은 목표를 지원할 수 있습니다.

  • 차량에 과부하가 걸리지 않도록 합니다.
  • 배송 상품이 수거되고 배송되면서 차량의 적재량이 어떻게 달라지는지 모니터링합니다.
  • 대형 차량과 중량화물 배송을 우선적으로 페어링합니다.

부하 수요 및 한도는 다음 속성에서 지정됩니다.

  • loadDemands는 특정 배송에 필요한 용량을 지정합니다.
  • loadLimits는 지정된 차량의 최대 수용 인원을 지정합니다.

구조

다이어그램에서 볼 수 있듯이 부하 수요 및 한도는 다음과 같이 구성됩니다.

기본사항 체크리스트

다음 체크리스트에서는 로드 관련 실수를 방지하는 데 필요한 지식을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 됩니다.

속성

이 섹션에서는 부하 수요 및 한도의 속성을 설명합니다. 다음과 같습니다.

  • 부하 유형: 부하 수요와 한도 간에 공유되는 속성입니다.
  • LoadLoadLimit: 각각 부하 수요 및 부하 한도에 있는 고유한 속성입니다.

로드 유형

적재 유형은 배송 및 차량에 동일하게 적용되는 문자열 키입니다. 단일 적재 유형은 차량의 적재 한도뿐만 아니라 배송의 적재 수요에도 적용됩니다.

로드 유형은 프로토콜 버퍼 맵 유형 문법을 사용합니다. 부하 유형의 이름을 지정할 때는 부하 유형과 단위를 설명하는 식별자를 사용하세요. 예: weightKg, volume_gallons, palletcount 또는 frequencyDaily

LoadLoadLimit

LoadLoadLimit 객체에는 배송 및 차량의 용량 요구사항을 정의하는 특정 속성이 포함되어 있습니다. 다음 표에서는 이러한 속성을 설명합니다.

객체 자녀 있음 속성 숙소 유형 숙박 시설 설명
Load loadDemands amount 문자열 (int64 형식) 지정된 유형에서 배송의 용량 요구사항을 정의합니다.
LoadLimit loadLimits maxLoad 문자열 (int64 형식) 지정된 유형의 차량 최대 적재 용량을 정의합니다.

이 섹션에서는 다음 세 가지 유형의 예시를 다룹니다.

  • 부하 수요 및 한도 속성의 구조를 보여주는 코드 샘플
  • API 요청에서 부하 수요 및 한도를 사용하는 한 가지 방법을 보여주는 예시 시나리오입니다.
  • 예시 시나리오에 설정된 값이 포함된 요청 예시

코드 샘플

다음 예는 loadDemands 유형을 문자열로, amount 속성을 int64 형식의 문자열로 설정할 수 있는 부하 수요의 구조를 보여줍니다.

{
  "model": {
    "shipments": [ ...
      {
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [ ...
    ]
  }
}

다음 예는 loadLimits 유형을 문자열로, maxLoad 속성을 int64 형식의 문자열로 설정할 수 있는 가장 기본적인 부하 한도의 구조를 보여줍니다.

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

예시 시나리오

이 섹션에서는 강아지 보육 시설을 운영하고 있으며 제한된 수의 크레이트가 있는 차량으로 강아지를 운송하는 경로를 최적화하는 시나리오를 설명합니다.

각 배송은 특정 수의 강아지를 수거하는 한 정거장을 나타냅니다. 이 예시에서는 각 배송의 수령 위치가 다르며, 수령 위치는 내가 돌보는 강아지의 집입니다. 모든 배송의 배송 위치는 동일하며, 강아지 보육 시설 건물입니다.

이 예시에서 요청의 속성 값은 다음과 같습니다.

자녀 있음 속성 유형 시나리오
loadDemands 로드 유형 문자열 dogUnit 배송의 짐 유형을 정의합니다. 이 예에서는 dogUnit를 사용합니다. 여기서 각 dogUnit는 개 한 마리를 나타냅니다.
loadDemands amount 숫자 1차 배송: 1
2차 배송: 3
정의된 부하 유형의 수량을 지정합니다. 이 예에서는 배송 2개를 정의합니다. 첫 번째 배송에서는 강아지 1마리를 수거하고, 두 번째 배송에서는 강아지 3마리를 수거합니다.
loadLimits 로드 유형 문자열 dogUnit 차량에 적용되는 하중 한도 유형을 정의합니다. 이 값이 관련성이 있으려면 배송의 로드 유형과 일치해야 합니다.
loadLimits maxLoad 숫자 6 차량이 운반할 수 있는 최대 짐 유형의 수량을 지정합니다. 이 예시에서는 최대 용량이 6개 dogUnit인 차량이 하나만 있습니다. 여기서 각 dogUnit는 강아지 사료 한 개를 나타냅니다.

다음 다이어그램은 차량의 적재 한도, 각 배송의 적재 요구량, 각 배송이 차량의 적재 한도를 사용하는 방식을 보여줍니다.

차량은 차량의 적재 한도를 나타내는 빈 공간 6개로 경로를 시작합니다. 첫 번째 배송에는 강아지 한 마리의 공간이 필요하고 두 번째 배송에는 강아지 세 마리의 공간이 필요합니다. 차량의 최종 상태는 6개의 공간 중 4개가 현재 사용 중이고 2개의 공간이 비어 있습니다.

이 예에서 각 배송의 적재 요구량과 차량의 적재 한도는 다음과 같은 영향을 미칩니다.

  • 차량이 최대 6마리의 개를 운송할 수 있고 4마리만 수거하므로 최적화 도구는 차량이 개를 운송할 경로를 생성하는 데 문제가 없습니다.

  • 차량의 dogUnit 6개 로드 한도가 있으면 이 특정 차량에 강아지 2마리만 실을 수 있습니다.

  • 수거할 물건의 수가 적재 한도보다 많으면 최적화 도구는 수거 중 하나를 건너뛰거나 적합한 차량에 할당합니다.

사전 정의된 유형 집합은 없습니다. 이 예에서는 로드 유형을 강아지 단위에서 무게 단위로 변경하여 강아지의 무게를 제한하거나 선형 측정으로 변경하여 너비 또는 높이를 제한할 수 있습니다. 이러한 유연성을 통해 부하 수요와 한도를 특정 요구사항에 맞게 조정할 수 있습니다.

요청 예

다음 예는 시나리오 값 예시를 통합한 기본 optimizeTours 요청의 구조를 보여줍니다.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "One bernese mountain dog",
        "loadDemands": {
          "dogUnit": {
            "amount": "1"
          }
        }
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "Three chihuahuas",
        "loadDemands": {
          "dogUnit": {
            "amount": "3"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "loadLimits": {
          "dogUnit": {
            "maxLoad": "6"
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

이 예와 달리 배송에는 여러 개의 적재 수요가 있을 수 있고 차량에는 여러 개의 적재 한도가 있을 수 있으므로 차량의 경로를 최적화할 때 고려할 복잡한 제약조건을 제공할 수 있습니다.