الگوریتم ژنتیک و انتخاب طبیعی

در طبیعت فرآیند تکامل هنگامی ایجاد می‌شود که چهار شرط زیر برقرار باشد [34] :
یک موجود توانایی تکثیر خود را داشته باشد.
Widget not in any sidebars

یک جمعیت از چنین موجوداتی که قابلیت تولید خود را دارند، وجود داشته باشد.
تنوع در بین این موجودات وجود داشته باشد.
انواع این موجودات توسط بعضی از قابلیتها، در زندگی محیط اطرافشان از هم مجزا شوند.
در طبیعت تنوع موجودات در اختلافی است که در کروموزومهای آنها وجود دارد و این تفاوت در ساختار و رفتار افراد یک جمعیت باعث قدرت بقای متفاوت می‌شود. چرا که تنوع ساختار و رفتار به نوبه خود بر روی نرخ زاد و ولد اثر می‌گذارد. موجوداتی که توانایی بیشتری را در انجام فعالیت‌ها در محیط دارند (برای مثال موجودات متکامل)، دارای نرخ زاد و ولد بالاتری هستند و طبعا موجوداتی که برازندگی یا تطابق کمتری با محیط دارند، دارای نرخ پایینتری از زاد و ولد هستند. بنابراین با گذشت زمان تعداد نفراتی که رفتار و ساختار مناسب‌تری دارند افزایش می‌یابد و جمعیت رو به بهبودی و تکامل می‌رود. بر اساس این مفهوم از تکثیر بقای طبیعی و تکثیر بقای احسن که به وسیله چارلز داروین (1859)، بیان شده است، بعد از چند دوره زمانی و گذشت چند نسل، کل جمعیت تمایل دارد موجوداتی را بیشتر در خود داشته باشد که با تغییر کروموزوم‌هایشان، ساختار و رفتار آنها قادر به انجام بهتر کارها در محیط و تولید مثل بهتر باشد. بنابراین در طی زمان، ساختار افراد جامعه به علت بقای طبیعی تغییر می‌کند. هنگامی که این تفاوتهای قابل اندازه‌گیری در ساختار افراد که ناشی از تطابق با محیط اطراف است دیده شود می‌گوییم که جمعیت تکامل یافته است. در این فرآیند، ساختار توسط تطبیق مشخصات افراد جامعه با محیط ایجاد می‌شود.
هنگامی که جمعیتی از موجودات داریم، وجود تفاوت‌ها در آنها به طور غیرمستقیم در نرخ تکثیر آنها تاثیر می‌گذارد که این امر غیر قابل اجتناب است. بنابراین در عمل، وجود شرط اول از چهار شرط بالا، شرط اساسی برای شروع فرآیند تکامل است.
جان هالند [34]، قالبی کلی برای تمام سیستم‌های قابل تطبیق ایجاد کرد و نشان داد چگونه می‌توان فرآیند تکامل را برای سیستم‌های مصنوعی بکار برد. به طور کلی هر مسأله قابل تطبیق می‌تواند در قالب واژه‌های ژنتیک فرمول‌بندی شود. اگر فرمول‌بندی این گونه مسایل بر اساس واژه‌های ژنتیک باشد، می‌توانیم آنها را بوسیله الگوریتم‌های ژنتیک حل کنیم.
الگوریتم ژنتیک، الگوریتمی ریاضی است که با استفاده از الگوهای عملیاتی داروینی در مورد تکثیر بقای احسن و بر اساس فرآیند طبیعی ژنتیک، مجموعه‌ای (جمعیتی) از اشیا منفرد ریاضی (معمولا رشته‌های کارکتری با طول ثابت به عنوان رشته کروموزوم‌ها) با میزان تطبیق خاصی را به جمعیت جدیدی (برای مثال نسل بعد) تبدیل می‌کند.
الگوریتم ژنتیک در واقع تلاشی برای شبیه‌سازی برخی از خصوصیت‌های تکامل و تغییرات روی کروموزوم است که همواره در طبیعت صورت می‌گیرد. به عبارت دیگر اینها الگوریتم‌های شدیدا موازی هستند که سعی می‌کنند با وراثت و جهش طی نسل‌های متوالی عملکرد مورد نظری را در افراد یک جمعیت ایجاد کنند. این کار از طریق ایجاد یک جمعیت اولیه و فراهم آوردن شرایط تکامل در نسل‌های بعدی صورت می‌گیرد.
اولین تئوری مربوط به تکامل در یک جمعیت توسط لامارک مطرح شد. طبق این تئوری صفات اکتسابی موجودات زنده به نسل بعد منتقل می‌شود. بنابراین اگر موجودات بخواهند با طبیعت خود تطبیق پیدا کنند این کار عملی خواهد بود. با توجه به تئوری داروین که قبلا به آن اشاره شد می‌توان به نکات زیر رسید [34] :
وراثت: موجود زنده شبیه خود را می‌سازد و یا تولید مثل می‌کند. از لحاظ ریاضی یعنی تجربه‌های قبلی حفظ می‌شوند.
علل تصادف: در این همانندسازی یکسری تصادف‌ها و خطاهایی رخ می‌دهد و به لحاظ ریاضی اطلاعات به سیستم یا دستگاه تزریق می‌شود.
اصل انتخاب طبیعی: موجوداتی که شانس تطبیق بیشتری با طبیعت دارند بقای بهتری دارند، یعنی طبیعت شانس نابرابر برای بقا به موجودات می‌دهد.
با توجه به این مطالب شکل کلی تئوری داروین را می‌توان به صورت شکل (3-1) مدل کرد.
شکل3-1. مدل تئوری داروین [34]
شکل3-1. مدل تئوری داروین [34]
جمعیت اولیه
عملگرهای تصادفی
جمعیت جدید
انتخاب طبیعی
جمعیتی بهتر