یادداشت برای تولید
برای سادگی، این راهنما از REST و JSON استفاده میکند. بااینحال، برای محیط تولید، توصیه کلی این است که برای عملکرد بهتر از gRPC و کتابخانههای کارخواه استفاده کنید. برای اطلاعات بیشتر، کتابخانههای کارخواه Route Optimization API را ببینید.
پساز ارسال درخواست در اولین درخواستتان را ایجاد کنید، بهینهساز
OptimizeToursResponse را برمیگرداند. این پاسخ طرح مسیر است که راننده شما باید دنبال کند. این راهنما به شما نشان میدهد چگونه آن را بخوانید.
خلاصه طرح مسیر
برای سناریو مهدکودک سگها، بهینهساز سگ کوهستانی برنی و سگ شیواوا را به ون شما اختصاص میدهد و سگ ژرمن شپرد را رد میکند. برنامه مسیر راننده شما بهصورت زیر است:
- شیفت را ساعت ۷:۵۵ صبح در مهدکودک شروع کن.
- سگ کوهستانی برنیز را ساعت ۸:۲۰ صبح نزدیک برج کویت بردارید.
- ساعت ۸:۵۸ صبح، سگ نژاد چیواوا را از «پارک زمین بازی ساوت سانست» بردارید.
- ساعت ۹:۲۴ صبح به مهدکودک برگردید و تا باز شدن پنجره تحویل در ساعت ۹:۳۰ صبح صبر کنید.
- سگ کوهستانی برن را ساعت ۹:۳۰ صبح پیاده کن.
- ساعت ۹:۳۵ صبح، Chihuahua را پیاده کن.
- پایان نوبت کاری در ساعت ۹:۴۰ صبح.
هزینه طرح مسیر ۱۴۷٫۲۲ دلار است، شامل ۱۰۰ دلار جریمه برای رد شدن از ژرمن شپرد.
برای بررسی نتایج، پاسخ خود را با پاسخ کامل نمونه مقایسه کنید. نتایج شما ممکن است کمی متفاوت باشد زیرا زمان و مسافت سفر به دادههای فعلی جاده بستگی دارد.
پاسخ نمونه کامل
{ "routes": [ { "vehicleStartTime": "2024-02-13T15:55:04Z", "vehicleEndTime": "2024-02-13T17:40:00Z", "visits": [ { "isPickup": true, "startTime": "2024-02-13T16:20:00Z", "detour": "0s", "shipmentLabel": "Bernese mountain dog", "visitType": "PICKUP_SHIPMENT" }, { "shipmentIndex": 1, "isPickup": true, "startTime": "2024-02-13T16:58:12Z", "detour": "2600s", "shipmentLabel": "Chihuahua", "visitType": "PICKUP_SHIPMENT" }, { "startTime": "2024-02-13T17:30:00Z", "detour": "2297s", "shipmentLabel": "Bernese mountain dog", "visitType": "DELIVER_SHIPMENT" }, { "shipmentIndex": 1, "startTime": "2024-02-13T17:35:00Z", "detour": "656s", "shipmentLabel": "Chihuahua", "visitType": "DELIVER_SHIPMENT" } ], "transitions": [ { "travelDuration": "1496s", "travelDistanceMeters": 7082, "waitDuration": "0s", "totalDuration": "1496s", "startTime": "2024-02-13T15:55:04Z" }, { "travelDuration": "1992s", "travelDistanceMeters": 16589, "waitDuration": "0s", "totalDuration": "1992s", "startTime": "2024-02-13T16:25:00Z" }, { "travelDuration": "1252s", "travelDistanceMeters": 7860, "waitDuration": "356s", "totalDuration": "1608s", "startTime": "2024-02-13T17:03:12Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:35:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:40:00Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "routeCosts": { "model.vehicles.cost_per_hour": 47.22 }, "routeTotalCost": 47.22, "vehicleFullness": { "maxFullness": 0.3497777777777778, "activeSpan": 0.3497777777777778 } } ], "skippedShipments": [ { "index": 2, "label": "German shepherd", "penaltyCost": 100 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2024-02-13T15:55:04Z", "latestVehicleEndTime": "2024-02-13T17:40:00Z", "totalCost": 147.22, "costs": { "model.vehicles.cost_per_hour": 47.22, "model.shipments.penalty_cost": 100 } } }
ساختار پاسخ
OptimizeToursResponse شامل دو مؤلفه اصلی است:
routes: طرح مسیر برای هر خودرو در ناوگان شما، ازجمله ترتیب و زمان هر تحویل گرفتن و تحویل دادن. یک ون دارید، بنابراین یک طرح مسیر وجود دارد.metrics: خلاصهای از کل برنامه مسیر، ازجمله هزینه کل، مدت، و مسافت.
چون بهینهساز از ژرمن شپرد رد میشود، پاسخ همچنین شامل
skippedShipments است.
بخشهای زیر نشان میدهند که هر جزئیات خلاصه طرح مسیر را در پاسخ کجا پیدا کنید.
کدام وسیله نقلیه در کدام مسیر حرکت میکند؟
بهینهساز طرح مسیری (آرایه routes) تولید میکند که با ترتیب vehicles در درخواست شما مطابقت دارد.
فیلد vehicleIndex هر خودرو را براساس موقعیت صفرپایه آن شناسایی میکند که برای ون شما ۰ است. فیلدهای vehicleStartTime و
vehicleEndTime به راننده دستور میدهند که چه زمانی نوبت کاری خود را شروع و پایان دهد.
Route Optimization API مُهرهای زمان را در ساعت هماهنگ جهانی (UTC) برمیگرداند که با پسوند Z مشخص میشود،
صرفنظر از انحراف در درخواست شما. برای دریافت زمان سانفرانسیسکو، ۸ ساعت کم کنید. برای ون شما، نوبت کاری از ساعت ۷:۵۵ صبح تا ۹:۴۰ صبح است، همانطور که در نمونه کد زیر نشان داده شده است.
{
"routes": [
{
// "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
}
]
...
}
ترتیب سوار و پیاده کردن مسافران چیست؟
در هر مسیر، آرایه visits شامل همه سوار کردنها و تحویلها
برای خودرو اختصاصدادهشده بهترتیب زمانی است.
shipmentIndex هر بازدید، موقعیت صفرپایه محموله در درخواست شما است: 0 سگ کوهستانی برنی است و 1 شیواوا است. فیلد
shipmentLabel برچسبی را که برای هر محموله تنظیم کردهاید نشان میدهد.
برای تشخیص بین تحویل گرفتن و تحویل دادن (یا ارسال)، میتوانید
فیلدهای visitType یا isPickup را بررسی کنید:
visitType: کنش بازدید را بهطور صریح تعریف میکند.- تحویل:
visitType="PICKUP_SHIPMENT" - تحویل:
visitType="DELIVER_SHIPMENT"
- تحویل:
isPickup: فیلد کمکی بولی.- تحویل گرفتن:
isPickup=true - ارسال:
isPickup=false(در JSON حذف شده است)
- تحویل گرفتن:
برای تعیین توالی دقیق رویدادها و زمان رسیدن موردانتظار به هر مکان، آرایه visits را بهترتیب بخوانید. جدول زیر کنش طرح مسیر را براساس ترتیب و مقادیر فیلدهای shipmentIndex، isPickup یا visitType، و startTime نشان میدهد.
| توالی | بهارزش shipmentIndex |
مقدار isPickup یا visitType |
مقدار startTime (بهوقت ساعت هماهنگ جهانی) |
کنش |
|---|---|---|---|---|
| نخستین بازدید | ۰ (در JSON حذف شده است) | درست یا PICKUP_SHIPMENT |
2024-02-13T16:20:00Z | سگ کوهستانی برن را ساعت ۸:۲۰ صبح بردارید. |
| بازدید دوم | 1 | درست یا PICKUP_SHIPMENT |
2024-02-13T16:58:12Z | چیواوا را ساعت ۸:۵۸ صبح بردارید. |
| سومین بازدید | ۰ (در JSON حذف شده است) | نادرست (حذفشده) یا DELIVER_SHIPMENT |
2024-02-13T17:30:00Z | سگ کوهستانی برنیز را ساعت ۹:۳۰ صبح به مرکز نگهداری سگها ببر. |
| بازدید چهارم | 1 | نادرست (حذفشده) یا DELIVER_SHIPMENT |
2024-02-13T17:35:00Z | ساعت ۹:۳۵ صبح، سگ شیواوا را به مهد سگها ببر. |
نمونه کد زیر نشان میدهد که چگونه پاسخ این توالی را ارائه میدهد:
{
"routes": [
{
"visits": [
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
"isPickup": true,
"startTime": "2024-02-13T16:20:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "PICKUP_SHIPMENT"
},
{
"shipmentIndex": 1,
"isPickup": true,
"startTime": "2024-02-13T16:58:12Z",
"shipmentLabel": "Chihuahua",
"visitType": "PICKUP_SHIPMENT"
},
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:30:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "DELIVER_SHIPMENT"
},
{
"shipmentIndex": 1,
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:35:00Z",
"shipmentLabel": "Chihuahua",
"visitType": "DELIVER_SHIPMENT"
}
]
}
]
}
هر بازدید همچنین دارای یک visitRequestIndex است که موقعیت صفرپایه گزینه تحویل یا ارسال است که بهینهساز برای محموله انتخاب کرده است. هر سگ در این سناریو فقط یک گزینه سوار کردن و یک گزینه پیاده کردن دارد، بنابراین visitRequestIndex همیشه 0 است و پاسخ آن را حذف میکند.
بین بازدیدها چه اتفاقی میافتد؟
در هر مسیر، آرایه transitions جزئیات سفر بین بازدیدها را فهرست میکند. اگرچه visits و transitions فهرستهای جداگانهای هستند،
بهصورت زیر در زمان تداخل دارند:
transitions[0](رانندگی از شروع تا نخستین بازدید)visits[0](نخستین بازدید)transitions[1](رانندگی از بازدید اول به بازدید دوم)visits[1](بازدید دوم)...visits[N-1](آخرین بازدید، که N تعداد کل بازدیدها است)transitions[N](رانندگی از آخرین بازدید تا پایان)
میتوانید خط زمان مسیر را با نگاه کردن به فیلد startTime در هر دو آرایه دنبال کنید. startTime انتقال زمانی است که راننده سفر را شروع میکند، و startTime بازدید زمانی است که راننده سوار کردن یا پیاده کردن را شروع میکند.
هر گذار زمان رانندگی و فاصله موردانتظار بین مکانها را نشان میدهد.
جدول زیر هر دو فیلد transitions و visits را به کنشهای مسیر زمانی برای سناریو مهدکودک سگها نگاشت میکند.
| توالی | نام فیلد | مقدار startTime (بهوقت ساعت هماهنگ جهانی) |
جزئیات | کنش |
|---|---|---|---|---|
| گذار اول | transitions[0] |
2024-02-13T15:55:04Z |
travelDuration: 1496stravelDistanceMeters: 7082 |
برای تحویل گرفتن سگ کوهستانی برنیس، ۷ کیلومتر بهمدت ۲۵ دقیقه از مهدکودک رانندگی کنید. نوبت کاری ساعت ۷:۵۵ صبح شروع میشود. |
| نخستین بازدید | visits[0] |
2024-02-13T16:20:00Z |
shipmentIndex: 0 (omitted in JSON)isPickup: True |
سگ کوهستانی برن را از ساعت ۸:۲۰ صبح بردارید. بازدید ۵ دقیقه طول میکشد. |
| گذار دوم | transitions[1] |
2024-02-13T16:25:00Z |
travelDuration: 1992stravelDistanceMeters: 16589 |
برای گرفتن چیواوا، از ساعت ۸:۲۵ صبح ۱۷ کیلومتر را در ۳۳ دقیقه از برج کویت رانندگی کنید. |
| بازدید دوم | visits[1] |
2024-02-13T16:58:12Z |
shipmentIndex: 1isPickup: True |
ساعت ۸:۵۸ صبح، چیواوا را بردارید. بازدید ۵ دقیقه طول میکشد. |
| گذار سوم | transitions[2] |
2024-02-13T17:03:12Z |
travelDuration: ۱۲۵۲ ثانیهtravelDistanceMeters: ۷۸۶۰waitDuration: ۳۵۶ ثانیه |
از ساعت ۹:۰۳ صبح، ۸ کیلومتر را در ۲۱ دقیقه از «زمین بازی ساوت سانست» بهسمت مهدکودک رانندگی میکند. ساعت ۹:۲۴ صبح میرسد و ۶ دقیقه منتظر میماند تا پنجره تحویل باز شود. |
| بازدید سوم | visits[2] |
2024-02-13T17:30:00Z |
shipmentIndex: 0 (در JSON حذف شده است)isPickup: False (در JSON حذف شده است) |
سگ کوهستانی برنی را ساعت ۹:۳۰ صبح به مرکز نگهداری روزانه سگها ببر. بازدید ۵ دقیقه طول میکشد. |
| گذار چهارم | transitions[3] |
2024-02-13T17:35:00Z |
travelDuration: 0stravelDistanceMeters: 0 (omitted in JSON) |
رانندگی نکنید. آماده برای رساندن سگ شیواوا به مهدکودک در ساعت ۹:۳۵ صبح. |
| بازدید چهارم | visits[3] |
2024-02-13T17:35:00Z |
shipmentIndex: 1isPickup: False (omitted in JSON) |
سگ شیواوا را ساعت ۹:۳۵ صبح به مهدکودک سگها ببرید. بازدید ۵ دقیقه طول میکشد. |
| انتقال پنجم | transitions[4] |
2024-02-13T17:40:00Z |
travelDuration: 0stravelDistanceMeters: 0 (omitted in JSON) |
رانندگی نکنید. راننده نوبت کاری را در ساعت ۹:۴۰ ق.ظ. تمام میکند. |
نمونه کد زیر نشان میدهد که چگونه پاسخ این توالی را برای
transitions[0] و transitions[1] ارائه میدهد:
{
"routes": [
{
"transitions": [
{
"travelDuration": "1496s",
"travelDistanceMeters": 7082,
"waitDuration": "0s",
"totalDuration": "1496s",
"startTime": "2024-02-13T15:55:04Z"
},
{
"travelDuration": "1992s",
"travelDistanceMeters": 16589,
"waitDuration": "0s",
"totalDuration": "1992s",
"startTime": "2024-02-13T16:25:00Z"
},
...
]
}
]
}
هزینه این مسیر چقدر است؟
بسته به اینکه به هزینه یک خودرو خاص نیاز دارید یا هزینه کل ناوگان، میتوانید چندین فیلد را در پاسخ مشاهده کنید.
جدول زیر همه روشهایی را که میتوانید اطلاعات هزینه را در پاسخ پیدا کنید فهرست میکند:
| والدین | پارامتر | حوزه | شرح |
|---|---|---|---|
ShipmentRoute |
routeCosts |
بهازای هر مسیر | تفکیک مؤلفههای هزینه خاص (مانند هزینه هر ساعت) برای آن مسیر خاص. |
routeTotalCost |
بهازای هر مسیر | هزینه کل محاسبهشده برای آن مسیر خاص. | |
Metrics |
totalCost |
کل (همه مسیرها) | کل هزینه تجمیعی برای همه مسیرها در راهحل. |
costs |
کل (همه مسیرها) | تفکیک مؤلفههای هزینه تجمیعشده در همه مسیرهای موجود در راهحل. |
هزینههای مشخصشده در routeCosts و costs نشاندهنده محدودیتهای هزینه است که در درخواستتان مشخص میکنید. برای اطلاعات بیشتر، سند
مفهوم کلیدی مدل هزینه را ببینید.
برای این سناریو مهدکودک سگ، چون یک ارسال ردشده دارید، هزینه هر مسیر و هزینه کل تجمیعشده متفاوت است. هزینه مسیر فقط شامل هزینههای مرتبط با آن مسیر خاص (دستمزد راننده) است، درحالیکه هزینه کل تجمیعشده شامل جریمه محموله نادیدهگرفتهشده نیز میشود. نمونه کد زیر نشان میدهد که این مقادیر را در کجا میتوانید در پاسخ پیدا کنید:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
"routeCosts": {
"model.vehicles.cost_per_hour": 47.22
},
"routeTotalCost": 47.22
}
],
"metrics": {
"totalCost": 147.22,
"costs": {
"model.shipments.penalty_cost": 100,
"model.vehicles.cost_per_hour": 47.22
},
...
}
}
طبق برنامه مسیر، راننده ون را از ساعت ۷:۵۵ صبح تا ۹:۴۰ صبح میراند که تقریباً ۱ ساعت و ۴۵ دقیقه (۶۲۹۶ ثانیه) است. با نرخ تعریفشده شما که ۲۷ دلار در ساعت است، هزینه مسیر ۴۷٫۲۲ دلار است. چون بهینهساز از محموله ژرمن شپرد صرفنظر کرد، هزینه جریمهای معادل ۱۰۰ دلار اضافه میکند، که مجموع هزینه کل را به ۱۴۷٫۲۲ دلار میرساند.
چرا ارسال رد شده است؟
بهینهساز هر محمولهای را که انجام نمیدهد در آرایه
skippedShipments فهرست میکند. دلیل رد شدن ارسال به این بستگی دارد که آیا
penaltyCost تنظیم کردهاید یا نه:
- محمولههای اجباری (بدون
penaltyCost): بهینهساز هرگز این محمولهها را فقط بهدلیل هزینه بالای انجام آنها نادیده نمیگیرد. فقط درصورتی از یک محموله صرفنظر میکند که نتواند آن را در هیچ مسیری قرار دهد، مثلاً بهدلیل اینکه پنجره زمانی آن با محمولههای دیگر تداخل دارد. - محمولههای اختیاری (با
penaltyCost): بهینهساز همچنین میتواند این محمولهها را نادیده بگیرد اگر هزینه انجام آنها بیشتر از جریمه باشد. میتوانید هزینههای جریمه متفاوتی را برای اولویتبندی برخی محمولهها نسبتبه محمولههای دیگر تنظیم کنید.
برای این سناریو، پنجره تحویل سگ ژرمن شپرد با پنجره سگ کوهستانی برن تداخل دارد. فاصله بین برج کویت و لندز اند ۲۵ دقیقه است، بنابراین راننده نمیتواند هر دو مسافر را در بازه زمانی ۲۰ دقیقهای سوار کند. بهینهساز باید یکی از آنها را رد کند. چون سگ ژرمن شپرد هزینه جریمه کمتری دارد (۱۰۰ دلار درمقابل ۱۰۰۰ دلار برای مشتری معمولی)، بهینهساز از آن صرفنظر میکند و جریمه ۱۰۰ دلاری را متحمل میشود.
نمونه کد زیر شیء skippedShipments را در پاسخ نشان میدهد:
{
...
"skippedShipments": [
{
"index": 2,
"label": "German shepherd",
"penaltyCost": 100
}
],
...
}
شیء skippedShipments در پاسخ حاوی فیلدهای زیر است:
index: نمایه صفرپایه محموله در درخواست شما (۲ برای محموله سوم).label: برچسبی که در درخواست مشخص کردهاید («ژرمن شپرد»).penaltyCost: هزینه جریمهای که در درخواست مشخص کردهاید و میانای برنامهسازی کاربردی آن را به هزینه کل اضافه میکند.
برای جلوگیری از رد شدن محموله توسط بهینهساز، محدودیت ایجادکننده تداخل را کاهش دهید. برای مثال، از صاحب سگ ژرمن شپرد بخواهید بازه زمانی تحویل را منعطفتر کند، سپس timeWindows را برای آن تحویل در درخواستتان بهروز کنید.
فیلدهای پاسخ در مثال
جدول زیر همه فیلدهای پاسخ را که در
OptimizeToursResponse سناریو نمونه برگردانده شده است شرح میدهد. اگرچه برای درک طرح مسیر نیازی به استفاده از همه فیلدها ندارید، میتوانید این فیلدها را تجزیهوتحلیل کنید تا نحوه تنظیم OptimizeToursRequest را برای مطابقت با نیازهای کسبوکارتان تعیین کنید. برای اطلاعات بیشتر، چرخه حیات طرح مسیر را ببینید.
میتوانید محتوا را براساس والد یا جستجوی نوشتاری فیلتر کنید.
| والدین | پارامتر | نوع خصوصیت | شرح |
|---|---|---|---|
OptimizeToursResponse |
routes |
آرایه اشیاء (ShipmentRoute) |
این شامل فهرست مسیرهای محاسبهشده برای هر خودرو است (یک مسیر برای هر خودرو). برای این سناریو مهدکودک سگ، این شامل طرح مسیر دقیق برای ون تکی شما است. |
metrics |
شیء (Metrics) |
این شامل سنجههای کلی برای راهحل است که در همه مسیرها انبوهش شده است. برای این سناریوی مهد سگها، این خلاصه هزینهها و مدت زمان عملیاتی برای روز است. | |
skippedShipments |
آرایه اشیاء (SkippedShipment) |
این شامل فهرست محمولههایی است که در راهحل نادیده گرفته شدهاند. برای این سناریو، سگ سوم (ژرمن شپرد) رد میشود. | |
ShipmentRoute |
vehicleStartTime |
مُهر زمان | این زمانی است که خودرو مسیرش را شروع میکند. برای این سناریو مهدکودک سگها، راننده ساعت ۷:۵۵ صبح شروع به رانندگی ون میکند. |
vehicleEndTime |
مُهر زمان | این زمانی است که خودرو مسیرش را بهپایان میرساند. برای این سناریو مهد سگ، راننده رانندگی ون را در ساعت ۹:۴۰ صبح بهپایان میرساند. | |
visits |
آرایه اشیاء (Visit) |
این فهرست مرتبشدهای از تحویل گرفتنها و تحویل دادنها در مسیر است. برای این سناریو نگهداری روزانه سگ، این توالی سوار کردن و پیاده کردن دو سگ است. | |
transitions |
آرایه اشیاء (Transition) |
این فهرست مرتبشدهای از مسافت، و زمان سفر و انتظار بین بازدیدها است. برای این سناریوی مهدکودک سگها، این جزئیات فاصله و زمان رانندگی بین برج کویت، پارک زمین بازی ساوت سانست، و مهدکودک را نشان میدهد. | |
metrics |
شیء (AggregatedMetrics) |
این سنجهها مختص این مسیر هستند. برای این سناریوی مهدکودک سگها، اینها آمار این ون خاص هستند. این سنجهها براساس هزینههایی است که در درخواستتان مشخص کردهاید. برای جزئیات بیشتر، سند مفهوم کلیدی مدل هزینه را ببینید. | |
routeCosts |
شیء (نقشه) | این تفکیک هزینههای خاص برای این مسیر است. برای این سناریو مهدکودک سگ، این هزینه محاسبهشده از دستمزد راننده ۲۷ دلار در ساعت را نشان میدهد. | |
routeTotalCost |
عدد | این هزینه کل برای این مسیر خاص است. برای این سناریو مهدکودک سگها، هزینه کل برای مسیر این ون 47.22 است. |
|
vehicleFullness |
شیء (VehicleFullness) |
این تفکیکی است از اینکه خودرو چقدر به محدودیتهای عملیاتی خود، مانند زمان، مسافت، و بار نزدیک میشود. برای این سناریو مهد سگ،
فقط زمان شروع و پایان نوبت کاری راننده را محدود میکند، بنابراین بهینهساز
vehicleFullness را بهعنوان کسری از مدت واقعی مسیر
و حداکثر زمان دردسترس برای نوبت کاری راننده محاسبه میکند. |
|
Visit |
shipmentIndex |
عدد صحیح | این نمایه صفرپایه محموله در درخواست اصلی است. برای این سناریوی مهدکودک سگها، 0 نشاندهنده سگ کوهستانی برنی و 1 نشاندهنده چیواوا است. |
isPickup |
بولی | اگر این بازدید از نوع تحویل گرفتن باشد، این فیلد درست است. برای این سناریو مهدکودک سگها، این مقدار هنگام تحویل گرفتن سگ درست و هنگام تحویل دادن سگ به مهدکودک نادرست (یا ناموجود) است. | |
startTime |
مُهر زمان | این زمان شروع تخمینی بازدید است. برای این سناریو مهدکودک سگها، این زمانی است که راننده در میزند. | |
detour |
مدت | این زمان اضافهای است که بهینهساز به سفر این محموله خاص اضافه میکند. مسیر انحرافی تفاوت بین طرح مسیر واقعی و
سفر مستقیم ایدهآل است، درصورتیکه راننده محموله یا وظیفه دیگری
برای تکمیل نداشته باشد. برای این سناریو مهدکودک سگ، اولین بازدید که برای سوار کردن سگ کوهستانی برنی است، انحراف ۰ دارد زیرا راننده مستقیماً از مرکز مهدکودک به این محل سوار کردن میرود. برای سوار کردن سگ شیواوا، مسیر انحرافی ۴۳ دقیقه است زیرا راننده ابتدا سگ کوهستانی برنی را سوار میکند (و ۵ دقیقه صرف سوار کردن او میکند). |
|
shipmentLabel |
رشته | این برچسب مربوط به درخواست هر محموله است. برای این سناریو مهدکودک سگها، برچسبها «چیواوا» یا «سگ کوهستانی برن» هستند. | |
visitType |
رشته (شمارشی) | این نشاندهنده نوع بازدید است که میتواند PICKUP_SHIPMENT
برای تحویل گرفتن یا DELIVER_SHIPMENT برای ارسال باشد. برای این سناریو،
یا PICKUP_SHIPMENT است یا DELIVER_SHIPMENT. |
|
Transition |
travelDuration |
مدت | این مدت زمانی است که درطول این انتقال بین بازدیدها صرف سفر شده است. برای مثال، در این سناریو مهد سگ، راننده تقریباً ۲۵ دقیقه رانندگی میکند تا از مهد سگ به برج کویت برسد و سگ کوهستانی برن را سوار کند. |
travelDistanceMeters |
عدد صحیح | این مسافت طیشده به متر درطول این انتقال است. برای مثال، در این سناریو مهدکودک سگها، راننده ۷ کیلومتر از مهدکودک تا «برج کویت» رانندگی میکند تا سگ کوهستانی برنی را سوار کند. | |
waitDuration |
مدت | این مدت زمانی است که قبلاز تحویل گرفتن یا تحویل دادن بعدی صرف انتظار میشود. برای این سناریو مهدکودک سگ، این مقدار برای انتقال سوم ۶ دقیقه (۳۵۶ ثانیه) است، زیرا راننده قبلاز باز شدن پنجره تحویل در ساعت ۹:۳۰ صبح به مرکز مهدکودک میرسد. برای انتقالهای دیگر، این مقدار ۰ است. | |
totalDuration |
مدت | این مدت کل انتقال است، شامل رانندگی و انتظار. برای مثال، راننده ۲۵ دقیقه (۲۵ دقیقه رانندگی و ۰ دقیقه انتظار) را در انتقال اول و ۲۷ دقیقه (۲۱ دقیقه رانندگی و ۶ دقیقه انتظار) را در انتقال سوم برای بازگشت به مهدکودک صرف میکند. | |
startTime |
مُهر زمان | این زمانی است که سفر شروع میشود. این زمان با زمان تکمیل بازدید قبلی (یا برای اولین انتقال، با زمان شروع خودرو) مطابقت دارد. برای سناریو مهدکودک سگ، اولین انتقال در ساعت ۷:۵۵ صبح وقتی راننده مهدکودک را ترک میکند شروع میشود، و دومین انتقال در ساعت ۸:۲۵ صبح وقتی راننده برج کویت را ترک میکند شروع میشود. | |
Metrics |
aggregatedRouteMetrics |
شیء (AggregatedMetrics) |
این مقدار مجموع سنجهها در همه مسیرها است. برای این سناریوی مهد سگ، اینها سنجههای کلی برای یک ون شما است. |
usedVehicleCount |
عدد صحیح | این تعداد وسایل نقلیه استفادهشده در راهحل است. برای این سناریوی مهدکودک سگ، فقط از یک ون استفاده میکنید. | |
earliestVehicleStartTime |
مُهر زمان | این زودترین زمان شروع در بین همه وسایل نقلیه است. برای این سناریوی مهدکودک سگها، مسیر ون از ساعت ۷:۵۵ صبح شروع میشود. | |
latestVehicleEndTime |
مُهر زمان | این آخرین زمان پایان در بین همه وسایل نقلیه است. برای این سناریو مهدکودک سگ، مسیر ون در ساعت ۹:۴۰ صبح به پایان میرسد. | |
totalCost |
عدد | این هزینه کل راهحل است. برای این سناریو مهدکودک سگ، کل طرح مسیر 147.22 برای روز هزینه دارد (شامل 47.22 دستمزد راننده و 100 جریمه ارسال نادیدهگرفتهشده). |
|
costs |
شیء (نقشه) | این تفکیک هزینه کل براساس دسته است. برای این سناریو مهد سگ، بهینهساز هزینه مسیر را براساس هزینه ساعتی و هزینه جریمه برای سگ ژرمن شپرد نادیدهگرفتهشده محاسبه کرد. | |
AggregatedMetrics |
performedShipmentCount |
عدد صحیح | این تعداد محمولههایی است که باموفقیت مسیریابی شدهاند. برای این سناریو مهدکودک سگها، راننده دو سگ را جابهجا میکند. |
travelDuration |
مدت | این کل زمان صرفشده برای سفر است. برای این سناریو مهد سگ، راننده ۷۹ دقیقه سفر میکند. | |
waitDuration |
مدت | این کل زمان صرفشده برای انتظار است. برای این سناریو مهدکودک سگ، راننده ۶ دقیقه (۳۵۶ ثانیه) در مرکز مهدکودک منتظر میماند تا پنجره تحویل باز شود. | |
delayDuration |
مدت | این مدتزمان اضافهای است که بااستفاده از مشخصههای انتقال تعریف میکنید، مانند زمان رزروشده برای پارک کردن. برای این سناریو مهد سگ، هیچ مشخصه انتقالی در درخواست تعریف نکردهاید، بنابراین این مقدار صفر است. | |
breakDuration |
مدت | این کل زمان صرفشده برای استراحت است. برای این سناریو مهدکودک سگ، هیچ وقفهای وجود ندارد. | |
visitDuration |
مدت | این کل زمان صرفشده برای ارائه خدمات در بازدیدها است. برای این سناریوی مهد سگ، این زمان ۲۰ دقیقه است (۵ دقیقه برای هر بازدید برای ۴ بازدید). | |
totalDuration |
مدت | این مجموع همه مؤلفههای مدت است. برای این سناریوی مهد سگ، مدت کل ۱۰۵ دقیقه (۶۲۹۶ ثانیه) است. | |
travelDistanceMeters |
عدد صحیح | این کل مسافت سفر به متر است. برای این سناریو مهدکودک سگ، راننده درمجموع ۳۱٫۵ کیلومتر مسافت طی میکند. | |
performedShipmentPenaltyCostSum |
دوتایی | این مبلغ مجموع هزینههای جریمه همه محمولههای انجامشده است. برای این سناریو، این مقدار 2000 است زیرا راننده سگ کوهستانی برنی و چیواوا را سوار کرده است (هرکدام با هزینه جریمه 1000). |
|
VehicleFullness |
maxFullness |
عدد | این بالاترین نسبت استفاده در بین همه فیلدهای VehicleFullness است. برای این سناریو مهد سگها، این مقدار ۰٫۳۵ است زیرا راننده فقط ۱۰۵ دقیقه از کل شیفت صبح را که در درخواست ۵ ساعت تعریف کردهاید، با ون رانندگی میکند. |
activeSpan |
عدد | این نسبت کل طول شیفت راننده درمقایسه با ساعتهای کاری طرح مسیر است. عدد کمتر یعنی راننده زمان کمتری از روز کاری را صرف راندن خودرو میکند. برای این سناریو مهد سگها، این مقدار ۰٫۳۵ است زیرا راننده ون را بهمدت ۱۰۵ دقیقه درطول شیفت ۵ ساعته میراند. | |
SkippedShipment |
index |
عدد صحیح | این نمایه صفرپایه محموله در درخواست اصلی است. در این سناریو، ۲ نشاندهنده ژرمن شپرد است. |
label |
رشته | این برچسبی است که برای محموله در درخواست مشخص کردهاید. | |
penaltyCost |
عدد | این هزینه جریمهای است که وقتی بهینهساز این محموله را نادیده میگیرد متحمل میشوید. این
با penaltyCost که در درخواست مشخص کردهاید مطابقت دارد. |