مستندات API بهینه‌سازی ناوگان (VRP)

تعریف سرویس بهینه‌سازی ناوگان

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، گزینه‌های زیر را متناسب با مسئله خود تعیین کنید.

گزینهمقادیرتوضیحات
roundtriptrue (پیش‌فرض)، falseمشخص می‌کند مسیر امکان بازگشت به اولین نقطه را داشته باشد یا خیر.
sourceany (پیش‌فرض)، firstنقطه شروع را تعیین می‌کند. مقدار first اولین نقطه را مبدأ قرار می‌دهد؛ در غیر این صورت یک نقطه به‌صورت تصادفی انتخاب می‌شود.
destinationany (پیش‌فرض)، lastنقطه پایان را تعیین می‌کند. مقدار last آخرین نقطه را مقصد قرار می‌دهد؛ در غیر این صورت یک نقطه به‌صورت تصادفی انتخاب می‌شود.
stepstrue، false (پیش‌فرض)گام‌های هر مسیر را برمی‌گرداند؛ این گزینه به‌صورت پیش‌فرض غیرفعال است.
annotationstrue، false (پیش‌فرض)، nodes، distance، duration، datasources، weight، speedداده‌های تکمیلی قابل دریافت برای هر مسیر؛ برای توضیحات بیشتر به سرویس مسیریابی مراجعه کنید.
geometriespolyline (پیش‌فرض)، polyline6، geojsonفرمت مسیر بازگشتی در پارامتر geometry
overviewsimplified (پیش‌فرض)، full، falseسطح جزئیات مسیر بازگشتی در پارامتر geometry

حالت‌های قابل حل در VRP

سرویس برای گزینه‌های roundtrip، source و destination مقادیر پیش‌فرض دارد. امکان حل ترکیب‌های مختلف این گزینه‌ها در جدول زیر مشخص شده است.

roundtripsourcedestinationامکان حل
truefirstlastدارد
truefirstanyدارد
trueanylastدارد
trueanyanyدارد
falsefirstlastدارد
falsefirstanyندارد
falseanylastندارد
falseanyanyندارد

عملکرد سرویس

این سرویس با بهینه‌سازی مسیردهی میان نقاط، مسیر مناسب را محاسبه و در اختیار کاربر قرار می‌دهد. سرویس‌های موجود و 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 سرویس بهینه‌سازی ناوگان را از لینک زیر دریافت کنید.

دانلود فایل Postman سرویس VRP

Swagger