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