همانطور که به طور خلاصه در بررسی اجمالی بهینه سازی مسیر توضیح داده شد، یک درخواست اساسی شامل مدل ، محموله ها و وسایل نقلیه به عنوان موجودیت های مورد نیاز است:
- مدل تنظیمات و محدودیتها را برای کل درخواست، شامل
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 ) نشان دهنده مقدار باری است که یک وسیله نقلیه می تواند در یک زمان تحمل کند. درباره بار در تقاضاها و محدودیتهای بار بیشتر بخوانید. -
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
،همانطور که به طور خلاصه در بررسی اجمالی بهینه سازی مسیر توضیح داده شد، یک درخواست اساسی شامل مدل ، محموله ها و وسایل نقلیه به عنوان موجودیت های مورد نیاز است:
- مدل تنظیمات و محدودیتها را برای کل درخواست، شامل
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 ) نشان دهنده مقدار باری است که یک وسیله نقلیه می تواند در یک زمان تحمل کند. درباره بار در تقاضاها و محدودیتهای بار بیشتر بخوانید. -
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
هر دو پیام های درخواست را مانند مثال بالا مصرف می کنند، اما به روش های مختلف. قبل از درخواست بهینه سازی مسیر، مهم است که تفاوت بین این دو روش را درک کنید: