اغلب نام الگوریتم ژنتیک متداول در مقابل الگوریتم ژنتیک ترکیبی آورده میشود. در الگوریتم ژنتیک متداول معمولاً از سه عملگر انتخاب، تبادل و جهش استفاده میشود. این سه عملگر معمولاً عملگرهای اساسی همه روشهای الگوریتم ژنتیک هستند که از رشتههای بیتی استفاده میکنند. با توجه به اینکه روش رمز کنندگی با استفاده از رشتههای بیتی میتوان با طیف وسیعی از مسائل روبرو شد؛ می توان گفت این سه عملگر و روش رمزکنندگی رشته بیتی باعث مقاوم شدن الگوریتم ژنتیک خواهد شد که در این مورد در بخش بعد توضیحات بیشتری داده خواهد شد.
1- عملگر انتخاب
هدف از انتخاب والدین در الگوریتم ژنتیک دادن شانس تولید مثل بیشتر به آن اعضایی است که برازندگی بالاتری داشته باشند. چندین روش برای انجام این کار وجود دارد.
یک روش که به طور معمول استفاده میشود، روش انتخاب با استفاده از چرخ گردان است. روند اجرای این روش به صورت زیر میباشد:
الف – برازندگی همه اعضای جمعیت را جمع کنید و نتیجه را برازندگی کل بنامید
ب- عدد n را به صورت تصادفی تولید کنید، به طوری که آن عددی بین صفر و برازندگی کل باشد. ج- اولین عضو از جمعیت را که برازندگی آن به اضافه برازندگی اعضای پیشین جمعیت بزرگتر یا مساوی n باشد را بازگردانید.
اثر انتخاب والدین به روش چرخ گردان بازگردان یک والد میباشد که به صورت تصادفی انتخاب شده است. اگر چه این فرایند انتخاب، تصادفی است، شانس هر والدی که انتخاب میشود مستقیماً متناسب با برازندگی آن است. به طور متعادل در روی تعدادی از نسلها این الگوریتم ژنتیک اعضای با کمترین برازندگی را دفع میکند و به انتشار مواد ژنتیکی در برازندهترین اعضای جمعیت کمک میکند. البته ممکن است بدترین عضو جمعیت بتواند به وسیله این الگوریتم انتخاب شود ( زیرا به هر حال در روند این الگوریتم عنصر تصادف نیز وجود دارد. ) اتفاقاتی از این دست در جمعیتی با هر اندازه، قابل صرفنظر هستند و به فرض انتخاب چنین اعضایی در یک نسل، احتمال دفع آنها در نسلهای بعدی بسیار بیشتر است. به هر حال، با گذشت چند نسل، این اعضا از جمعیت دفع میشوند. در به کار بردن روش انتخاب والدین باید دقت شود که مقادیر برازندگی رشتهها باید اعداد مثبت باشند.
2- عملگر تبادل
عملکرد این عملگر و عملگر جهش باعث میشود که رشته های تولید شده طی تولید مثل، از رشتههای والدینشان متفاوت باشند. در طبیعت، این عملگر موقعی رخ میدهد که دو والد قسمتهایی از رشتههای متناظرشان را معاوضه کنند و در الگوریتم ژنتیک، عملگر تبادل، مواد ژنتیکی دو رشته والد را مبادله میکند تا دو فرزند ( رشته جدید ) ایجاد شود. چندین نوع عملگر تبادل وجود دارد. ولی معروفترین عملگر تبادل به کار رفته در الگوریتم ژنتیک عملگر یک نقطهای میباشد.
در الگوریتم ژنتیک این عملگر به صورتی که در زیر تشریح میشود، اعمال میگردد. برای اینکه بتوانیم از این عملگر استفاده کینم نیاز به دو رشته داریم. بنابراین با دوبار اعمال عملگر انتخاب روی جمعیت جاری دو رشته از آن را انتخاب میکنیم سپس یک آزمون احتمال انجام میدهیم تا مشخص شود که عملگر تبادل روی دو رشته اعمال بشود یا نشود. این آزمون با استفاده از یک سکه نا همگن صورت میگیرد به این صورت که سکه با احتمال (Pcross) شیر و با احتمال (1- Pcross) خط میآید. به عنوان مثال، اگر قرار باشد با شیر آمدن سکه عملگر تبادل بر روی رشته اعمال گردد، فرض میکنیم سکه را پرتاب کردهایم و شیر آمده است. سپس وارد مرحله بعدی یعنی اجرای عملگر تبادل میشویم یک عدد تصادفی بین یک و طول رشته تولید میشود.پس از مشخص شدن این عدد صحیح که نشان دهنده مکان تبادل روی رشتهها است, هر دو رشته از محلی که این عدد مشخص میکند شکسته میشوند و قسمتهای انتهایی آنها با همدیگر معاوضه میشوند. اکنون قسمتهای جدا شده به همدیگر متصل میشوند، تا دو رشته جدید حاصل شود
3-عملگر جهش
این عملگر نیز یکی از عملگرهای الگوریتم ژنتیک است و به کارگیری آن قابلیت الگوریتم ژنتیک را برای یافتن حلهای نزدیک بهینه افزایش میدهد. جهش، تغییر اتفاقی در مقدار یک وضعیت ویژه رشته میباشد. با به کارگیری این عملگر مشخصه هایی که در جمعیت والدین وجود ندارد، ایجاد میشود. زیرا جهش باعث تغییر مقدار یک ژن میشود یعنی اگر یک باشد صفر میشود و بالعکس اگر صفر باشد یک میشود. لذا همین موضوع باعث تغییر مشخصههای یک رشته میشود و برای اینکه جمعیت پیش از موعد همگرا نشود، مناسب میباشد. زیرا یکی از دلایل همگرایی پیش از موعد یکسان بودن اعضاء جمعیت می باشد که عملگر جهش باعث می شود احتمال یکسان شدن اعضاء در جمعیت های جدید بسیار کاهش یابد. روش پیاده سازی این عملگر در زیر توضیح داده می شود.
این عملگر بر خلاف عملگر تبادل که به دو رشته نیاز داشت، به یک رشته نیاز دارد، پس از اینکه عملگر تبادل روی دو رشته اعمال شد و دو رشته جدید به دست آمد، عملگر جهش به این دو رشته به صورت مجزا اعمال می شود. روش اعمال به این صورت است که برای تک تک عناصر یک رشته، آزمون احتمال جهش صورت میگیرد. در صورتی که این آزمون با موفقیت انجام شود، مقدار آن وضعیت از یک به صفر یا از صفر به یک تغییر میکند و به اصطلاح جهش میکند. انجام آزمون احتمال نیز با استفاده از یک سکه نا همگن که با احتمال (Pcross) شیر و با احتمال (1- Pcross) خط میآید، صورت میگیرد و در صورتی که با پرتاب سکه شیر آمده باشد مقدار بیت مربوط جهش میکند.
همانطور که در بالا گفته شد بایستی آزمون احتمال برای تک تک وضعیتهای یک رشته صورت گیرد. به عبارت دیگر برای هر جهش یک بار سکه ناهمگن رها میشود و با توجه به نتیجه، مقدار بیت جهش مییابد یا جهش نمییابد.