Contoh ini menunjukkan cara menggunakan parameter biaya untuk mendapatkan rute yang hemat biaya.
Untuk 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 dalamrouteCosts.- Pada tingkat teratas respons, objek
costsmerangkum setiap biaya yang dikeluarkan dalam solusi. Biaya ini mencakup biaya operasional dari semua rute kendaraan ditambah penalti, sepertimodel.shipments.penalty_cost(5,0) untuk pengiriman yang dilewati. totalCostakhir (57,44) mewakili total keseluruhan untuk solusi, yang merupakan jumlahrouteTotalCostdari semua kendaraan dan semua biaya penalti. Dalam hal ini, nilainya adalah 52,44 + 5,0.