부하 요구사항과 한도는 용량을 관리하는 데 사용할 수 있는 제약 조건의 한 유형입니다. 이 제약 조건은 배송의 필요한 용량과 차량의 최대 용량을 지정하므로 이러한 제약 조건에 따라 경로 할당을 최적화할 수 있습니다.
부하 요구사항 및 한도는 다음과 같은 목표를 지원할 수 있습니다.
- 차량의 과부하를 방지합니다.
- 배송 상품이 수령 및 배송됨에 따라 차량 적재량이 어떻게 변하는지 모니터링합니다.
- 대형 차량과 중량 화물의 페어링에 우선순위를 둡니다.
부하 요구사항과 한도는 다음 속성에 지정됩니다.
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 |
차량이 운반할 수 있는 최대 적재 유형 수량을 지정합니다. 이 예시에는 최대 용량이 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 } } }