Contoh ini menunjukkan cara menggunakan parameter biaya untuk mendapatkan rute yang hemat biaya.
Untuk mengetahui ringkasan konseptual yang lengkap, lihat dokumen Konsep utama model biaya.
Contoh permintaan
Contoh berikut menunjukkan skenario saat satu kendaraan harus mengirimkan
tiga pengiriman. Kendaraan memiliki biaya terkait untuk waktu dan jarak, dan
setiap pengiriman memiliki penaltyCost yang dikenakan jika pengiriman
dilewati.
Contoh permintaan ini berisi parameter terkait biaya berikut:
shipments[0]denganpenaltyCost100,0.shipments[1]denganpenaltyCost5.0.shipments[2]denganpenaltyCost50,0.vehicles[0]dengancostPerHour40,0 dancostPerKilometer10,0.
Lihat contoh permintaan dengan biaya
{ "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 } ] } }
Contoh respons
Respons menunjukkan bahwa pengoptimal membuat rute yang melakukan dua dari
tiga pengiriman. Pengiriman ketiga dilewati karena penaltyCost-nya lebih rendah daripada biaya kendaraan yang dihitung untuk pengambilan dan pengiriman.
Lihat respons terhadap contoh permintaan dengan biaya
{ "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 } } }
Kolom berikut menunjukkan cara penghitungan biaya dalam respons:
routeCostsmenguraikan biaya operasional untuk rute tertentu, yang dalam hal ini adalah:model.vehicles.cost_per_kilometer: 33.53.model.vehicles.cost_per_hour: 18.91.
routeTotalCost(52,44) adalah jumlah biaya yang tercantum dirouteCosts.- Di tingkat teratas respons, objek
costsmeringkas setiap biaya yang dikeluarkan dalam solusi. Hal ini mencakup biaya operasional dari semua rute kendaraan ditambah penalti apa pun, sepertimodel.shipments.penalty_cost(5.0) untuk pengiriman yang dilewati. totalCostakhir (57,44) mewakili total keseluruhan solusi, yang merupakan jumlahrouteTotalCostdari semua kendaraan dan semua biaya penalti. Dalam hal ini, nilainya adalah 52,44 + 5,0.