OptimizeToursRequest
메시지 (REST, gRPC)에는
관련 속성
비용입니다. 이러한 비용 매개변수는 요청에 대한
비용 모델입니다 비용 모델은 요청의 상위 수준
다음과 같은 최적화 목표를 달성할 수 있습니다.
- 짧은 경로 또는 그 반대 방향보다 빠른
Vehicle
경로에 우선순위 지정 주변 Shipment
게재 비용이Shipment
님의 완료- 기간 내에 수령 및 배달을 수행하는 경우는 비용 효율성
비용이 포함된 요청 예 보기
{ "model": { "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00", "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 100.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 5.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 50.0 } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0 } ] } }
비용 속성 Vehicle
개
Vehicle
메시지 (REST, gRPC)에는 몇 가지 비용 속성이 있습니다.
Vehicle.cost_per_hour
: 시간당 차량 운행 비용을 나타냅니다. 대중교통, 대기, 방문, 휴식 시간 등이 포함됩니다.Vehicle.cost_per_kilometer
: 킬로미터당 이동 비용을 나타냅니다. 나타냅니다.Vehicle.cost_per_traveled_hour
: 차량 운행 비용을 나타냅니다. 대기 시간, 방문, 휴식 시간을 제외하고 이동 중에만 사용할 수 있습니다.
이러한 비용 매개변수를 사용하면 옵티마이저가 time-versus-traveled-distance를
장단점이 있습니다 최적화된 경로에서 발생한 비용이 응답에 표시됨
메시지를 metrics.costs
형식으로 전송합니다.
costPerHour
가 증가함에 따라 옵티마이저는 더 빠른 경로를 찾으려고 시도합니다.
이러한 경로는 가장 짧은 경로가 아닐 수도 있습니다. 이 예에서 가장 빠른 경로는
가장 짧기 때문에 비용 매개변수를 변경해도 효과가 거의 없습니다.
비용 속성 Shipment
개
Shipment
메시지 (REST, gRPC)에는 여러 가지 비용도 있습니다.
매개변수:
Shipment.penalty_cost
는 다음 행을 건너뛸 때 발생하는 비용을 나타냅니다. 배송을 탭합니다.Shipment.VisitRequest.cost
는 특정 픽업 비용을 나타냅니다. 주로 여러 수령 또는 서비스 간의 비용 절충을 지원하는 데 사용됨 단일 배송의 배송 옵션을 선택할 수 있습니다.
비용 매개변수 Shipment
개가 Vehicle
비용과 동일한 측정기준 없는 단위를 사용합니다.
매개변수입니다. 발생한 비용이 Shipment
이면 제재 비용을 초과하면
Shipment
은(는) Vehicle
의 경로에 포함되어 있지 않으며 대신 다음 위치에 표시됩니다.
skipped_shipments
목록을 반환합니다.
비용 속성 ShipmentModel
개
ShipmentModel
메시지 (REST, gRPC)에는 단일 비용이 포함되어 있습니다.
속성, globalDurationCostPerHour
이 비용은 총
모든 차량이 ShipmentRoute
을(를) 완료하는 데 필요한 시간 증가
globalDurationCostPerHour
에서는 모든 배송의 빠른 완료를 우선시합니다.
경로 최적화 응답 비용 속성
OptimizeToursResponse
메시지 (REST, gRPC)에는 비용 속성이 있습니다.
ShipmentRoute
완료 과정에서 발생한 비용을 나타냅니다.
metrics.costs
속성과 metrics.totalCost
속성은
응답의 모든 경로에서 발생한 비용 단위 각 routes
항목에는 다음이 포함됩니다.
관련 비용을 나타내는 routeCosts
및 routeTotalCosts
속성
있습니다.
비용이 포함된 예시 요청에 대한 응답 보기
{ "routes": [ { "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:28:22Z", "visits": [ { "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 2, "isPickup": true, "startTime": "2023-01-14T00:02:30Z", "detour": "150s" }, { "startTime": "2023-01-14T00:08:55Z", "detour": "150s" }, { "shipmentIndex": 2, "startTime": "2023-01-14T00:21:21Z", "detour": "572s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "235s", "travelDistanceMeters": 795, "waitDuration": "0s", "totalDuration": "235s", "startTime": "2023-01-14T00:05:00Z" }, { "travelDuration": "496s", "travelDistanceMeters": 1893, "waitDuration": "0s", "totalDuration": "496s", "startTime": "2023-01-14T00:13:05Z" }, { "travelDuration": "171s", "travelDistanceMeters": 665, "waitDuration": "0s", "totalDuration": "171s", "startTime": "2023-01-14T00:25:31Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 33.53, "model.vehicles.cost_per_hour": 18.911111111111111 }, "routeTotalCost": 52.441111111111113 } ], "skippedShipments": [ { "index": 1 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2023-01-14T00:00:00Z", "latestVehicleEndTime": "2023-01-14T00:28:22Z", "totalCost": 57.441111111111113, "costs": { "model.vehicles.cost_per_kilometer": 33.53, "model.vehicles.cost_per_hour": 18.911111111111111, "model.shipments.penalty_cost": 5 } } }
응답 예에서 최상위 metrics.costs
는 다음과 같습니다.
{
"metrics": {
...
"costs": {
"model.vehicles.cost_per_hour": 18.911111111111111,
"model.vehicles.cost_per_kilometer": 33.53,
"model.shipments.penalty_cost": 5
}
}
}
model.shipments.penalty_cost
값은
건의 배송 건을 건너뛰었습니다. skippedShipments
속성은 배송된 물품을 나열합니다.
건너뛰었습니다.
이 예시에서는 예시 요청의 model.shipments[1]
만 건너뜁니다.
model.shipments[1]
의 페널티 비용은 5단위로 총 5단위와 일치합니다.
model.shipments.penalty_cost
키를 반환합니다. 배송량이 적음
Vehicle
의 40.0 costPerHour
및 10.0 대비 penaltyCost
costPerKilometer
를 사용하면 배송을 건너뛸 때보다 비용 효율적으로 배송을 건너뛸 수 있습니다.
있습니다.
고급 주제: 비용 및 유연한 제약조건
여러 OptimizeToursRequest
메시지 (REST, gRPC) 속성
서비스 실행 시 비용이 발생하는 제약조건인 소프트 제약조건을 나타냅니다.
만족할 수 없습니다
예를 들어 차량 LoadLimit
(REST, gRPC) 제약조건에는
softMaxLoad
및 costPerUnitAboveSoftMax
속성 함께 사용할 경우
비용이 softMaxLoad
를 초과하는 로드 단위에 비례하여
비용 측면에서 합리적인 경우에 한해서만 한도를 초과할 수 있습니다.
마찬가지로 TimeWindow
제약 조건 (REST, gRPC)에는
soft_start_time
및 soft_end_time
속성(해당하는 항목)
cost_per_hour_before_soft_start_time
및 cost_per_hour_after_soft_end_time
제한된 이벤트가 얼마나 일찍 또는 늦게 발생했는지에 따라 발생하는
TimeWindow
를 기준으로 합니다.
모든 비용 모델 매개변수와 마찬가지로 유연한 제약조건 비용은 크기가 없는 단위를 다른 비용 매개변수와 동일하게 지정합니다.
LoadLimit
제약 조건은
부하 수요 및 한도. TimeWindow
제약 조건이 자세히 설명됨
(수령 및 배송 시간 기간 제약 조건)