Bu örnekte, uygun maliyetli bir rota elde etmek için maliyet parametrelerinin nasıl kullanılacağı gösterilmektedir.
Kavramsal olarak eksiksiz bir genel bakış için Maliyet modeliyle ilgili temel kavramlar belgesine 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
penaltyCostdeğerine sahipshipments[0]. - 5.0
penaltyCostileshipments[1] - 50,0
penaltyCostileshipments[2]. - 40,0
costPerHourve 10,0costPerKilometerdeğerine sahipvehicles[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, optimizasyon aracının üç gönderiden 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),routeCostsbölümünde listelenen maliyetlerin toplamıdır.- Yanıtın en üst düzeyinde,
costsnesnesi çözümde oluşan her maliyeti özetler. Buna, tüm araç rotalarından kaynaklanan 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ı gösterir.Bu değer, tüm araçlardakirouteTotalCostve tüm ceza maliyetlerinin toplamıdır. Bu durumda, 52,44 + 5,0 olur.