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