تقاضاها و محدودیت های بار نوعی محدودیت هستند که می توانید برای مدیریت ظرفیت از آنها استفاده کنید. این محدودیت ظرفیت مورد نیاز یک محموله و حداکثر ظرفیت یک وسیله نقلیه را مشخص می کند که به شما امکان می دهد تخصیص مسیر را بر اساس این محدودیت ها بهینه کنید.
تقاضاها و محدودیتهای بار میتوانند از اهدافی مانند:
- از بارگیری بیش از حد وسایل نقلیه جلوگیری کنید.
- نظارت کنید که چگونه بارهای وسیله نقلیه با تحویل و تحویل محموله ها تغییر می کند.
- جفت کردن وسایل نقلیه سنگین با محموله های بار سنگین را در اولویت قرار دهید.
تقاضاها و محدودیت های بار در این ویژگی ها مشخص می شوند:
-
loadDemands
مقدار ظرفیت مورد نیاز یک محموله خاص را مشخص می کند. -
loadLimits
حداکثر ظرفیت را برای یک وسیله نقلیه مشخص می کند.
ساختار
همانطور که در نمودار نشان داده شده است، تقاضاها و محدودیت های بار به صورت زیر ساختار یافته اند:
-
loadDemands
یک ویژگیShipment
است. یکShipment
می تواند چندین بار تقاضا داشته باشد. -
loadLimits
یکی از ویژگی هایVehicle
است. یکVehicle
می تواند محدودیت های بار متعددی داشته باشد.
چک لیست ملزومات
چک لیست زیر دانش ضروری را توصیف می کند که از اشتباهات احتمالی مرتبط با بار جلوگیری می کند. این لیست می تواند به شما کمک کند تا درخواست خود را تأیید کنید و پاسخ خود را عیب یابی کنید.
خواص
این بخش ویژگی های تقاضا و محدودیت های بار را توضیح می دهد که به شرح زیر است:
- نوع بار: یک ویژگی مشترک بین تقاضاها و محدودیت های بار.
-
Load
وLoadLimit
: ویژگی های منحصر به فرد موجود در تقاضای بار و محدودیت های بار.
نوع بار
نوع بار یک کلید رشته ای است که به طور یکسان برای محموله ها و وسایل نقلیه اعمال می شود. یک نوع بار تکی برای تقاضای بار محموله و همچنین محدودیت بار یک وسیله نقلیه اعمال می شود.
انواع بارگذاری از نحو نوع نقشه Protocol Buffers استفاده می کنند. هنگام نامگذاری یک نوع بار، از شناسه هایی استفاده کنید که نوع بار و واحد آن را توصیف می کنند. به عنوان مثال: وزن کیلوگرم ، حجم_گالن ، تعداد پالت ، یا فرکانس روزانه .
Load
و LoadLimit
اشیاء Load
و LoadLimit
حاوی ویژگی های خاصی برای تعریف ظرفیت مورد نیاز برای محموله ها و وسایل نقلیه هستند، جدول زیر این ویژگی ها را توضیح می دهد:
شیء | پدر و مادر | اموال | نوع ملک | توضیحات ملک |
---|---|---|---|---|
Load | loadDemands | amount | رشته (فرمت int64) | ظرفیت مورد نیاز محموله را در نوع مشخص شده تعریف می کند. |
LoadLimit | loadLimits | maxLoad | رشته (فرمت int64) | حداکثر ظرفیت بار خودرو را در نوع مشخص شده مشخص می کند. |
نمونه ها
این بخش سه نوع مثال را پوشش می دهد:
- نمونه کدهایی که ساختار تقاضاهای بار و ویژگی های محدودیت را نشان می دهند.
- یک سناریوی مثال که یک راه برای استفاده از تقاضاها و محدودیت های بار در یک درخواست API را نشان می دهد.
- یک مثال درخواست که شامل مقادیر تنظیم شده در سناریوی مثال است.
نمونه کد
مثال زیر ساختار تقاضای بار را نشان میدهد که در آن میتوانید نوع loadDemands
را بهعنوان یک رشته و ویژگی amount
را بهعنوان رشته در قالب int64 تنظیم کنید:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
مثال زیر ابتدایی ترین ساختار یک محدودیت بار را نشان می دهد، که در آن می توانید نوع loadLimits
را به عنوان یک رشته و ویژگی maxLoad
را به عنوان یک رشته در قالب int64 تنظیم کنید:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
سناریوی نمونه
این بخش سناریویی را شرح میدهد که در آن شما یک کسبوکار مهدکودک سگ دارید و در حال بهینهسازی مسیری برای حمل چند سگ در یک وسیله نقلیه با تعداد محدود جعبه هستید.
هر محموله نشان دهنده یک توقف است که در آن تعداد معینی سگ را می گیرید. در این مثال، هر محموله دارای یک مکان وانت متفاوت است، که خانه سگ هایی است که شما از آنها مراقبت می کنید، و همه محموله ها محل تحویل یکسانی دارند، ساختمان مهد کودک سگ شما.
برای این مثال، مقادیر ویژگی در درخواست شما به شرح زیر است:
پدر و مادر | اموال | تایپ کنید | ارزش | سناریو |
---|---|---|---|---|
loadDemands | نوع بار | رشته | dogUnit | نوع بار را برای محموله مشخص می کند. این مثال از dogUnit استفاده می کند که در آن هر dogUnit یک سگ را نشان می دهد. |
loadDemands | amount | شماره | محموله اول: 1 محموله دوم: 3 | مقدار نوع بار تعریف شده را مشخص می کند. در این مثال، شما دو محموله را تعریف می کنید، در اولی یک سگ و در دومی 3 سگ را انتخاب می کنید. |
loadLimits | نوع بار | رشته | dogUnit | نوع محدودیت بار اعمال شده به وسیله نقلیه را مشخص می کند. این باید با نوع بار محموله مطابقت داشته باشد تا محدودیت مربوطه باشد. |
loadLimits | maxLoad | شماره | 6 | حداکثر مقدار باری که وسیله نقلیه می تواند حمل کند را مشخص می کند. در این مثال، شما فقط یک وسیله نقلیه با حداکثر ظرفیت 6 dogUnit دارید که هر dogUnit نشان دهنده یک جعبه سگ است. |
نمودار زیر محدودیت های بار وسیله نقلیه، تقاضای بار هر محموله و نحوه مصرف هر محموله محدودیت های بار وسیله نقلیه را نشان می دهد:
در این مثال، تقاضای بار هر محموله و محدودیت های بار وسیله نقلیه دارای اثرات زیر است:
بهینه ساز مشکلی برای ایجاد مسیری برای وسیله نقلیه برای حمل سگ ها نخواهد داشت ، زیرا وسیله نقلیه می تواند تا 6 سگ را حمل کند و شما فقط 4 سگ را انتخاب می کنید.
داشتن محدودیت بار 6
dogUnit
در وسیله نقلیه همچنین به این معنی است که فقط می توانید دو سگ دیگر را در این وسیله نقلیه خاص حمل کنید.اگر تعداد سگها از حد مجاز بار بیشتر بود، بهینهساز یا یکی از بارگیریها را نادیده میگرفت یا آن را به وسیله نقلیه مناسب اختصاص میداد.
به یاد داشته باشید که هیچ مجموعه ای از انواع از پیش تعریف شده وجود ندارد . در این مثال، میتوانید نوع بار را از واحد سگ به واحد وزن تغییر دهید تا وزن سگها را محدود کنید، یا آن را به اندازهگیریهای خطی تغییر دهید تا عرض یا ارتفاع آنها را محدود کنید. این انعطافپذیری به شما امکان میدهد تا تقاضاها و محدودیتهای بار را برای نیازهای خاص خود تنظیم کنید.
درخواست نمونه
مثال زیر ساختار یک درخواست اولیه optimizeTours
نشان می دهد که مقادیر نمونه سناریو را در خود جای داده است:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "One bernese mountain dog", "loadDemands": { "dogUnit": { "amount": "1" } } }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "Three chihuahuas", "loadDemands": { "dogUnit": { "amount": "3" } } } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "loadLimits": { "dogUnit": { "maxLoad": "6" } }, "costPerKilometer": 1.0 } ] } }
به یاد داشته باشید که برخلاف مورد این مثال، یک محموله میتواند چندین بار تقاضا داشته باشد، و یک وسیله نقلیه میتواند محدودیتهای بار متعددی داشته باشد، که به شما امکان میدهد محدودیتهای پیچیدهای را برای بهینهسازی مسیرهای ناوگان خود در نظر بگیرید.