Bu örnekte, uygun maliyetli bir rota elde etmek için maliyet parametrelerinin nasıl kullanılacağı gösterilmektedir.
Kavramsal genel bakış için Maliyet modeliyle ilgili temel kavramlar belgesini inceleyin.
Ö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önderinin, gönderi atlanırsa ortaya çıkan bir penaltyCost değeri vardır.
Bu örnek istek, maliyetle ilgili aşağıdaki parametreleri içerir:
shipments[0], 100,0penaltyCostile.shipments[1], 5,0penaltyCostile.shipments[2], 50,0penaltyCostile.costPerHour40,0 vecostPerKilometer10,0 olanvehicles[0].
Maliyetleri içeren örnek bir istek
{ "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, optimize edicinin üç gönderiden ikisini gerçekleştiren bir rota oluşturduğunu gösterir. Üçüncü gönderinin penaltyCost değeri, teslim alma ve teslimat için hesaplanan araç maliyetlerinden düşük olduğu için bu gönderi atlanır.
Maliyetleri içeren örnek isteğe verilen yanıtı inceleyin.
{ "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 alanlar, yanıttaki maliyetlerin nasıl hesaplandığını gösterir:
routeCosts, belirli bir rotanın işletme maliyetlerini dökümünü verir. Bu örnekte maliyetler şunlardır:model.vehicles.cost_per_kilometer: 33.53.model.vehicles.cost_per_hour: 18,91.
routeTotalCost(52,44),routeCostsbölümünde listelenen maliyetlerin toplamıdır.- Yanıtın en üst düzeyinde,
costsnesnesi çözümde ortaya çıkan her maliyeti özetler. Tüm araç rotalarının işletme maliyetleri ve atlanan gönderi içinmodel.shipments.penalty_cost(5, 0) gibi cezalar buna dahildir. - Son
totalCost(57.44), çözümün genel toplamını temsil eder. Bu, tüm araçlarınrouteTotalCostdeğerlerinin ve tüm ceza maliyetlerinin toplamıdır. Bu durumda, 52,44 + 5,0 olur.