در زمینه هوش مصنوعی یا هوش محاسباتی، الگوریتمهای تکاملی زیرشاخهای را تشکیل میدهند که بر بهینهسازی اکتشافی، جستجو و یادگیری تمرکز دارد. فراابتکاری برای انجام این وظایف به کار میرود و نمونهسازی میشود.
حوزه الگوریتمهای تکاملی (EAs) به عنوان یک چتر عمل میکند که بسیاری از دستههای مختلف الگوریتمها مانند الگوریتمهای ژنتیک (GAs)، بهینهسازی ازدحام ذرات (PSO)، سیستمهای دستهبند یادگیری (LCS)، برنامهریزی ژنتیک (GP)، برنامهریزی تکاملی (EP) را پوشش میدهد. در سالهای اخیر بسیاری از مسائل دشوار با این رویکردها حل شده است. اگرچه یکسان نیستند، اما این الگوریتمها - مبتنی بر جمعیت، هدایت شده بر اساس اصول انتخاب طبیعی، و استفاده برای مسائل بهینهسازی شباهتهای زیادی دارند.
مسائل پرداخته شده توسط این الگوریتمها با وجود چشمانداز بزرگی از راهحلهای کاندید، و نیاز به جستجوی مؤثر این چشمانداز برای راهحلهای بهینه مشخص میشوند. البته، چنین مسائلی از نظر محاسباتی غیرقابل حل هستند و جستجوی brute force یک گزینه عملی نیست. اما ممکن است یک سوال مرتبط مطرح کنیم: آیا اطلاعاتی در چشم انداز موجود است که بتوانیم از آنها برای یافتن نقاط هدف بعدی برای جستجو استفاده کنیم؟
الگوریتمهای مختلف به روشهای مختلف به این سؤال میپردازند و نقاط مختلف جستجو را برای جمعیت برای کاوش یا بهرهبرداری تعیین میکنند. الگوریتمهای تکاملی با کاوش همزمان چندین راهحل (یا اعضا) نامزد در یک "جمعیت" که با زمان تغییر میکند مشخص میشود. اگرچه نسلهای مختلف اعضا در چنین الگوریتمهایی ممکن است به مجموعههای بسیار متفاوتی از اعضا در نسل بعدی (یا تکرار) منجر شوند، یک ویژگی مشترک این است که همه این الگوریتمها از چشمانداز هر نسل یاد میگیرند. این منجر به حرکتهای احتمالی به سمت یک راهحل بهتر، که ممکن است کند یا سریع باشد، در نسلهای متوالی انجام میشود.
الگوریتمهای تکاملی بر روی مجموعهها یا چند مجموعه اعضا (بازنمایی راهحلهای کاندید) عمل میکنند، که در آنها معمولاً روابط بین اعضا نادیده گرفته میشود. اطلاعات موجود در اعضا متعدد را میتوان به روشهای جالبی ترکیب یا اصلاح کرد، که منجر به کاوش راهحلهای نامزد جدید میشود، و استراتژیهای انتخابی که به نفع راهحلهای نامزد بهتر است، به هدایت الگوریتم به سمت بهبود پایدار در بهترین راهحلها در طول زمان کمک میکند[1].
تکنیکهای مورد استفاده در این الگوریتمها بر اساس مشاهدات طبیعت است. فرآیندهای بیولوژیکی برای مدت طولانی منبع جذابی برای انسان بوده است. این فرآیندها با پیچیدگی قابل توجهی مشخص میشوند، خواه تکامل باشد، یا جستجوی غذا، یا فرآیند جفتگیری برای تولید نسل بعدی، یا مبارزه برای منابع محدود. فرآیندهای تکاملی شامل مبارزه برای بقا هم از دیدگاه فردی و هم از دیدگاه گونه میشود.
ظهور یک جمعیت و ارزیابی اعضا از نظر برازش، که به نوبه خود منجر به احتمال بقای آنها در جمعیت میشود، ایدههایی است که از نظریههای زیستشناسی تکاملی چارلز داروین وام گرفته شده است [17]. با ادامه این موضوع که محاسبات تکاملی ایدههایی را از زیستشناسی تکاملی به عاریت میگیرد، به ویژگی دیگری که موجودات زنده در اکوسیستمهای خود نشان میدهند، میپردازیم، یعنی تشکیل انجمنهایی با برخی مشخصههای مشترک که آنها را به هم پیوند میدهد. از آنجایی که در بسیاری از اکوسیستمهای بیولوژیکی، شکلگیری انجمنها منجر به پدیدههای بسیار جالبی میشود، ما همین موضوع را در شبیهسازی محاسباتی «هوش» بررسی میکنیم. از منظر علم کامپیوتر/هوش مصنوعی، مشاهده و درک رفتارهای جمعیتها به عنوان شبکه میتواند ابزاری برای به تصویر کشیدن پدیده تشکیل انجمن در اکولوژی فراهم کند.
[1] در مورد یک الگوریتم نخبهگرا، یک پیشرفت ثابت مشاهده میشود زیرا بهترین عضو همیشه حفظ میشود. با این حال، در یک الگوریتم غیر نخبه گرایانه، یک راهحل به طور بالقوه میتواند بدتر شود زیرا بهترین عضو نیز خطر حذف از جمعیت را دارد، البته با احتمال بسیار کم.