بار تقاضاها و محدودیت ها

The loadDemands property is defined under ShipmentModel.shipments.Shipment and the loadLimits property under ShipmentModel.vehicles.Vehicle.

تقاضاها و محدودیت های بار نوعی محدودیت هستند که می توانید برای مدیریت ظرفیت از آنها استفاده کنید. آنها ظرفیت مورد نیاز یک محموله و حداکثر ظرفیت یک وسیله نقلیه را مشخص می کنند که به شما امکان می دهد تعیین مسیر را بر اساس این محدودیت ها بهینه کنید.

تقاضاها و محدودیت‌های بار می‌توانند از اهدافی مانند:

  • از بارگیری بیش از حد وسایل نقلیه جلوگیری کنید.
  • نظارت کنید که چگونه بارهای وسیله نقلیه با تحویل و تحویل محموله ها تغییر می کند.
  • تعداد دفعاتی که یک وسیله نقلیه می تواند از یک مکان خاص بازدید کند را محدود کنید.

تقاضاها و محدودیت های بار در این ویژگی ها مشخص می شوند:

  • loadDemands مقدار ظرفیت مورد نیاز یک محموله خاص را مشخص می کند.
  • loadLimits حداکثر ظرفیت را برای یک وسیله نقلیه مشخص می کند.

ساختار

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

  • loadDemands یک ویژگی Shipment است. یک Shipment می تواند چندین بار تقاضا داشته باشد.
  • loadLimits یکی از ویژگی های Vehicle است. یک Vehicle می تواند محدودیت های بار متعددی داشته باشد.

خواص

این بخش ویژگی های تقاضا و محدودیت های بار را توضیح می دهد که به شرح زیر است:

  • نوع بار: یک ویژگی مشترک بین تقاضاها و محدودیت های بار.
  • Load و LoadLimit : ویژگی های منحصر به فرد موجود در تقاضای بار و محدودیت های بار.

نوع بار

انواع بار کلیدهای رشته ای هستند که نوع تقاضای بار برای یک محموله و محدودیت های بار برای یک وسیله نقلیه را مشخص می کنند. انواع بار دارای این ویژگی های مهم هستند:

  • تعریف شده توسط کاربر: انواع بارگذاری آنهایی هستند که شما تعریف می کنید. هیچ متغیر سیستمی از پیش تعریف شده برای انواع بار وجود ندارد.
  • اشتراک‌گذاری شده: منظور از انواع بار بین محموله‌ها و وسایل نقلیه مشترک است. این بدان معنی است که یک محموله تنها زمانی ظرفیت یک وسیله نقلیه را تا حد مجاز مصرف می کند که نوع بار آنها مطابقت داشته باشد. اگر وسیله نقلیه محدودیتی برای یک نوع بار مشخص نکرده باشد، می تواند مقدار نامحدودی از آن نوع بار را حمل کند.

کلیدهای رشته ای که انواع بار را نشان می دهند از نحو نوع نقشه Protocol Buffers استفاده می کنند. برای جلوگیری از بروز مشکلات، این کلیدهای رشته ای نباید خالی باشند . هنگام نامگذاری یک نوع بار، توصیه می شود از شناسه هایی استفاده کنید که نوع بار و واحد آن را توصیف می کنند. به عنوان مثال: وزن کیلوگرم ، حجم_گالن ، تعداد پالت ، یا فرکانس روزانه .

Load و LoadLimit

اشیاء Load و LoadLimit حاوی ویژگی های خاصی برای تعریف ظرفیت مورد نیاز برای محموله ها و وسایل نقلیه هستند، جدول زیر این ویژگی ها را توضیح می دهد:

شیء پدر و مادر اموال نوع ملک توضیحات ملک
Load loadDemands amount رشته (فرمت int64) ظرفیت مورد نیاز محموله را در نوع مشخص شده تعریف می کند.
LoadLimit loadLimits maxLoad رشته (فرمت int64) حداکثر ظرفیت بار خودرو را در نوع مشخص شده مشخص می کند.

نمونه ها

مثال زیر ساختار تقاضای بار را نشان می‌دهد که در آن می‌توانید نوع loadDemands را به‌عنوان یک رشته و ویژگی amount را به‌عنوان رشته در قالب int64 تنظیم کنید:

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

مثال زیر ابتدایی ترین ساختار یک محدودیت بار را نشان می دهد، که در آن می توانید نوع loadLimits را به عنوان یک رشته و ویژگی maxLoad را به عنوان یک رشته در قالب int64 تنظیم کنید:

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

آن را امتحان کنید

از مثال های کد بالا برای ایجاد یک سناریوی تخیلی استفاده کنید. در این سناریو، شما یک محموله به وزن 10 کیلوگرم و یک وسیله نقلیه که می تواند 100 کیلوگرم را حمل کند، دارید:

  1. در مثال loadDemands ، نوع بار را weightKg تعریف کنید.

    پس از انجام این کار، نوع بار در مثال loadLimits نیز پر می شود و نوع بار را به اشتراک می گذارد. به یاد داشته باشید که برای محموله برای مصرف محدودیت های وسیله نقلیه، انواع loadDemands و loadLimits باید مطابقت داشته باشند .

  2. در همان مثال loadDemands ، ویژگی amount را 10 قرار دهید.

    این بدان معناست که وزن محموله 10 کیلوگرم است.

  3. در مثال loadLimits ، ویژگی maxLoad را روی 100 تنظیم کنید.

    این بدان معناست که این وسیله نقلیه می تواند حداکثر 100 کیلوگرم وزن را حمل کند.

به یاد داشته باشید که هیچ مجموعه ای از انواع از پیش تعریف شده وجود ندارد . در این مثال، می توانید کیلوگرم را به نقطه تغییر دهید، یا آن را به جای وزن به اندازه گیری های خطی تغییر دهید. این انعطاف‌پذیری به شما امکان می‌دهد تا تقاضاها و محدودیت‌های بار را برای نیازهای خاص خود تنظیم کنید.

درخواست نمونه

مثال زیر ساختار یک درخواست اولیه optimizeTours را با loadDemands در یک محموله و loadLimits در یک وسیله نقلیه نشان می دهد:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

به یاد داشته باشید که یک محموله می‌تواند چندین بار تقاضا داشته باشد، و یک وسیله نقلیه می‌تواند محدودیت‌های بار متعددی داشته باشد، که به شما امکان می‌دهد محدودیت‌های پیچیده‌ای را برای بهینه‌سازی مسیرهای ناوگان خود در نظر بگیرید.