۰
۰
۱
۰
۱
۰
۰
۱
۰
حل ۱
حل ۲
حل جدید ۱
حل جدید ۲
شکل ۳-۱- مکانیسم عملگر تقاطع
برای انجام مکانیسم جهش نیز، به صورت تصادفی یک عنصر از حل را انتخاب و آن را اگر صفر است به یک، و اگر یک است به صفر تبدیل میکنیم.
بعد از انجام عملگرهای تقاطع و جهش، ممکن است حلهای غیر قابل قبول از لحاظ هر دو محدودیت مسأله ایجاد شود. برای مقابله با این وضعیت، اگر محدودیت اول، یعنی محدودیت حداکثر تعداد تسهیل ایجادشده، نقض شود، به صورت تصادفی، به تعدادی از یکهای حل را صفر میکنیم که حل، از نظر این محدودیت قابل قبول شود؛ سپس اگر محدودیت دوم نیز رعایت شده باشد، این حل به عنوان یک حل غیرقابل قبول پذیرفته میشود، درغیر اینصورت این حل را کنار گذاشته و به صورت تصادفی یک حل را از مجموعه غیرمغلوب انتخاب و جایگزین این حل غیرقابل قبول میکنیم.
برای محاسبه فاصله ازدحام، ما نیاز به حداقل و حداکثر هر سه تابع هدف مسأله داریم. برای محاسبه این مقادیر، ما هر سه هدف را به صورت جداگانه توسط یک الگوریتم ممتیک حل نموده و بهترین و بدترین حلهای بدست آمده توسط این الگوریتم را به عنوان، مقادیر موردنظر درنظر گرفتهایم.
۳-۲-۳- تطبیق الگوریتم CNSGA-II برای مسئله موردبررسی
با توجه به اینکه این الگوریتم، برگرفته از الگوریتم NSGA-II میباشد، تمامی پارامترهای آن نیز مطابق آن الگوریتم میباشد. تنها تفاوت آن، در انجام مکانیسم انتخاب میباشد. همانطور که در بخش قبل نیز شرح داده شد، برای انجام این مکانیسم، نیاز به محاسبه انحراف حلها، از محدودیتها داریم. برای مسائلی که محدودیتهای آنها، به صورت معادلات روتین ریاضی است، محاسبه این انحرافها، کار چندان مشکلی نیست؛ اما در اینجا که با محدودیتهای نامعادلهای روبرو هستیم، باید روش دیگری را درنظر بگیریم. ما برای محاسبه انحراف از محدودیت اول، یعنی حداکثر تعداد مجاز برای ایجاد تسهیل، به صورت فرمول (۹.۳) عمل میکنیم:
(۹.۳)
برای محاسبه محدودیت دوم، یعنی رعایت حداکثر زمان انتظار مشتریان در صف، از فرمول (۱۰.۳) استفاده میکنیم:
(۱۰.۳)
که در صورت محدودیت (۱۰.۳)، منظور از ، تسهیلاتی است که ایجاد شده و محدودیت دوم را نقض کردهاند.
۳-۲-۴- تطبیق الگوریتم NRGA برای مسئله موردبررسی
با توجه به شباهت بسیار زیاد این الگوریتم نیز با الگوریتم NSGA-II، تمامی پارامترها، همانند آن الگوریتم تنظیم شدهاست. تنها تفاوت این دو الگوریتم در مکانسیم انتخاب است که در این الگوریتم، همان طور که در بخش قبل شرح داده شد، از دو مرحله چرخ رولت استفاده شدهاست که در مرحله اول، یک لایه از لایههای حل انتخاب میکنیم و در مرحله دوم، یک حل از این لایه را انتخاب میکنیم. در اینجا سعی شدهاست که چرخ رولت را بر روی تمامی اعضائی که قابلیت انتخاب دارند، اجرا کنیم. یعنی به این صورت عمل نکرده ایم که مثلاً به طور تصادفی و یا جهت دار، چند حل را انتخاب و بین این چند حل، یک چرخ رولت را اجرا کنیم.
۳-۲-۵- تطبیق الگوریتم MISA برای مسئله موردبررسی
نتایجی که بدست آمدهاند، باتوجه به پارامترهای زیر بودهاست: اندازه جمعیت برابر ۱۰۰، اندازه حافظه ثانویه برابر ۱۰۰ و یک ماتریس به عنوان شبکه تطبیقی. عملگرهای تقاطع و جهشی نیز که مورداستفاده قرار گرفتهاند، شبیه عملگرهایی است که در الگوریتمهای قبلی استفاده شدهاست.
۳-۲-۶- تطبیق الگوریتم VIS برای مسئله موردبررسی
نتایج بدست آمده از اجرای الگوریتم VIS، با پارامترهای زیر بدست آمدهاست: تعداد تکثیر برای هر سلول یعنی ، برابر ۵، تعداد تکرارهای داخلی یعنی برابر ۳، درصد تولید حلهای تصادفی در هر حلقه خارجی برابر ۲۰% و اندازه حافظه برابر ۱۰۰ قرار داده شدهاست. بقیه پارامترهای الگوریتم، شبیه الگوریتمهای پیشین تعیین شدهاست.
در اینجا برای مقابله با حلهای غیرقابل قبولی که توسط جهش ایجاد میشوند، رویکرد دیگری متفاوت با رویکردی که در روش اصلی توضیح داده شد، میتوان استفاده کرد. برای توضیح این روش میتوان به این مثال توجه کرد: فرض کنید که تعداد جهش درنظر گرفته شده برای یک حل، برابر ۵ باشد. ابتدا یک جهش را بر روی این حل انجام میدهیم. اگر حل جدید ایجادشده، قابل قبول باشد، دومین جهش را نیز بر روی این حل انجام میدهیم. به همین ترتیب این جهشها را تا پنجمین جهش ادامه میدهیم. اگر در هر مرحلهای از انجام این جهشها، حل ایجاد شده غیرقابل قبول شد، آخرین حلی که قبل از این جهش وجود داشت و قابل قبول بود را به عنوان حل نهایی انتخاب میکنیم. البته باتوجه به شرایطی که بر مسأله حاکم است و برای افزایش سرعت الگوریتم، ترجیح داده شد که از همان روشی که در الگوریتمهای پیشین برای رسیدگی به محدودیتها وضع شده بود، استفاده کرد.
۳-۲-۷- تطبیق الگوریتم NNIA برای مسئله موردبررسی
در این الگوریتم، از پارامترهای زیر استفاده کرده ایم: حداکثر اندازه جمعیت غیرمغلوب یعنی را برابر ۱۰۰، حداکثر اندازه جمعیت فعال یعنی را برابر ۲۰ و اندازه جمعیت کلون یعنی را برابر ۱۰۰ درنظر گرفته ایم. مابقی پارامترهای الگوریتم نیز شبیه الگوریتمهای پیشین تنظیم شدهاست.
۴
تجزیه و تحلیل دادهها
۴-۱- تولید مسأله نمونه
چیزی که در اکثر تحقیقات به آن توجه نمیشود، چگونگی تولید مسائل نمونه است. چگونگی تولید مسأله، از این جهت حائزاهمیت است که با بهره گرفتن از این مسائل است که عملکرد الگوریتم، ارزیابی میشود.
برای اینکه به حالتهای مختلف مدل پرداخته شود، مسائلی که تولید شدهاند را از دو حیطه مورد توجه قرار داده ایم: