یک پیام درخواست بسازید

همانطور که به طور خلاصه در بررسی اجمالی بهینه سازی مسیر توضیح داده شد، یک درخواست اساسی شامل مدل ، محموله ها و وسایل نقلیه به عنوان موجودیت های مورد نیاز است:

  • مدل تنظیمات و محدودیت‌ها را برای کل درخواست، شامل Shipments و Vehicles ، ثبت می‌کند.
  • محموله ها وظایف یا محموله های واقعی را نشان می دهند که شامل تحویل و تحویل VisitRequest می شود. محموله ها دارای تنظیمات و محدودیت های محلی هستند.
  • وسایل نقلیه نشان دهنده وسایل نقلیه، رانندگان یا پرسنل هستند. وسایل نقلیه همچنین دارای تنظیمات و محدودیت های محلی هستند.

ویژگی های هر موجودیت بخشی از یک مسئله بهینه سازی را در سطح خاصی از دانه بندی توصیف می کند. محدودیت‌های گسترده مدل برای همه محموله‌ها و وسایل نقلیه اعمال می‌شود، در حالی که محدودیت‌ها و ویژگی‌های مشخص شده در محموله‌ها یا وسایل نقلیه مختص یک محموله یا وسیله نقلیه است.

برای مستندات کامل در مورد هر نوع پیام، به مستندات مرجع برای پیام‌های ShipmentModel ( REST ، gRPCShipment ( 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 ، gRPCShipment ( 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