تعریف سرویس بهینهسازی ناوگان
API بهینهسازی ناوگان VRP مپ یکی از سرویسهای پیشرفته حملونقل است که برای حل مسئله بهینهسازی ناوگان شرکتها استفاده میشود. این سرویس با الگوریتم اکتشافی حریصانه (Greedy Heuristic)، با دریافت نقاط موردنظر برای بازدید و هزینه رفتن مستقیم میان آنها، بهینهترین مسیر را برای ناوگان موجود با حداکثر بازدید از نقاط محاسبه میکند.
نکته 🚧
مسیر بازگشتی ممکن است سریعترین مسیر ممکن نباشد.
نکته 🚧
الگوریتم VRP از نوع NP-hard است؛ بنابراین همه مسیرهای بازگشتی بهصورت تقریبی محاسبه میشوند.
نکته 🚧
تمام نقاط باید روی زمین به یکدیگر متصل باشند؛ یعنی میان نقاط راه ارتباطی وجود داشته باشد.
اصطلاحات کاربردی
| نام اصطلاح | شرح اصطلاح |
|---|---|
| Geohash | فرمتی برای نگهداری فشرده دادههای جغرافیایی |
| Leaflet | کتابخانه متنباز JavaScript برای ساخت و نمایش نقشه تحت وب |
| Front end | راهکاری برای نمایش اطلاعات از طریق رابط گرافیکی و تعامل کاربر با HTML، CSS یا JavaScript |
| Zoom Level | اندازه بزرگنمایی نقشه |
| Lat (Latitude) | عرض جغرافیایی |
| Lon (Longitude) | طول جغرافیایی |
| VRP (Vehicle Routing Problem) | مسئله مسیریابی خودرو که با استفاده از الگوریتم حل میشود. |
| CVRP | مسیریابی با درنظرگرفتن ظرفیت خودرو و محل تحویل |
| CVRPTW | مسیریابی با درنظرگرفتن پنجره زمانی تحویل و ظرفیت هر خودرو و محل تحویل |
| Vehicle | هر وسیله نقلیهای که توانایی حمل بار داشته باشد. |
| Capacity | ظرفیت اسمی هر خودرو که با عدد صحیح مشخص میشود و حداکثر بار قابل حمل را نشان میدهد. |
| TW (Time Window) | پنجره زمانی یا بازه تحویل مشخص در هر مقصد |
ساختار استفاده و گزینههای سرویس
API بهینهسازی ناوگان مپ بهصورت Restful توسعه یافته و برای روشهای مختلف پیادهسازی انعطافپذیر است. برای استفاده از سرویس VRP، گزینههای زیر را متناسب با مسئله خود تعیین کنید.
| گزینه | مقادیر | توضیحات |
|---|---|---|
roundtrip | true (پیشفرض)، false | مشخص میکند مسیر امکان بازگشت به اولین نقطه را داشته باشد یا خیر. |
source | any (پیشفرض)، first | نقطه شروع را تعیین میکند. مقدار first اولین نقطه را مبدأ قرار میدهد؛ در غیر این صورت یک نقطه بهصورت تصادفی انتخاب میشود. |
destination | any (پیشفرض)، last | نقطه پایان را تعیین میکند. مقدار last آخرین نقطه را مقصد قرار میدهد؛ در غیر این صورت یک نقطه بهصورت تصادفی انتخاب میشود. |
steps | true، false (پیشفرض) | گامهای هر مسیر را برمیگرداند؛ این گزینه بهصورت پیشفرض غیرفعال است. |
annotations | true، false (پیشفرض)، nodes، distance، duration، datasources، weight، speed | دادههای تکمیلی قابل دریافت برای هر مسیر؛ برای توضیحات بیشتر به سرویس مسیریابی مراجعه کنید. |
geometries | polyline (پیشفرض)، polyline6، geojson | فرمت مسیر بازگشتی در پارامتر geometry |
overview | simplified (پیشفرض)، full، false | سطح جزئیات مسیر بازگشتی در پارامتر geometry |
حالتهای قابل حل در VRP
سرویس برای گزینههای roundtrip، source و destination مقادیر پیشفرض دارد. امکان حل ترکیبهای مختلف این گزینهها در جدول زیر مشخص شده است.
| roundtrip | source | destination | امکان حل |
|---|---|---|---|
| true | first | last | دارد |
| true | first | any | دارد |
| true | any | last | دارد |
| true | any | any | دارد |
| false | first | last | دارد |
| false | first | any | ندارد |
| false | any | last | ندارد |
| false | any | any | ندارد |
عملکرد سرویس
این سرویس با بهینهسازی مسیردهی میان نقاط، مسیر مناسب را محاسبه و در اختیار کاربر قرار میدهد. سرویسهای موجود و Endpoint آنها عبارتاند از:
| سرویس | Endpoint |
|---|---|
| بهینهسازی ناوگان (VRP) | /route-optimization/vrp/ |
| بهینهسازی ناوگان با خودروی ظرفیتدار (CVRP) | /route-optimization/cvrp/ |
| بهینهسازی ناوگان با خودروی ظرفیتدار و پنجره زمانی (CVRPTW) | /route-optimization/cvrptw/ |
خروجی سرویس
code: اگر مقدار آنOKباشد، مسیر با موفقیت پیدا شده است؛ در غیر این صورت خطایی رخ داده است.waypoints: آرایهای از بخشهای مسیر که شامل مقادیر زیر است:trips_index: اندیس هر زیرسفر که با اندیس سفر متناظر است.waypoint_index: اندیس هر زیرمسیر در سفر
trips: آرایهای از مسیرهای پیداشده
خطاهای سرویس
| نوع | توضیحات |
|---|---|
NoTrips | مسیری برای سفر شما پیدا نشد. |
NotImplemented | ترکیب ورودیهای شما قابل پردازش نیست. |
Unassigned | مسیری به خودرو منتسب نشده است. |
Postman
فایل Postman سرویس بهینهسازی ناوگان را از لینک زیر دریافت کنید.