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개는 1달러를 나타냅니다. 즉, 요청의 비용 모델 속성 값은 다음과 같습니다.
속성 | 값 | 시나리오 |
---|---|---|
penaltyCost |
10 | 예약된 날짜에 강아지를 찾으러 오지 않은 고객에게 부과하는 벌금을 나타냅니다. 예약된 날짜에 강아지를 수거하지 않으면 고객에게 서비스 총 금액에서 40달러가 할인됩니다. |
fixedCost |
30 | 차량 대출에 대한 일일 비용으로, 하루에 30달러입니다. |
costPerKilometer |
0.08 | 차량이 1km를 주행할 때 소비하는 휘발유의 양을 나타냅니다. 차량을 이동하려면 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
: 모든 경로의 총 비용을 합산한 값입니다.