Layer 1
۴
۷
۸
۱
۳
۲
۶
۵
۵
۲
۶
۱
۴
۳
Layer 2
جدول ۳‑۱٫ نمایش جواب مساله توسط کروموزوم
همانطوریکه مشاهده میکنید کروموزوم شامل دو لایه ژن با طول برابر است. لایه اول برای کد کردن نتایح تشکیل سلول و لایه دوم برای ارائه اطلاعات چیدمان و زمانبندی مورد استفاده قرار گرفته است. هر لایه از ژنها به دو دسته تقسیم شده است که بخش اول شامل m ژن که مطابق با تعداد ماشینها میباشد و بخش دوم شامل n ژن که مرتبط با قطعه ها است. به این ترتیب هر لایه از کروموزم دارای m+n ژن خواهد بود.
در لایه اول، از کدینگ مستقیم استفاده شده است و آلل[۹۷] (هر یک از مقادیر متفاوتی که یک ژن میتواند دارا باشد) هر ژن شماره سلولی که قطعه یا ماشین مورد نظر در آن قرار گرفته است را نمایش میدهد. به عنوان مثال، ماشین ۱ به سلول ۲ و ماشین ۳ به سلول ۱ اختصاص یافته است. سلول ۱ شامل {m3,m4,m5,p1,p2,p5,p8} و سلول ۲ شامل {m1,m2,m6,p3,p4,p6,p7} است. در لایه دوم از کدینگ غیرمستقیم بهره گرفتهایم و آلل هر ژن موقیعت وزنی[۹۸] هر ماشین یا قطعه را ارائه مینماید. برای مثال موقعیت وزنی ماشین ۱ ، ۳ و برای ماشین ۴ این مقدار برابر ۴ است. این فاکتور برای قطعههای ۳ و ۶ به ترتیب ۲ و ۸ میباشد. با مرتب سازی ماشینها مطابق موقعیت وزنی به صورت کاهشی{m4,m6,m2,m1,m5,m3}، ترتیب قرارگیری ماشینها در سلول ۱ به صورت {m4,m5,m3} و در سلول ۲ به صورت {m6,m2,m1} خواهد بود به طوریکه در هر سلول ماشینها به ترتیب از موقعیت ۱ مستقر میشوند، به طور مثال در سلول ۲، ماشین ۱ در موقعیت ۳ و در سلول ۱، ماشین ۴ در موقعیت ۱ قرار خواهند گرفت. به طور مشابه، قطعهها نیز با توالی {p6,p7,p2,p1,p8,p4,p3,p5}، زمانبندی خواهند شد با در نظر گرفتن اطلاعات هر دو لایه، چیدمان ماشینها در هر سلول و تخصیص قطعهها در سلول ۱ به ترتیب به صورت {m4,m5,m3} و {p2,p1,p8,p5} بوده و به طور مشابه برای سلول ۲ با توجه به صورت{m6,m2,m1} و {p6,p7,p4,p3} خواهد بود.
دانلود متن کامل پایان نامه در سایت jemo.ir موجود است |
۳-۲-۱-۸- ایجاد جمعیت اولیه
مرحله دوم اجرای الگوریتم ژنتیک، ایجاد جمعیت اولیه میباشد، تعداد حل اولیه که در جمعیت در نظر گرفته میشود اندازه جمعیت است که در این تحقیق تمام حل اولیه به صورت تصادفی تولید شده است. تعیین اندازه جمعیت مناسب یکی از تصمیمگیریهای مهم در اجرای الگوریتم ژنتیک میباشد، چراکه اگر اندازه جمعیت کوچک باشد ممکن است نتوانیم به حل خوبی دست پیدا کنیم و از طرف دیگر اگر این مقدار خیلی بزرگ باشد ممکن است پردازنده زمان زیادی برای یافتن حل بهتر صرف کند. به همین منظور برای یافتن مقدار مناسب اغلب از آزمون و خطا استفاده میشود.
۳-۲-۱-۹- تابع برازندگی
در اجرای الگوریتم ژنتیک، از یک تابع برازندگی برای ارزیابی و تعیین اینکه آیا یک کروموزوم برای استفاده جهت تولید کروموزمهای جدید باقی مانده و به عنوان فرزند در نسل جدید استفاده خواهد شد یا خیر مورد استفاده قرار میگیرد. تابع برازندگی برای محاسبه میزان ارزش یک کروموزوم بکار میرود. در این تحقیق، تابع برازندگی تغییر حالتی از تابع زمان تکمیل کارها میباشد که این تغییر برای تبدیل هدف مینیمم سازی به ماکزیمم سازی است و به صورت زیر میباشد:
f(x) = Cmax – g(x) , g(x) < Cmax
f(x) = 0 , otherwise
روشهای مختلفی برای انتخاب ضریب Cmax وجود دارد که در این مطالعه بزرگترین مقدار زمان تکمیل کار از مقادیر جمعیت کنونی است.
۳-۲-۱-۱۰- انتخاب
هدف مرحله انتخاب این است که به مناسبترین جوابها این اجازه را بدهیم تا در تولید فرزندان نسل بعدی در نظر گرفته شوند. به هر جوابی متناسب با میزان ارزش و برازندگی آن، یک احتمال مشخص برای انتخاب شدن اختصاص مییابد. با اینکه جوابهای بهتر احتمال بیشتری برای انتخاب شدن جهت تولید نسل بعدی را دارند اما همه جوابهای جمعیت شانس انتخاب شدن خواهند داشت. در این پژوهش برای مرحله انتخاب از روش تورنامنت استفاده شده است و به طور پیش فرض از زیر گروه ۴ عددی برای این روش استفاده شده است.
۳-۲-۱-۱۱- تقاطع
تولید نسل جدید (فرزندان) با استفاده از عملگرهای تقاطع و جهش بر روی والدین انتخاب شده در مرحله قبل انجام میگیرد. تقاطع اطلاعاتی از دو والد را به نحوی ترکیب میکند که دو فرزند ایجاد شده شباهتهایی را به والدین خود خواهند داشت. از جمله روشهای مرسوم در مدلهای الگوریتم ژنتیک برای عملگر تقاطع، روش تک نقطهای[۹۹]، دو نقطهای[۱۰۰] و یکنواخت[۱۰۱] را میتوان نام برد. با این حال این عملگرها ممکن است کروموزومهای غیرقانونی تولید کنند که برای رفع این مشکل از راههایی چون تقاطع تطبیقی اندک[۱۰۲]، تقاطع ترتیبی[۱۰۳] و تقاطع چرخهای[۱۰۴] و دیگر روشها میتوان بهره گرفت.
در این مطالعه، با توجه به قالب کروموزومی سلسله مراتبی منحصربفرد استفاده شده، از تقاطع تک نقطهای و تقاطعPMX استفاده شده است. در ابتدا یک نقطه قطع به طور تصادفی در طول کروموزوم انتخاب میشود، اگر این نقطه دقیقا بین دو بخش قطعه و ماشین باشد به سادگی از تقاطع تک نقطعهای برای ترکیب دو کروموزوم استفاده میشود و بخش بعد از این نقطه در دو کروموزوم جابجا میشوند. در غیر اینصورت (یعنی نقطه قطع در داخل بخش قطعه یا ماشین باشد)، برای لایه اول کروموزوم تقاطع تک نقطهای بکار گرفته شده و برای لایه دوم برای پیشگیری از ایجاد کروموزم غیرقانونی از تقاطع PMX استفاده شده است. در جدول ۳-۲ مثالی از عملگر تقاطع نمایش داده شده است. به عنوان مثال نقطعه انتخابی برای تقاطع در محلی بین موقعیت ۳ و ۴ در بخش ماشین است به این ترتیب با حالت دوم تقاطع روبرو هستیم بعد از اعمال تقاطع فرزندان ایجاد شده غیرقانونی هستند چراکه در لایه دوم فرزند اول و دوم به ترتیب دارای دو مقدار ۳ و ۵ هستیم برای رفع این مشکل، مقدار آللهایی که با این مشکل روبرو هستند و بعد از نقطه تقاطع قرار دارند را به مقدار حالت قبل از تقاطع باز میگردانیم و اگر باز هم دچار چنین مشکلی شدیم آن را به مقداری از مقادیر قبلی این بخش که مجاز
[جمعه 1399-09-21] [ 11:56:00 ق.ظ ]
|