부하 수요 및 한도는 용량을 관리하는 데 사용할 수 있는 제약 조건 유형입니다. 이 제약조건은 배송의 필요한 용량과 차량의 최대 용량을 지정하여 이러한 제약조건에 따라 경로 할당을 최적화할 수 있습니다.
부하 요구사항 및 한도는 다음과 같은 목표를 지원할 수 있습니다.
- 차량에 과부하가 걸리지 않도록 합니다.
- 배송 상품을 수령하고 배송할 때 차량 적재량이 어떻게 변하는지 모니터링합니다.
- 대형 차량과 대형 화물 배송의 페어링에 우선순위를 지정합니다.
부하 수요 및 한도는 다음 속성에 지정됩니다.
loadDemands는 특정 배송에 필요한 용량을 지정합니다.loadLimits는 지정된 차량의 최대 용량을 지정합니다.
구조
다이어그램에 표시된 것처럼 부하 수요와 한도는 다음과 같이 구성됩니다.
loadDemands는Shipment의 속성입니다.Shipment에는 여러 부하 수요가 있을 수 있습니다.loadLimits는Vehicle의 속성입니다.Vehicle에는 여러 부하 한도가 있을 수 있습니다.
Essentials 체크리스트
다음 체크리스트에서는 잠재적인 로드 관련 실수를 방지하는 필수 지식을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 될 수 있습니다.
속성
이 섹션에서는 다음과 같은 부하 수요 및 한도 속성을 설명합니다.
로드 유형
적재 유형은 배송과 차량에 동일하게 적용하는 문자열 키입니다. 단일 적재 유형은 배송의 적재 수요와 차량의 적재 한도에 적용됩니다.
부하 유형은 프로토콜 버퍼 맵 유형 문법을 사용합니다. 부하 유형의 이름을 지정할 때는 부하 유형과 단위를 설명하는 식별자를 사용합니다. 예: 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 |
차량이 운반할 수 있는 적재 유형의 최대 수량을 지정합니다. 이 예시에서는 최대 용량이 6dogUnit인 차량이 하나만 있으며, 여기서 각 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 } } }