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