Route Optimization API의 주요 목표는 비용이 가장 낮은 경로를 찾는 것입니다. 따라서 비용 모델은 경로 최적화의 주요 동인입니다.
비용 모델은 전역, 차량, 배송 비용을 지정하는 속성 집합입니다.
비용 모델 속성은 다음과 같은 종류의 최적화 목표를 지원합니다.
- 효율적인 차량 할당 및 경로
- 비용 효율적인 수령 및 배송 기간
- 중요 배송 우선순위 지정
구조
다이어그램에 표시된 것처럼 비용 모델 속성은 다음과 같이 구성됩니다.
Shipment에는penaltyCost속성이 포함되어 있습니다.Vehicle에는 다음 속성이 포함됩니다.
이 문서에서는 필수 비용 모델 매개변수만 강조합니다. 전체 비용 매개변수 집합은 참고 문서를 확인하세요.
Essentials 체크리스트
다음 체크리스트에서는 비용과 관련된 실수를 방지하는 데 필요한 필수 지식을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 될 수 있습니다.
속성
다음 표에는 비용 모델 속성이 나열되고 설명되어 있습니다.
| 부모 | 속성 이름 | 숙소 유형 | 비용 | 속성 설명 |
|---|---|---|---|---|
Shipment |
penaltyCost |
숫자 | 배송 건너뜀 | 배송을 건너뛰어 발생하는 비용입니다. 배송을 완료하는 비용이 페널티 비용을 초과하면 API는 배송을 건너뜁니다.
|
Vehicle |
fixedCost |
숫자 | 배송 | 이 차량이 배송을 처리하는 데 사용되는 경우 적용되는 고정 비용입니다. |
costPerHour |
숫자 | 시간 | 이동, 대기, 방문, 휴식 시간을 포함한 시간당 차량 운행 비용입니다. 이 비용이 증가하면 최적화 도구는 최단 경로가 아닐 수 있는 더 빠른 경로를 찾으려고 시도합니다. 이 속성은 단순성과 완전성으로 인해 효과적인 독립형 차량당 비용이 될 수 있습니다. |
|
costPerKilometer |
숫자 | 킬로미터 | 차량의 이동 킬로미터당 비용으로, 연료 비용 또는 분할 상환된 차량 유지보수 비용을 나타낼 수 있습니다. | |
costPerTraveledHour |
숫자 | 시간 | 대기, 방문, 휴식 시간을 제외하고 이동 중에만 차량을 운행하는 데 드는 시간당 비용입니다. 이렇게 하면 더 짧은 경로보다 더 빠른 이동 경로가 우선시됩니다. |
예
이 섹션에서는 세 가지 유형의 예시를 다룹니다.
- 비용 모델 속성의 구조를 보여주는 코드 샘플
- 시나리오 예시: 비용 모델 속성을 사용하여 비즈니스 목표를 달성하는 한 가지 방법을 보여줍니다.
- 예시 시나리오에 설정된 값이 포함된 요청 예시
코드 샘플
다음 코드 샘플은 Shipment의 비용 모델 속성 구조를 보여줍니다.
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
다음 코드 샘플은 Vehicle의 비용 모델 속성 구조를 보여줍니다.
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
예시 시나리오
이 섹션에서는 반려견 위탁 사업을 운영하는 시나리오를 설명합니다. 집에서 개를 데려오는 데 사용하는 트럭의 경로를 최적화합니다. 이 시나리오에서는 최적화 도구가 경로를 제공할 때 반려견 픽업 및 차량 운영과 관련된 비용을 고려하도록 하려고 합니다.
이 예시에서 비용 단위 1은 1달러를 나타냅니다. 즉, 요청의 비용 모델 속성 값은 다음과 같습니다.
| 속성 | 값 | 시나리오 |
|---|---|---|
penaltyCost |
10 | 예정된 날짜에 반려견을 데려가지 않는 고객에게 부과하는 위약금을 나타냅니다. 예정된 날짜에 반려견을 데리러 가지 않으면 고객은 서비스 총액에서 40달러를 할인받습니다. |
fixedCost |
30 | 차량 대출 상환의 일일 비용을 나타내며, 하루에 30달러입니다. |
costPerKilometer |
0.08 | 차량이 킬로미터당 소비하는 휘발유의 양을 나타냅니다. 차량이 1km를 이동하는 데 0.04갤런이 필요하고, 해당 지역의 갤런당 비용은 2달러입니다. |
costPerHour |
27 | 차량을 운전하는 운전자에게 지급하는 금액을 나타냅니다. 운전자에게 시간당 27달러를 지불합니다. |
costPerTraveledHour |
2.5 | 이동 중에 반려견을 위해 차량의 냉방에 시간당 지불해야 하는 금액을 나타냅니다. 차량이 움직이지 않을 때는 운전자가 뒷문을 열고 냉방을 끌 수 있습니다. |
비용 매개변수를 기반으로 최적화 도구는 사용자에게 명확하지 않지만 최적화를 통해 찾을 수 있는 절충안을 만들 수 있습니다.
다음 다이어그램은 최적화 도구가 점선으로 표시된 빨간색 선의 트래픽을 피하기 위해 점선으로 표시된 녹색 선을 통해 더 길지만 더 빠른 경로를 선택할 수 있는 예를 보여줍니다.

이 시나리오에서 두 경로의 비용 균형은 다음과 같습니다.
녹색 점선은 교통 체증을 피하는 빠른 경로이므로
costPerHour및costPerTraveledHour가 낮으며,costPerKilometer가 높더라도 비용 효율적입니다.빨간색 점선은 직접 경로이므로
costPerKilometer가 낮지만 교통 체증으로 인한 대기 시간 때문에costPerHour및costPerTraveledHour가 너무 높아서 가장 비용이 많이 드는 경로입니다.
최적화 도구는 비용 효율적인 경로를 제공하는 것 외에도 응답 속성에서 배송 경로의 총비용 합계를 제공합니다.
요청 예
다음 예시에서는 예시 시나리오에 설정된 값을 통합하는 기본 optimizeTours 요청의 구조를 보여줍니다.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
응답 속성
OptimizeToursResponse 메시지에는 경로를 완료하는 과정에서 발생하는 비용을 설명하는 비용 속성이 있습니다.
metrics.costs: 비용 관련 요청 필드로 분류된 모든 경로의 총비용입니다.metrics.totalCost: 모든 경로의 총비용을 합산한 값입니다.