این مثال نشان میدهد که چگونه میتوان از پارامترهای هزینه برای رسیدن به یک مسیر مقرونبهصرفه استفاده کرد.
برای یک مرور کلی مفهومی، به سند مفهوم کلیدی مدل هزینه مراجعه کنید.
درخواست نمونه
مثال زیر سناریویی را نشان میدهد که در آن یک وسیله نقلیه باید سه محموله را تحویل دهد. این وسیله نقلیه هزینههای مربوط به زمان و مسافت را دارد و هر محموله دارای یک penaltyCost است که در صورت عدم تحویل محموله، متحمل میشود.
این درخواست نمونه شامل پارامترهای مرتبط با هزینه زیر است:
-
shipments[0]باpenaltyCost100.0. -
shipments[1]باpenaltyCost5.0. -
shipments[2]باpenaltyCost50.0. -
vehicles[0]باcostPerHourبرابر با 40.0 وcostPerKilometerبرابر با 10.0.
یک نمونه درخواست به همراه هزینهها را ببینید
{ "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 } ] } }
پاسخ نمونه
پاسخ نشان میدهد که بهینهساز مسیری ایجاد میکند که دو تا از سه محموله را انجام میدهد. محموله سوم نادیده گرفته میشود زیرا penaltyCost آن کمتر از هزینههای محاسبهشده وسیله نقلیه برای بارگیری و تحویل است.
پاسخ به درخواست نمونه به همراه هزینهها را ببینید
{ "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 } } }
فیلدهای زیر نحوه محاسبه هزینهها در پاسخ را نشان میدهند:
-
routeCostsهزینههای عملیاتی یک مسیر خاص را به تفکیک بیان میکند که در این مورد عبارتند از:-
model.vehicles.cost_per_kilometer: ۳۳.۵۳. -
model.vehicles.cost_per_hour: ۱۸.۹۱.
-
-
routeTotalCost(52.44) مجموع هزینههای ذکر شده درrouteCostsاست. - در بالاترین سطح پاسخ، شیء
costs، هر هزینهای که در راهحل متحمل شده است را خلاصه میکند. این شامل هزینههای عملیاتی از تمام مسیرهای وسایل نقلیه به علاوه هرگونه جریمه، مانندmodel.shipments.penalty_cost(5.0) برای محموله از دست رفته، میشود. -
totalCostنهایی (۵۷.۴۴) نشان دهنده مجموع کل برای راه حل است که مجموعrouteTotalCostاز همه وسایل نقلیه و همه هزینههای جریمه است. در این مورد، این مقدار ۵۲.۴۴ + ۵.۰ است.