부하 수요 및 한도는 용량을 관리하는 데 사용할 수 있는 제약 조건의 한 유형입니다. 이 제약조건은 배송의 필요한 용량과 차량의 최대 용량을 지정합니다. 이를 통해 이러한 제약조건에 따라 경로 할당을 최적화할 수 있습니다.
부하 수요 및 한도는 다음과 같은 목표를 지원할 수 있습니다.
- 차량에 과부하가 걸리지 않도록 합니다.
- 배송 상품이 수거되고 배송되면서 차량의 적재량이 어떻게 달라지는지 모니터링합니다.
- 대형 차량과 중량화물 배송을 우선적으로 페어링합니다.
부하 수요 및 한도는 다음 속성에서 지정됩니다.
loadDemands
는 특정 배송에 필요한 용량을 지정합니다.loadLimits
는 지정된 차량의 최대 수용 인원을 지정합니다.
구조
다이어그램에서 볼 수 있듯이 부하 수요 및 한도는 다음과 같이 구성됩니다.
loadDemands
는Shipment
의 속성입니다.Shipment
에는 여러 부하 수요가 있을 수 있습니다.loadLimits
는Vehicle
의 속성입니다.Vehicle
에는 여러 부하 한도가 있을 수 있습니다.
기본사항 체크리스트
다음 체크리스트에서는 로드 관련 실수를 방지하는 데 필요한 지식을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 됩니다.
속성
이 섹션에서는 부하 수요 및 한도의 속성을 설명합니다. 다음과 같습니다.
로드 유형
적재 유형은 배송 및 차량에 동일하게 적용되는 문자열 키입니다. 단일 적재 유형은 차량의 적재 한도뿐만 아니라 배송의 적재 수요에도 적용됩니다.
로드 유형은 프로토콜 버퍼 맵 유형 문법을 사용합니다. 부하 유형의 이름을 지정할 때는 부하 유형과 단위를 설명하는 식별자를 사용하세요. 예: 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차 배송: 1 2차 배송: 3 |
정의된 부하 유형의 수량을 지정합니다. 이 예에서는 배송 2개를 정의합니다. 첫 번째 배송에서는 강아지 1마리를 수거하고, 두 번째 배송에서는 강아지 3마리를 수거합니다. |
loadLimits |
로드 유형 | 문자열 | dogUnit |
차량에 적용되는 하중 한도 유형을 정의합니다. 이 값이 관련성이 있으려면 배송의 로드 유형과 일치해야 합니다. |
loadLimits |
maxLoad |
숫자 | 6 |
차량이 운반할 수 있는 최대 짐 유형의 수량을 지정합니다. 이 예시에서는 최대 용량이 6개 dogUnit 인 차량이 하나만 있습니다. 여기서 각 dogUnit 는 강아지 사료 한 개를 나타냅니다. |
다음 다이어그램은 차량의 적재 한도, 각 배송의 적재 요구량, 각 배송이 차량의 적재 한도를 사용하는 방식을 보여줍니다.
이 예에서 각 배송의 적재 요구량과 차량의 적재 한도는 다음과 같은 영향을 미칩니다.
차량이 최대 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 } ] } }
이 예와 달리 배송에는 여러 개의 적재 수요가 있을 수 있고 차량에는 여러 개의 적재 한도가 있을 수 있으므로 차량의 경로를 최적화할 때 고려할 복잡한 제약조건을 제공할 수 있습니다.