Route Optimization API의 주요 목표는 비용이 가장 낮은 경로를 찾는 것입니다. 따라서 비용 모델은 경로 최적화의 주요 동인입니다.
비용 모델은 전역, 차량, 배송 비용을 지정하는 속성 집합입니다.
비용 모델 속성은 다음과 같은 종류의 최적화 목표를 지원합니다.
- 효율적인 차량 할당 및 경로
- 비용 효율적인 픽업 및 배송 시간
- 중요 배송 우선순위 지정
구조
다이어그램과 같이 비용 모델 속성은 다음과 같이 구성됩니다.
Shipment에는penaltyCost속성이 포함되어 있습니다.Vehicle에는 다음 속성이 포함되어 있습니다.
이 문서에서는 필수 비용 모델 매개변수만 강조 합니다. 전체 비용 매개변수 집합은 참조 문서를 확인하세요.
기본사항 체크리스트
다음 체크리스트에서는 잠재적인 비용 관련 실수를 방지하는 필수 지식 을 설명합니다. 이 목록은 요청을 검증하고 응답 문제를 해결하는 데 도움이 될 수 있습니다.
속성
다음 표에는 비용 모델 속성이 나열되고 설명되어 있습니다.
| 자녀 있음 | 속성 이름 | 숙소 유형 | 비용 | 속성 설명 |
|---|---|---|---|---|
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달러를 나타냅니다. 즉, 요청의 비용 모델 속성 값은 다음과 같습니다.
| 속성 | 값 | 시나리오 |
|---|---|---|
penaltyCost |
10 | 예정된 날짜에 개를 픽업하지 않은 고객에게 제공하는 벌금을 나타냅니다. 예정된 날짜에 개를 픽업하지 않으면 고객은 서비스 총액에서 40달러를 할인받습니다. |
fixedCost |
30 | 차량 대출금의 일일 비용(하루 30달러)을 나타냅니다. |
costPerKilometer |
0.08 | 차량이 킬로미터당 소비하는 휘발유의 양을 나타냅니다. 차량이 이동하려면 킬로미터당 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: 모든 경로의 총비용을 합산한 값입니다.