Bu örnekte, uygun maliyetli bir rota elde etmek için maliyet parametrelerinin nasıl kullanılacağı gösterilmektedir.
Kavramsal genel bakışın tamamı için Maliyet modeliyle ilgili temel kavramlar başlıklı belgeye bakın.
Örnek istek
Aşağıdaki örnekte, bir aracın üç gönderi teslim etmesi gereken bir senaryo gösterilmektedir. Aracın zaman ve mesafeyle ilişkili maliyetleri vardır ve her gönderim atlanırsa penaltyCost tutarında bir maliyet oluşur.
Bu örnek istek aşağıdaki maliyetle ilgili parametreleri içerir:
- 100,0
penaltyCostileshipments[0]. shipments[1], 5.0penaltyCostile.shipments[2], 50,0penaltyCostile.vehicles[0], 40.0costPerHourve 10.0costPerKilometerile.
Maliyet içeren bir istek örneğini inceleyin
{ "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 } ] } }
Örnek yanıt
Yanıt, optimizasyon aracının üç gönderimden ikisini gerçekleştiren bir rota oluşturduğunu gösteriyor. Üçüncü gönderim, penaltyCost değeri, teslim alma ve teslimat için hesaplanan araç maliyetlerinden düşük olduğu için atlanır.
Maliyetleri içeren örnek isteğe verilen yanıtı görme
{ "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 } } }
Aşağıdaki alanlarda, yanıttaki maliyetlerin nasıl hesaplandığı gösterilmektedir:
routeCosts, belirli bir rotanın işletme maliyetlerini gösterir. Bu örnekte maliyetler şunlardır:model.vehicles.cost_per_kilometer: 33,53.model.vehicles.cost_per_hour: 18,91.
routeTotalCost(52,44),routeCostsiçinde listelenen maliyetlerin toplamıdır.- Yanıttaki en üst düzeyde,
costsnesnesi, çözümde yapılan tüm maliyetleri özetler. Buna tüm araç rotalarındaki işletme maliyetleri ve atlanan gönderim içinmodel.shipments.penalty_cost(5.0) gibi cezalar dahildir. - Son
totalCost(57,44), çözümün genel toplamını temsil eder.Bu değer, tüm araçlardakirouteTotalCostve tüm ceza maliyetlerinin toplamıdır. Bu durumda, 52,44 + 5,0 olur.