یعنی مانند طبیعت یک جمعیت از موجودات را تشکیل می دهند و با اعمالی بر روی این مجموعه به یک مجموعه بهینه و یا موجود بهینه دست می یابند.
در واقع هیچگونه انتخابی انجام نمی دهیم (همه عناصر انتخاب می شوند) .
بصورت تصادفی تعدادی از موجودات جمعیت را بعنوان والدین انتخاب می کنیم، این انتخاب می تواند با جایگذاری یا بدون جایگذاری باشد.
در این روشها عناصر با شایستگی بیشتر شانس بیشتری برای انتخاب شدن بعنوان والدین را دارند.
این روشها با استفاده از تکنیک هایی سعی می کنند که انتخاب هایی را ارائه دهند، که هم رسیدن به جواب نهایی را تسریع کنند و هم اینکه کمک می کنند که جواب بهینه تری پیدا شود.
معمول ترین روش های انتخاب
Elitist Selection
مناسبترین عضو هر اجتماع انتخاب میشود.
Selection Roulette
یک روش انتخاب است که در آن عنصری که عدد پردازش (تناسب) بیشتری داشته باشد، انتخاب میشود.
ScalingSelection
به موازات افزایش متوسط عدد برازش جامعه، سنگینی انتخاب هم بیشتر میشود و جزئیتر. این روش وقتی کاربرد دارد که مجموعه دارای عناصری باشد که عدد برازش بزرگی دارند و فقط تفاوتهای کوچکی آنها را از هم تفکیک میکند.
Tournament Selection
یک زیر مجموعه از صفات یک جامعه انتخاب میشوند و اعضای آن مجموعه با هم رقابت میکنند و سرانجام فقط یک صفت از هر زیرگروه برای تولید انتخاب میشوند.
روش انجام عمل بازترکیبی
روش کار به صورت زیر است:
بصورت تصادفی یک نقطه از کروموزوم را انتخاب می کنیم
ژن های مابعد آن نقطه از کروموزوم ها را جابجا می کنیم
بازترکیبی تک نقطه ای (Single Point Crossover)
اگر عملیات بازترکیبی را در یک نقطه انجام دهیم به آن بازترکیبی تک نقطه ای می گویندو...
برنامه نویسی ژنتیک به همراه یک مثال
روند اجرای الگوریتم های ژنتیک را بدین صورت در نظر گرفتیم :
1) ایجاد یک جمعیت اولیه
2) ارزیابی عناصر جمعیت
3) بازترکیبی
4) جهش
5) تکرار موارد فوق تا زمانی که به نتیجه مورد نظر نرسیده ایم .
مثال) مساله یافتن برنامه ای برای محاسبه تابع XOR بااستفاده ازتوابع AND،OR وNOT را مطرح و نشان می دهیم که الگوریتم به صورت نمادین، چگونه جواب مورد نیاز را پیدا خواهد کرد.
جدول درستی برای توابع AND، OR، NOT و XOR به صورت زیر است :
برای حل مساله با استفاده از برنامه نویسی ژنتیک به این صورت عمل می کنیم که مجموعه عملگرهای منطقی {AND, OR, NOT} را به عنوان توابع برنامه و مجموعه {A, B, True, False} را به عنوان عناصر پایانی مطرح می کنیم. دو نکته در اینجا مهم است ، که اولاً هر ترکیبی از توابع که در درخت تجزیه وارد شود قابل ارزیابی است و باعث بروز خطا نمی شود و دوم اینکه مساله با استفاده از توابع و پایانی هایی که ذکر شده است، قابل بازسازی است.و.....
آشنایی با الگوریتم های ژنتیک