부하 수요 및 한도

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

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

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

  • 차량에 과부하가 걸리지 않도록 합니다.
  • 배송 상품이 수거되고 배송되면서 차량의 적재량이 어떻게 달라지는지 모니터링합니다.
  • 차량이 특정 위치를 방문할 수 있는 횟수를 제한합니다.

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

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

구조

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

속성

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

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

로드 유형

적재 유형은 배송의 적재 수요 유형과 차량의 적재 한도를 식별하는 문자열 키입니다. 로드 유형에는 다음과 같은 중요한 특성이 있습니다.

  • 사용자 정의: 사용자가 정의하는 부하 유형입니다. 로드 유형에 사전 정의된 시스템 변수는 없습니다.
  • 공유: 로드 유형은 배송과 차량 간에 공유됩니다. 즉, 짐 유형이 일치하는 경우에 차량의 용량을 한도까지 사용합니다. 차량이 특정 유형에 대한 짐 한도를 지정하지 않으면 해당 짐 유형을 무제한으로 실을 수 있습니다.

로드 유형을 나타내는 문자열 키는 프로토콜 버퍼 맵 유형 문법을 사용합니다. 문제를 방지하려면 이러한 문자열 키가 null이 아니어야 합니다. 부하 유형의 이름을 지정할 때는 부하 유형과 단위를 설명하는 식별자를 사용하는 것이 좋습니다. 예: weightKg, volume_gallons, palletcount, frequencyDaily

LoadLoadLimit

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

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

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

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

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

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

사용해 보기

위의 코드 예시를 사용하여 가상의 시나리오를 만듭니다. 이 시나리오에서는 배송물의 무게가 10kg이고 차량의 적재량이 100kg입니다.

  1. loadDemands 예에서는 로드 유형을 weightKg로 정의합니다.

    이렇게 하면 loadLimits 예시의 부하 유형도 채워져 부하 유형을 공유합니다. 배송에서 차량 한도를 사용하려면 loadDemandsloadLimits 유형이 일치해야 합니다.

  2. 동일한 loadDemands 예에서 amount 속성을 10로 설정합니다.

    즉, 배송물의 무게가 10kg입니다.

  3. loadLimits 예에서 maxLoad 속성을 100로 설정합니다.

    즉, 차량은 최대 100kg을 실을 수 있습니다.

사전 정의된 유형 집합은 없습니다. 이 예에서는 킬로그램을 포인트로 변경하거나 무게 대신 선형 측정값으로 변경할 수 있습니다. 이러한 유연성을 통해 부하 수요와 한도를 특정 요구사항에 맞게 조정할 수 있습니다.

요청 예

다음 예는 배송에 loadDemands, 차량에 loadLimits가 있는 기본 optimizeTours 요청의 구조를 보여줍니다.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

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