로드 요구사항 및 한도는 용량 을 관리하는 데 사용할 수 있는 제약 조건 유형입니다. 이 제약 조건은 배송의 필요 용량과 차량의 최대 용량을 지정하므로 이러한 제약 조건을 기반으로 경로 할당을 최적화할 수 있습니다.
로드 요구사항 및 한도는 다음과 같은 목표를 지원할 수 있습니다.
- 차량의 과부하 방지
- 배송이 픽업 및 배송됨에 따라 차량 하중이 어떻게 변하는지 모니터링
- 대형 차량과 대형 하중 배송의 페어링 우선순위 지정
로드 요구사항 및 한도는 다음 속성에 지정됩니다.
loadDemands는 특정 배송 에 필요한 용량 금액을 지정합니다.loadLimits는 지정된 차량 의 최대 용량을 지정합니다.
구조
다이어그램에서 볼 수 있듯이 로드 요구사항 및 한도는 다음과 같이 구성됩니다.
loadDemands는Shipment의 속성입니다. AShipment에는 여러 로드 요구사항이 있을 수 있습니다.loadLimits는Vehicle의 속성입니다. AVehicle에는 여러 로드 한도가 있을 수 있습니다.
기본사항 체크리스트
다음 체크리스트에서는 잠재적인 로드 관련 실수를 방지하는 데 필요한 기본 지식을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 됩니다.
속성
이 섹션에서는 로드 요구사항 및 한도의 속성을 설명합니다. 속성은 다음과 같습니다.
로드 유형
로드 유형은 배송과 차량에 동일하게 적용하는 문자열 키입니다. 단일 로드 유형은 배송의 로드 요구사항과 차량의 로드 한도에 모두 적용됩니다.
로드 유형은 프로토콜 버퍼 맵 유형 구문을 사용합니다. 로드 유형의 이름을 지정할 때는 하중 유형과 단위를 설명하는 식별자를 사용합니다. 예: weightKg, volume_gallons, palletcount 또는 frequencyDaily.
Load 및 LoadLimit
Load 및 LoadLimit 객체에는 배송 및 차량의 용량 요구사항을 정의하는 특정 속성이 포함되어 있습니다. 다음 표에서는 이러한 속성을 설명합니다.
| 객체 | 상위 요소 | 속성 | 속성 유형 | 속성 설명 |
|---|---|---|---|---|
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두 번째 배송: 3 |
정의된 로드 유형의 수량을 지정합니다. 이 예에서는 두 개의 배송을 정의합니다. 첫 번째 배송에서는 개 한 마리를 픽업하고 두 번째 배송에서는 개 세 마리를 픽업합니다. |
loadLimits |
로드 유형 | 문자열 | dogUnit |
차량에 적용되는 로드 한도 유형을 정의합니다. 한도가 관련되려면 배송의 로드 유형과 일치해야 합니다. |
loadLimits |
maxLoad |
숫자 | 6 |
차량이 운반할 수 있는 로드 유형의 최대 수량을 지정합니다. 이 예에서는 최대 용량이 6 dogUnit인 차량이 하나만 있습니다. 여기서 각 dogUnit은 개집 하나를 나타냅니다. |
다음 다이어그램은 차량의 로드 한도, 각 배송의 로드 요구사항, 각 배송이 차량의 로드 한도를 사용하는 방법을 보여줍니다.

이 예에서 각 배송의 로드 요구사항과 차량의 로드 한도는 다음과 같은 영향을 미칩니다.
차량이 최대 6마리의 개를 운반할 수 있고 4마리의 개만 픽업하므로 최적화 도구는 개를 운송할 차량의 경로를 생성하는 데 문제가 없습니다.
차량에 6
dogUnit로드 한도가 있다는 것은 이 특정 차량에 두 마리의 개 만 더 운반할 수 있다는 의미이기도 합니다.개의 수가 로드 한도보다 크면 최적화 도구는 픽업 중 하나를 건너뛰거나 적합한 차량에 할당합니다.
미리 정의된 유형 집합은 없습니다. 이 예에서는 로드 유형을 개 단위에서 무게 단위로 변경하여 개의 무게를 제한하거나 선형 측정으로 변경하여 개의 너비 또는 높이를 제한할 수 있습니다. 이러한 유연성을 통해 특정 요구사항에 맞게 로드 요구사항 및 한도를 맞춤설정할 수 있습니다.
요청 예
다음 예에서는 예시 시나리오 값을 통합하는 기본 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 } ] } }
이 예와 달리 배송에는 여러 로드 요구사항이 있을 수 있고 차량에는 여러 로드 한도가 있을 수 있으므로 차량의 경로를 최적화할 때 고려해야 할 복잡한 제약 조건을 제공할 수 있습니다.
소프트 로드 한도
차량의 loadLimits에 softMaxLoad 및
costPerUnitAboveSoftMax를 추가하여 로드 한도를 소프트 제약 조건으로 설정할 수 있습니다. 이렇게 하면 최적화 도구가 비용을 들여 차량의 최대 하중을 초과할 수 있으므로 로드 한도를 엄격하게 준수하는 것보다 경로 완료에 우선순위를 둘 수 있습니다.
maxLoad 및 softMaxLoad를 함께 사용하여 하드
로드 한도와 소프트 로드 한도를 모두 설정할 수 있습니다. 이 경우 softMaxLoad는 초과할 수 있는 로드를 설정하고 maxLoad는 초과할 수 없는 하드 한도를 설정합니다. 둘 다 사용되는 경우 maxLoad는 softMaxLoad보다 커야 합니다.
속성
다음 표에서는 로드 요구사항 및 한도의 소프트 제약 조건 속성을 설명합니다.
| 상위 요소 | 속성 이름 | 속성 유형 | 속성 설명 |
|---|---|---|---|
loadLimits |
softMaxLoad |
문자열 (int64 형식) | 차량의 기본 최대 하중입니다. 차량의 하중이 이 값을 초과하면 비용이 발생합니다. |
loadLimits |
costPerUnitAboveSoftMax |
숫자 | softMaxLoad를 초과하는 하중의 단위당 비용입니다. softMaxLoad를 사용할 때는 이 필드가 필요합니다. 비용에 대한 자세한 내용은 비용 모델 주요 개념을 참고하세요. |
코드 샘플
다음 예에서는 loadLimits의 소프트 제약 조건 속성의 구조를 보여줍니다.
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }