‏الگوریتم ژنتیک

الگوریتم ژنتیک:
بسیاری از اختراعات در دنیا از طبیعت نشأت می‌گیرند، از جمله AI یا همان هوش مصنوعی. یکی دیگر از چنین ابداعات الگوریتم ژنتیک است. الگوریتم ژنتیک با شبیه سازی فرآیند تکامل در طبیعت برای یافتن بهترین جواب برای یک مسئله به جستجو می‌پردازد.


ایده الگوریتم ژنتیک :
در سال ۱۹۷۰ جان هالند ایده‌ی این الگوریتم را برای بهینه‌سازی مهندسی معرفی کرد. ایده اساسی پشت این الگوریتم شبیه‌سازی انتقال ویژگی‌های ارثی از طریق ژن‌ها است، دقیقاً شبیه‌ به نحوه انتقال صفات انسانی از طریق کروموزوم‌ها. هر ژن در این کروموزوم‌ها نشان دهنده یک ویژگی خاص است.
الگوریتم ژنتیک یا همان GA یک الگوریتم مبتنی بر جستجو و بر پایه‌ی محاسبات تکاملی هستند.


اجزای الگوریتم ژنتیک:
1. نمونه‌سازی اولیه (Initialization): فرآیند با ایجاد یک جمعیت اولیه از افراد تصادفی آغاز می‌شود.
2. ارزیابی سازگاری (Fitness Evaluation): سازگاری هر فرد توسط تابعی ارزیابی می‌شود که عملکرد آن‌ها را در حل مشکل اندازه‌گیری می‌کند.
3 . انتخاب (Selection): افراد با آمادگی بالاتر احتمال بیشتری برای انتخاب‌شدن به‌عنوان والدین برای نسل بعدی دارند.
4. تقاطع (Crossover): افراد انتخاب‌شده تحت crossover قرار می‌گیرند، جایی که مواد ژنتیکی آن‌ها برای ایجاد فرزندان ترکیب می‌شود.
5. جهش (Mutation): گاهی اوقات، تغییرات تصادفی در ماده ژنتیکی فرزندان برای حفظ تنوع اثرگذار خواهد بود.
6. تکرار (Repeat): فرآیند انتخاب، تقاطع و جهش تا زمانی که یک شرط خاتمه برآورده شود (به‌عنوان‌مثال، حداکثر تعداد نسل یا دقت راه‌حل مورد نظر) ادامه می‌یابد.


مزایای الگوریتم ژنتیک
1 . به اطلاعات مشتق شده نیازی ندارد
2 . روشی سریع تر و کارآمدتر است
3 . قابلیت های پیشرفته و توانای بهینه‌سازی مسائل
4. فهرستی از راه‌حل‌‌های خوب را ارائه می‌دهد
5. کارآمد در فضای جستجوی بزرگ


معایب و محدودیت ها :
1. نامناسب برای مسائل و اطلاعات ساده و مشتق شده
2. ارزش تابع هدف به‌طور مکرر محاسبه می‌شود
3 . هیچ تضمینی برای کیفیت راه‌حل بهینه‌شده وجود ندارد
4. اگر به‌درستی اجرا نشود مشکل‌زا می شود.


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


کاربردهای الگوریتم ژنتیک:

از الگوریتم‌های ژنتیک، جهت حل مسأله و مدل‌سازی استفاده می‌شود.
مهم‌ترین کاربردهای الگوریتم ژنتیک عبارتند از:

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

برنامه‌نویسی‌خودکار(Automatic Programming): برنامه‌نویسی سیستم‌های کامپیوتری برای انجام وظایف خاص و طراحی ساختارهای محاسباتی نظیر «اتوماتای سلولی» و «شبکه‌های مرتب‌سازی» .

یادگیری ماشین (Machine Learning):
از الگوریتم ژنتیک می‌توان برای دسته‌بندی، پیش‌بینی، طراحی شبکه‌های عصبی مصنوعی و سایر موارد استفاده کرد.

مدل‌های سیستم‌ایمنی(Immune Systems): 
برای مدل‌سازی جنبه‌های مختلف سیستم ایمنی طبیعی، از جمله برخی جهش‌ها در طول دوره حیات موجودات و اکتشاف خانواده‌های «چندژنی» در طول فرایند تکامل می‌توان استفاده کرد.

مدل‌های اقتصادی: 
مدل‌سازی فرایند نوآوری، توسعه استراتژی‌های مناقصه و ظهور بازارهای اقتصادی.


از انواع کاربرد الگوریتم ژنتیک در هوش مصنوعی می‌توان موارد زیر را نام برد:

  • بهینه بازی
  • بازی کردن
  • رباتیک
  • شبکه عصبی