ظرفیت ماشینآلات
نامحدود
لازم به ذکر است که دلیل اصلی کوچک در نظر گرفتن ابعاد مسئله یا حذف فاکتوری همچون محدودیت ظرفیت ماشینآلات تنها به دلیل افزایش چشمگیر زمان حل مسئله در نرمافزار لینگو و امکان نرسیدن به جواب بهینه کلی بوده است و از آنجا که این تغییرات جزیی از دامنه تغییرات ممکن این فاکتورها است تاثیری در اعتبارسنجی مدل نخواهند داشت.
مسئله مورد بررسی در این بخش در نرمافزار لینگو ۹ حل شد و جواب بهینه برابر ۲۸۳۰ بود. توالی کارها نیز به صورت بدست آمد. جهت اطمینان از درستی عملکرد مدل گانت چارت جواب بهینه در شکل(۳-۲) رسم شده است.
شکل ۲ شکل ۳-۲. گانت چارت جواب بهینه مسئله طراحی شده جهت اعتبارسنجی مدل ریاضی.
۳-۵. تعیین پیچیدگی مسئله
انتخاب روش حل مناسب می تواند در دقت و کیفیت و زمان مورد نیاز برای حل یک مسئله تاثیر قابل توجهی داشته باشد. شاخهای از علوم کامپیوتر با نام نظریه پیچیدگی[۸۰] بر مطالعه این مبحث تمرکز دارد. به طور خلاصه پیچیدگی یک مسئله با میزان محاسبات لازم جهت حل آن ارتباط مستقیم دارد. این بدان معناست که با افزایش ابعاد مسئله طبیعتا زمان حل آن نیز افزایش مییابد. چنانچه زمان حل مسئله نسبت به ابعاد آن با تابعی چندجملهای افزایش یابد، زمان این مسئله را چندجملهای میگویند. چنین مسائلی عمدتا با روشهای دقیق قابل حل هستند.
دسته بزرگتر و مهمتری از مسائل بهینهسازی که عمدتا مسائل زمانبندی نیز در این دسته قرار میگیرند دارای تابع زمانی غیر چندجملهای هستند. چنین مسائلی را در علم پیچیدگی مینامند. این دسته از مسائل با روشهای دقیق قابل حل نبوده و لذا از روشهای تقریبی جهت یافتن نزدیکترین جواب به بهینه کلی بهره گرفته می شود. در نتیجه شناخت مسئله از نقطه نظر پیچیدگی آن می تواند بر کیفیت جواب تاثیر مستقیم داشته باشد.
پیندو [۶] در کتاب مفصل خود پیرامون موضوع زمانبندی سلسله مراتب مسائل پیچیدگی در مسائل زمانبندی را در گرافهایی تشریح می کند. این گرافها در شکلهای(۳-۳) و (۳-۴) آمدهاند.
شکل ۳ شکل ۳-۴. سلسله مراتب پیچیدگی در توابع هدف مسائل زمانبندی [۶].
شکل ۴ شکل ۳-۳. سلسله مراتب پیچیدگی در مسائل کارگاهی زمانبندی [۶].
همانطور که از این شکلها مشخص است میزان پیچدگی یک مسئله زمانبندی به نحوه چیدمان ماشینآلات و تابع هدف مسئله بستگی مستقیم دارد. نکته قابل تعمل در مسئله پیچیدگی آن است که پس از تشخیص میزان پیچیدگی یک مسئله به کمک این گرافها میتوان این میزان را به حالات خاص این مسائل نیز تعمیم داد. به عنوان مثال مقدار پیچیدگی مسئله که حالت خاصی از مسئله است را میتوان معادل مقدار پیچیدگی مسئله دانست. این مسئله را در علم پیچیدگی به صورت نشان می دهند.
در این تحقیق مسئله زمانبندی تولید جریانی منعطف بدون انتظار با محدودیت ساعات کاری ماشینآلات، زمان نصب وابسته به توالی کارها و استراتژی ترکیبی تولیید با هدف حداقل سازی هزینهها مورد بررسی قرار میگیرد. راک[۸۱] [۴۵] نشان داد که مسئله تولید جریانی بدون انتظار با تابع هدف بیشینه زمانهای تکمیل است. با توجه به نتایج مطرح شده در مورد میزان پیچیدگی مسئله پردازش بدون انتظار به یقین میتوان گفت که مسئله مورد بحث در این تحقیق نیز از میزان پیچیدگی برخوردار است لذا حل این مسئله در ابعاد بزرگ را نمی توان به طور کارایی با روشهای دقیق انجام داد. در فصل آینده روشهای حل کارایی با بهره گرفتن از رویکردهای فراابتکاری ارائه میگردند. ولید جریانی منعطف بدون انتظار با محدودیت ساعات کاری ماشین
۳-۶. جمعبندی
در این فصل، پس از بیان تعریف مسئله مورد بررسی و تشریح ویژگیهای آن، مدل ریاضی عدد صحیح غیر خطی جدیدی برای حل آن ارائه گردید. در ادامه فصل نیز اعتبار مدل ریاضی ارائه شده با بهره گرفتن از دو رویکرد سنجیده شد. در پایان فصل نیز دلایلی مبنی بر ناکارامدی روشهای حل دقیق برای مسئله مذکور بیان شده و میزان پیچیدگی آن مورد بررسی قرار گرفت.
فصل چهارم
الگوریتمهای فراابتکاری پیشنهادی و نتایج محاسباتی
۴-۱. مقدمه
هدف از حل هر مسئله بهینهسازی یافتن بهترین ترکیب ممکن از متغیرهای جواب برای آن مسئله است. مسائل بهینهسازی از منظر ماهیت جواب شدنی برای آنها به دو دسته کلی مسائل پیوسته و مسائل گسسته تقسیم میشوند. مسائل حوزه زمانبندی به عنوان دستهای مهم از مسائل بهینهسازی ترکیبی یکی از شناخته شده ترین مسائل با ساختار گسسته هستند. فاکتورهای جواب این دسته از مسائل باید به صورت گسسته کدگذاری شوند. با توجه به اهمیت مسائل این حوزه تاکنون رویکردهای جواب متنوعی برای حل این مسائل ارائه گردیدهاند. با نگاهی کلی، روشهای حل ارائه شده را میتوان در دو گروه کلی روشهای دقیق[۸۲] و تقریبی[۸۳] جای داد. ساختار رویکردهای دقیق به گونه ای است که عملکرد آنها را تنها به حل مسائل با پیچیدگی مشخص و ابعاد کوچک محدود می کند. این رویکردها برای مسائل با ابعاد بزرگ زمانهای حل بسیار ناکارامدی را ارائه می دهند. برهمین اساس، لزوم استفاده از رویکردهای تقریبی در حل مسائل پیچیده بدیهی به نظر میرسد. این رویکردها بسته به نوع آنها میتوانند جوابهای با کیفیت قابل قبول را در زمان منطقی ارائه دهند.
روشهای فراابتکاری[۸۴] دسته مهمی از روشهای تقریبی هستند که عموما با الگوبرداری از رفتار طبیعت تدوین گردیدهاند. وجه تمایز اصلی این روشها با روشهای تقریبی دیگر استفاده از متدهایی برای اجتناب از توقف فرایند جستجو در بهینه محلی[۸۵] است. براساس استراتژی های بکار رفته در فرایند الگوریتم، امروزه طیف گستردهای از روشهای فراابتکاری به جامعه محققین ارائه شده است که برای مثال میتوان به الگوریتمهایی نظیر ژنتیک[۸۶]، جستجوی ممنوع[۸۷]، مورچگان[۸۸]، تبرید شبیهسازی شده[۸۹]، سیستم ایمنی مصنوعی[۹۰] و … اشاره کرد.
در ادامه فصل پیش رو، الگوریتمهای فراابتکاری ارائه شده به منظور حل مسئله مورد بررسی شامل الگوریتم سیستم ایمنی مصنوعی و تبرید شبیهسازی شده با رویکرد ابری به طور کامل تشریح میگردند. پس از آن با بهره گرفتن از رویکرد تنظیم پارامترها به روش تاگوچی الگوریتمهای ارائه شده کالیبره شده و به وسیله آزمایشات طراحی شده مورد سنجش قرار میگیرند. در نهایت نتایج استخراج شده از اجرای آزمایشات تشریح میگردند.
۴-۲. الگوریتم سیستم ایمنی مصنوعی
الگوریتم سیستم ایمنی مصنوعی یکی از جدیدترین الگوریتمهای الگوبرداری شده از رفتارهای طبیعی پدیده ها است. همانگونه که از نام آن هویدا است، این الگوریتم از سیستم ایمنی بدن موجودات زنده و بالاخص پستانداران الگوبرداری شده است. روند کلی الگوریتم بسیار شبیه به الگوریتم ژنتیک بوده اما وجود تفاوتهایی تاثیرگذار باعث برتری نسبی این الگوریتم نسبت به الگوریتم ژنتیک در برخی مسائل بهینهسازی ترکیبی گردیده است.
سیستم ایمنی بدن انسان مجموعه ای پیچیده است که وظیفه حفاظت بدن در مقابل خطرات و حفظ سلامتی آن را به عهده دارد [۳۴]. این سیستم این وظیفه را با شناسایی عوامل مضر خارجی به نام پاتوژنها[۹۱] و تلاش جهت نابودسازی آنها انجام میدهد. این عوامل عموما به کمک فاکتور پروتئینی موجود در ساختارشان که آنتیژن[۹۲] نام دارد شناسایی میشوند. پس از شناسایی آنتیژن، بدن فاکتور پروتئینی مناسب جهت نابودسازی آنتیژن مربوطه را که آنتیبادی[۹۳] نام دارد ساخته و به جریان خون میفرستد و از این طریق عامل خارجی مضر را نابود می کند این فرایند را پاسخ اولیه ایمنی[۹۴] مینامند. پس از رفع خطر، بدن بهترین آنتیبادی ساخته شده را در حافظه خود نگه میدارد تا چنانچه این آنتیژن بار دیگر وارد بدن شد بتواند عملکرد سریعتری داشته باشد. دلیل علمی واکسیناسیون نیز همین است.
در کل سیستم ایمنی بدن انسان به زیر شاخه سیستم ایمنی ذاتی[۹۵] و سیستم ایمنی قابل انطباق[۹۶] تقسیم می شود [۳۴]. سیستم ایمنی ذاتی وظیفه دفاع عمومی بدن را برعهده داشته و تنها توانایی مبارزه با بیماریهای مشخصی را دارد، چیزی را به یاد نمیسپارد و عملکرد خود را بهبود نمیبخشد. اما سیستم ایمنی قابل انطباق توانایی مواجهه با عوامل بیماریزای جدید را داشته و در هر زمان بهترین عملکرد خود را در مقابل پاتوژنهای جدید به خاطر میسپارد. لازم به ذکر است که تمام الگوریتمهای ایجاد شده براساس سیستم ایمنی بدن براساس سیستم ایمنی قابل انطباق تدوین شده اند.
رویه جستجوی بهترین آنتیبادی و نحوه به یاد سپاری آن برای تقریبا تمام عمر در بدن توجه بسیاری از پژوهشگران را جلب کرده است. به همین دلیل الگوریتمهای متعددی که هر کدام از بخشی از فرایند ایمنی الگوبرداری شده اند در طی سالها ایجاد شده است. در یک تقسیم بندی کلی الگوریتمهای ایمنی ارائه شده را میتوان در سه دسته الگوریتم ایمنی تولید انتخابی[۹۷]، شبکه ایمنی[۹۸] و جستجوی منفی[۹۹] تقسیم کرد. الگوریتم ایمنی مصنوعی با رویکرد تولید انتخابی عموما در مسائل تعیین توالی بهینه و زمانبندی مورد استفاده قرار میگیرد حال آنکه دو رویکرد بعدی عموما برای مسائل تشخیص عوامل مخرب و مسائل خوشهبندی[۱۰۰] یا جستجوی الگو[۱۰۱] مورد استفاده قرار میگیرند. در تحقیق پیش رو نیز رویکرد تولید انتخابی الگوریتم ایمنی مصنوعی مورد استفاده قرار گرفته است لذا از این پس عبارت الگوریتم سیستم ایمنی مصنوعی به اختصار به جای عبارت رویکرد تولید انتخابی الگوریتم سیستم ایمنی مصنوعی به کار میرود.
الگوریتم سیستم ایمنی مصنوعی فرایند جستجوی خود را با جامعهای از آنتیبادیهای تصادفی که در واقع نشان دهنده جوابهای شدنی هستند آغاز می کند. در الگوریتم ایمنی مصنوعی آنتیژن تابع هدف را نمایندگی می کند. لذا هر کدام از جوابها از نظر میزان تطابق[۱۰۲] با تابع هدف مورد ارزیابی قرار میگیرند و در نهایت جوابها براساس میزان تطابقشان با تابع هدف که همان میزان برازندگی[۱۰۳] در الگوریتم ژنتیک است مرتب میشوند. پس از آن تعدادی مشخص از بهترین جوابها انتخاب شده و براساس رابطهای که بسته به نوع مسئله تعریف می شود، از هر جواب بسته به میزان تطابق آن تکثیر[۱۰۴] می شود. یعنی هرچه تطابق بیشتر باشد تعداد تکثیر نیز بیشتر می شود. در مرحله بعد هر جواب بسته به میزان تطابق خود تحت عملگر جهش[۱۰۵] قرار میگیرد، یعنی هر چه تطابق یک جواب بیشتر باشد میزان جهش کمتر خواهد بود. در نهایت میزان تطابق جوابهای جهش یافته بررسی شده و به تعدادی که در مراحل قبل بهترین جوابها برگزیده شده بودند، از بهترین جوابهای جهش یافته برداشته می شود و با همان تعداد از بدترین جوابهای جامعه مرجع جایگزین میگردد. این رویه تا فرارسیدن شروط توقف[۱۰۶] ادامه مییابد.
الگوریتم سیستم ایمنی مصنوعی به دلیل ساختار خود نقاط قوتی را در مقابل سایر الگوریتمها دارا است. از آنجا که این الگوریتم همزمان دستهای از جوابها را مورد بررسی قرار میدهد توانایی جستجوی همزمان نقاط متفاوتی از فضای حل را دارا میباشد و این مسئله توانایی الگوریتم برای رسیدن به بهینه کلی را افزایش داده و از به دام افتادن الگوریتم در بهینه موضعی جلوگیری می کند. به علاوه از آنجا که این الگوریتم فاقد عملگر تقاطع[۱۰۷] است در شرایط مساوی سرعت بالاتری نسبت به الگوریتم ژنتیک داشته و نیز از آنجا که عملگرهای بازتولید و جهش نیز در این الگوریتم تابعی از میزان تطابق جواب هستند سرعت همگرایی آن نسبت به الگوریتم ژنتیک بیشتر است.
۴-۲-۱. شمای کلی الگوریتم سیستم ایمنی مصنوعی
فرایند اجرای الگوریتم تولید انتخابی سیستم ایمنی مصنوعی مطابق شبه برنامه زیر است:
تولید جامعه اولیه آنتیبادیها(جوابها) به صورت تصادفی.
محاسبه میزان تطابق جوابهای تولید شده با آنتیبادی(تابع هدف) و مرتب کردن جامعه اولیه براساس میزان تطابق جوابها.
انتخاب تعدادی مشخص از بهترین جوابها.
تکثیر جوابهای انتخاب شده براساس میزان تطابق آنها.
اعمال جهش روی جوابهای تکثیر شده.
محاسبه میزان تطابق جوابهای جهش یافته با تابع هدف و مرتبسازی آنها براساس میزان تطابق.
جایگزین کردن تعدادی مشخص از بهترین جوابهای تولید شده با بدترین جوابهای جامعه جاری.
بررسی شروط توقف. چنانچه شرط توقف برقرار نبود، مرحله ۲.
۴-۲-۲. مفاهیم الگوریتم تولید انتخابی سیستم ایمنی مصنوعی و نحوه بکارگیری آنها
هر رویه حل شامل اصول و مفاهیمی است که فرایند جستجو را تشکیل می دهند. مفاهیم پایهای الگوریتم سیستم ایمنی مصنوعی به شرح زیر است:
کدگذاری[۱۰۸] جواب
تولید جامعه اولیه
تابع تطابق
عملگر تکثیر
عملگر جهش
شروط توقف
۴-۲-۲-۱. کدگذاری جواب
به نحوه نمایش جواب در هر الگوریتم کدگذاری جواب میگویند. کدگذاری باعث افزایش کارایی الگوریتم و امکان انجام روانتر و کاراتر عملگرهای الگوریتم را بر جواب فراهم می کنند. معمولا کدگذاری به یکی از روشهای ترتیبی، ارزشی و یا درختی انجام می شود که بسته به نوع مسئله هر یک میتوانند مزایا و معایب خود را داشته باشند. اما ممکن است روشهای جدید دیگری نیز برای کدگذاری در مسئلهای خاص مورد استفاده قرار بگیرد. اصلیترین نکته در انتخاب یک روش کدگذاری تولید جواب موجه[۱۰۹] توسط آن روش کدگذاری است به طوریکه پس از اعمال عملگرها، جواب از حالت موجه خارج نشود. در صورتی که چنین چیزی امکان پذیر نباشد باید مرحله اصلاح جواب کدگذاری شده و برطرف کردن مسئله ناموجه بودن آن به فرایند الگوریتم اضافه شود. بدیهی است که افزودن چنین مرحله ای از کارایی الگوریتم خواهد کاست. در حالت کلی روشهای کدگذاری در الگوریتم سیستم ایمنی مصنوعی شبیه به الگوریتم ژنتیک است با این تفاوت که رشته جواب در الگوریتم ژنتیک کروموزوم[۱۱۰] نامیده می شود در حالی که این رشته در الگوریتم سیستم ایمنی مصنوعی آنتیبادی نام دارد.