مفهوم: قواعد تخصیص (Dispatching Rules)
۱. هدف
هدف از این مستند، تشریح منطق تصمیمگیری موتور برنامهریزی (Scheduler) است. قواعد تخصیص (Dispatching) به این سوال حیاتی پاسخ میدهند: «برای انجام یک عملیات، چندین منبع واجد شرایط (کاندیدا) در مرکز کار وجود دارد. سیستم کدام یک از آنها را باید انتخاب کند؟»
۲. محل دسترسی در سیستم
این یک فرم ورود داده نیست، بلکه یک مفهوم (Concept) و مجموعهای از تنظیمات (Settings) است که معمولاً در این بخشها یافت میشود:
ماژول: مدیریت تولید (Production Management)
مسیر احتمالی:
مدیریت تولید / تنظیمات / پارامترهای برنامهریزی تولید
یا
مدیریت تولید / تعاریف پایه / مراکز کاری (به عنوان تنظیم پیشفرض برای هر مرکز کار)
۳. تعریف
قواعد تخصیص (Dispatching Rules) مجموعهای از منطقهای اولویتبندی هستند که سیستم برای مرتبسازی لیست منابع کاندیدا و انتخاب بهترین گزینه از بین آنها استفاده میکند. این فرآیند پس از آن انجام میشود که سیستم منابع را بر اساس الزامات عملیات (نوع منبع، قابلیتها، تقویم و وضعیت) فیلتر کرده است.
منطق دو مرحلهای تخصیص:
-
فیلتر کردن (Filtering):
- سیستم به «مرکز کار» تعریف شده در عملیات نگاه میکند و تمام منابع (Resources) داخل آن را لیست میکند.
- حذف ۱: منابعی که «نوع منبع» آنها با «نوع منبع» مورد نیاز عملیات مطابقت ندارد، حذف میشوند.
- حذف ۲: منابعی که «قابلیتهای» مورد نیاز عملیات را ندارند، حذف میشوند.
- حذف ۳: منابعی که «وضعیت» آنها «خراب» یا «در دست تعمیر» است، حذف میشوند.
- خروجی: لیستی از منابع کاندیدا که میتوانند این کار را انجام دهند.
-
مرتبسازی (Sorting) - (قاعده تخصیص واقعی):
- سیستم لیست کاندیداها را بر اساس «قاعده تخصیص» فعال، مرتب کرده و اولین گزینه را انتخاب میکند.
۴. کاربردها (انواع قواعد)
در نسخه MVP، سیستم ممکن است فقط از یک قاعده (مثلاً اولین در دسترس) استفاده کند، اما درک این قواعد برای توسعههای آتی ضروری است.
| نام قاعده | منطق (توضیح) | الگوریتم مرتبسازی | کاربرد |
|---|---|---|---|
| اولین در دسترس (First Available) | کار را در سریعترین زمان ممکن شروع کن. | منابع را بر اساس زودترین زمان آزاد (Earliest Start Time) مرتب میکند. | رایجترین و سادهترین قاعده. |
| سریعترین منبع (Fastest) | کار را با بالاترین سرعت انجام بده تا زمان کل عملیات کمینه شود. | منابع را بر اساس ضریب عملکرد (Performance) (نزولی) مرتب میکند. | عالی برای مدیریت گلوگاهها (Bottlenecks). |
| کمهزینهترین منبع (Least Cost) | بهای تمام شده سفارش را به حداقل برسان. | منابع را بر اساس نرخ هزینه (Cost Rate) (صعودی) مرتب میکند. | زمانی که هزینههای عملیاتی متغیر است. |
| اولویتبندی دستی (Priority) | همیشه از منبع ارجح (مثلاً اپراتور ارشد) استفاده کن. | منابع را بر اساس یک فیلد اولویت (Priority) (که به منبع اضافه میشود) مرتب میکند. | برای اولویتبندی منابع استراتژیک. |
۵. فیلدهای اطلاعاتی (مفهومی)
این بخش در تنظیمات سیستم خواهد بود (نه یک فرم دادهای):
| تنظیم | نوع داده | توضیح |
|---|---|---|
| قاعده تخصیص پیشفرض | انتخابی (از لیست قواعد) | قاعدهای که سیستم به صورت سراسری استفاده میکند (مثلاً: «اولین در دسترس») |
| اجازه لغو در مرکز کار | بولین | آیا مدیر میتواند برای یک مرکز کار خاص، قاعده متفاوتی تنظیم کند؟ |
۶. نکات کاربردی
- درک تفاوت بین «فیلتر کردن» و «مرتبسازی» کلیدی است. یک منبع ممکن است «سریعترین» باشد (در مرتبسازی برنده شود)، اما اگر «قابلیت» لازم را نداشته باشد (در فیلتر رد شود)، اصلاً در رقابت شرکت داده نمیشود.
- برای MVP، تمرکز بر روی قاعده «اولین در دسترس (First Available)» کافی و کارآمد است.
۷. مثال کاربردی (سناریوی تصمیمگیری)
- عملیات: جوشکاری (نیاز به: نوع منبع 'اپراتور جوشکار'، قابلیت 'گرید A')
- مرکز کار: WC-WELD
-
منابع کاندیدا (پس از فیلتر کردن وضعیت و تقویم):
علی احمدی: قابلیت 'گرید A', نرخ هزینه ۱۰۰, ضریب عملکرد ۱.۲ (سریع)، آزاد از ساعت ۱۰:۰۰رضا حسینی: قابلیت 'گرید A', نرخ هزینه ۸۰, ضریب عملکرد ۱.۰ (استاندارد)، آزاد از ساعت ۰۹:۰۰کاربر سوم: قابلیت 'گرید B', ... (این کاربر در مرحله فیلتر کردن حذف میشود)
-
نتایج انتخاب بر اساس قواعد مختلف:
- قاعده «اولین در دسترس»: سیستم رضا حسینی را انتخاب میکند (چون ساعت ۰۹:۰۰ آزاد است).
- قاعده «سریعترین منبع»: سیستم علی احمدی را انتخاب میکند (چون ضریب عملکرد ۱.۲ دارد، حتی اگر لازم باشد تا ۱۰:۰۰ صبر کند).
- قاعده «کمهزینهترین منبع»: سیستم رضا حسینی را انتخاب میکند (چون نرخ هزینه ۸۰ دارد).
۸. ارتباط با سایر ماژولها
| ماژول مرتبط | نوع ارتباط | توضیح |
|---|---|---|
| منبع (Resource) | خواندن داده | اطلاعات (وضعیت، تقویم، ضریب، هزینه، قابلیت) را از منبع میخواند |
| مرکز کار (Work Center) | خواندن تنظیم | قاعده پیشفرض ممکن است از مرکز کار خوانده شود |
| فرآیند تولید (Routing) | خواندن داده | الزامات (نوع منبع، قابلیتها) را از عملیات میخواند |
| برنامهریزی تولید | موتور اجرایی | این منطق، هسته اصلی موتور زمانبندی (Scheduler) است |
۹. خطاها و هشدارهای احتمالی
| خطا / هشدار | علت | راهحل |
|---|---|---|
| «هیچ منبع واجد شرایطی یافت نشد» | (خطای زمانبندی) پس از مرحله فیلتر، هیچ منبعی باقی نمانده است | بررسی کنید که آیا منابعی با «نوع» و «قابلیت» مورد نیاز در آن مرکز کار، «فعال» بوده و «تقویم» معتبر دارند یا خیر |
| «قاعده تخصیص تعریف نشده» | (خطای سیستمی) پارامتر پیشفرض سیستم تنظیم نشده است | در تنظیمات تولید، یک قاعده پیشفرض (مثلاً First Available) تنظیم کنید |
۱۰. توسعههای آتی (پیشنهادی)
- امکان تعریف قواعد ترکیبی (مثلاً اول «کمهزینهترین» و در صورت تساوی، «اولین در دسترس»).
- امکان تعریف قواعد به ازای هر عملیات در خود Routing.