همانطور که به طور خلاصه در مرور کلی بهینهسازی مسیر توضیح داده شد، یک درخواست اساسی شامل Model ، Shipments و Vehicles به عنوان موجودیتهای مورد نیاز است:
- مدل، تنظیمات و محدودیتهای کل درخواست، شامل
ShipmentsوVehiclesرا ثبت میکند. - محمولهها نشاندهنده وظایف یا محمولههای واقعی هستند که شامل درخواستهای تحویل و برداشت
VisitRequestمیشوند. محمولهها دارای تنظیمات و محدودیتهای محلی هستند. - وسایل نقلیه نمایانگر وسایل نقلیه، رانندگان یا پرسنل هستند. وسایل نقلیه همچنین دارای تنظیمات و محدودیتهای محلی هستند.
ویژگیهای هر موجودیت، بخشی از یک مسئله بهینهسازی را در سطح خاصی از جزئیات توصیف میکنند. محدودیتهای سراسری مدل بر روی همه محمولهها و وسایل نقلیه اعمال میشوند، در حالی که محدودیتها و ویژگیهای مشخص شده روی محمولهها یا وسایل نقلیه، مختص یک محموله یا وسیله نقلیه واحد هستند.
برای مستندات کامل در مورد هر نوع پیام، به مستندات مرجع برای پیامهای ShipmentModel ( REST ، gRPC )، Shipment ( REST ، gRPC ) و Vehicle ( REST ، gRPC ) مراجعه کنید.
OptimizeToursRequest ملک
برخی از ویژگیهای رایج پیام سطح بالای OptimizeToursRequest ( REST ، gRPC ) شامل موارد زیر است:
-
searchModeنشان میدهد که آیا اولین راهحلی که محدودیتهای مشخصشده را برآورده میکند، برگردانده شود یا بهترین راهحل ممکن در یک مهلت تعیینشده پیدا شود. -
considerRoadTrafficتعیین میکند که آیا از ترافیک زنده برای مسیریابی و تخمین ETA استفاده میشود یا خیر. -
populateTransitionPolylinesتعیین میکند که آیا چندخطیهای مسیر و توکنهای مسیر در پاسخ بازگردانده شوند یا خیر.
ویژگیهای مدل
برخی از ویژگیهای رایج پیام ShipmentModel ( REST ، gRPC ) عبارتند از:
- زمان شروع
globalStartTimeنشان دهنده زودترین زمان شروع مسیرها در تمام وسایل نقلیه و محمولهها است. هیچ وسیله نقلیهای نمیتواند اولین انتقالها و محمولههای خود را قبل از این زمان آغاز کند. -
globalEndTimeنشان دهنده آخرین زمان پایان مسیرها در تمام وسایل نقلیه و محمولهها است. تمام محمولهها و انتقالهای اختصاص داده شده باید قبل از این زمان تکمیل شوند.
خواص حمل و نقل
برخی از ویژگیهای رایج پیام Shipment ( REST ، gRPC ) عبارتند از:
-
pickups[]وdeliveries[]نشان میدهند که یک محموله میتواند از کجا تحویل گرفته یا تحویل داده شود. ویژگیهایpickups[]وdeliveries[]هر دو از پیامVisitRequest( REST ، gRPC ) استفاده میکنند. -
loadDemandsنشان دهنده بار مورد نیاز یک وسیله نقلیه برای تکمیل یک محموله است. ویژگیload_limits( REST ، gRPC ) مربوط به وسایل نقلیه نشان دهنده میزان باری است که یک وسیله نقلیه میتواند در یک زمان تحمل کند. برای اطلاعات بیشتر در مورد بار، به Load Demands and Limits مراجعه کنید. -
penalty_costنشان دهنده هزینه ای است که در صورت رد شدن یک محموله متحمل می شوید. برای اطلاعات بیشتر در مورد هزینه ها به بخش پارامترهای مدل هزینه مراجعه کنید.
خواص خودرو
برخی از ویژگیهای رایج پیام Vehicle ( REST ، gRPC ) عبارتند از:
-
startLocationنشان میدهد که یک وسیله نقلیه باید مسیر خود را از کجا شروع کند. این ویژگی اختیاری است. اگر مشخص نشود، مسیر وسیله نقلیه از محل اولین محموله اختصاص داده شده به آن شروع میشود. -
endLocationنشان میدهد که یک وسیله نقلیه باید مسیر خود را در کجا به پایان برساند. این ویژگی اختیاری است. اگر مشخص نشود، مسیر وسیله نقلیه در محل آخرین محموله اختصاص داده شده به آن پایان مییابد. -
startTimeWindows[]نشان میدهد که یک وسیله نقلیه چه زمانی میتواند مسیر خود را شروع کند. این ویژگی اختیاری است. -
endTimeWindows[]نشان میدهد که یک وسیله نقلیه چه زمانی میتواند مسیر خود را شروع و پایان دهد. هر دو ویژگی اختیاری هستند. -
loadLimitsظرفیت موجود وسیله نقلیه برای تأمین تقاضای بار محمولهها را نشان میدهند. برای اطلاعات بیشتر در مورد تقاضاها و محدودیتهای بار، به بخش تقاضاها و محدودیتهای بار مراجعه کنید.
یک درخواست نمونه کامل در قالب JSON به شکل زیر است:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours و BatchOptimizeTours هر دو پیامهای درخواست را مانند مثال بالا مصرف میکنند، اما به روشهای مختلف. قبل از ارسال درخواست بهینهسازی مسیر، درک تفاوت بین این دو روش مهم است:
مقایسه OptimizeTours و BatchOptimizeTours