اعضای زنده بدن از سلولها تشکیل شده‌ و هر سلول دارای یک یا چند کروموزوم است. یک کروموزوم را می‌توان به صورت مجموعه‌ای از ژنها در نظر گرفت. ژنها عاملهای انتقال خصوصیات و رفتارهای موروثی از پدر و مادر به فرزندان هستند.
در فضای مسئله نیز هر راه‌حل، مجموعه‌ای از کمّیت‌ها و متغیرها محسوب می‌شود. به همین دلیل در الگوریتم ژنتیک راه‌حل را به شکل یک کروموزوم که مجموعه‌ای از ژنهاست شبیه‌سازی کرده و مجموعه تمام کروموزومهای موجود، همان فضای حالت مسئله را تشکیل می‌دهد.

درنتیجه:
ژنها: به عنوان کمّیت‌ها و متغیرهای مسئله در نظر گرفته می‌شوند.
کروموزوم: لیستی از کمّیت‌ها بوده و نماینده یک راه‌حل از مسئله است.
جمعیت: مجموعه تمام کروموزومهای یک نسل و یا به عبارتی مجموعه تمام راه‌حلهای موجود در فضای جستجوی مسئله است.

فرآیند کلی یک الگوریتم ژنتیکی در عمل به صورت ذیل است:

1.    با توجه به نوع مسئله و ساختار پاسخ‌های قابل قبول برای آن، ساختار کروموزوم‌ها را مشخص می‌سازیم. معمولاً یک راه‌حل مسئله، به صورت لیستی از متغیرهای مسئله نشان داده می‌شود (مثلا یک آرایه عددی)

2.    تابع ارزیابی مناسبی جهت ارزیابی کروموزوم‌ها (پاسخ‌ها) طراحی می‌کنیم. این مرحله اهمیت بسیار زیادی دارد، چرا که اگر نتوان تابعی مناسب جهت ارزیابی کروموزوم‌های تولید شده در نسلهای مختلف طراحی نمود، به هیچ وجه نمی‌توان مسئله مور نظر را با استفاده از الگوریتم ژنتیک حل کرد.

3.    مقادیر پارامترهای اولیه الگوریتم را با توجه به صورت مسئله تعیین می‌کنیم. مهمترین پارامترهای مورد استفاده عبارتند از، اندازه جمعیت اولیه، احتمالات مربوط به انتخاب، ترکیب، جهش، ابقاء  و همگرایی، نوع انتخاب و نوع عملگرهای ترکیب و جهش.

4.    یک جمعیت تصادفی تولید می‌شود که  هر کروموزوم نماینده یک جواب برای مساله است.

5.    با استفاده از تابع ارزیابی، کیفیت تمام کروموزوم‌های این نسل را محاسبه و ذخیره می‌نماییم.

6.    با توجه به مقدار کمیت درصد انتخاب، جفت کروموزوم‌هایی را به عنوان والدها انتخاب می‌کنیم. روند انتخاب والدها با استفاده از مقادیر ذخیره شده تابع ارزیابی انجام می‌گیرد.

7.    هر جفت از والدها، با توجه به مقدار احتمال ترکیب، با یکدیگر ترکیب شده و یک یا دو کروموزوم فرزند تولید می‌کنند.

8.    هر کروموزوم فرزند، با توجه به مقدار احتمال جهش، جهش می‌یابد.

9.    با توجه مقدار احتمال ابقاء، تعدادی از فرزندان برای جایگزین شدن در نسل جدید انتخاب شده و مابقی نسل جدید از کروموزوم‌های نسل قبلی انتخاب می‌گردند، سپس نسل جدید به جای نسل قبلی در برنامه جایگزین می‌شود.

کاربرد اصلی الگوریتم‌های ژنتیک در حل مسائل بهینه‌سازی است، اما در واقع از این الگوریتم‌ها می‌توان در حل بهینه هر نوع مسئله‌ای که در فضای GA قابل پیاده‌سازی باشد استفاده نمود.

جهت توضیحات بیشتر به کتاب “پیاده‌سای و حل مسائل کاربردی با الگوریتم ژنتیک” رجوع نمایید.

Print this pageEmail this to someoneShare on Google+Share on FacebookShare on LinkedInTweet about this on TwitterShare on RedditShare on TumblrShare on StumbleUponPin on Pinterest