ایده به کارگیری اصول داروینی در حل خودکار مسائل از دهه 50، مدتها قبل از پیشرفت رایانهها سرچشمه میگیرد. در طول دهه شصت سه پیادهسازی مختلف از این ایده در سه مکان مختلف توسعه یافته است. در ایالات متحده، فوگل برنامهریزی تکاملی را معرفی کرد، در حالی که هالند روش خود را الگوریتم ژنتیک نامید. در آلمان Rechenberg و Schwefel استراتژیهای تکامل را ابداع کردند. برای حدود 15 سال این مناطق به طور جداگانه توسعه یافتند. از اوایل دهه نود است که آنها به عنوان بازنمایی مختلف ("گویش[1]") یک فناوری، به نام محاسبات تکاملی خوانده میشوند. همچنین در اوایل دهه نود بود که جریان چهارمی به دنبال ایدههای کلی پدید آمد - برنامهریزی ژنتیکی. اصطلاحات معاصر کل حوزه را با محاسبات تکاملی نشان میدهند و برنامهریزی تکاملی[2]، استراتژیهای تکامل[3]، الگوریتمهای ژنتیک[4] و برنامهریزی ژنتیک[5] را به عنوان زیرحوزهها در نظر میگیرند.
در محاسبات تکاملی، تکامل تفاضلی (DE) روشی است که یک مسئله را با تلاش مکرر برای بهبود راه حل کاندید با توجه به یک معیار کیفیت معین بهینه میکند. چنین روشهایی معمولاً به عنوان فراابتکاری شناخته میشوند، زیرا فرضیات کمی در مورد مسئله بهینهسازی شده ایجاد میکنند یا هیچ فرضی ندارند و میتوانند فضاهای بسیار بزرگی از راهحلهای نامزد را جستجو کنند. با این حال، فراابتکاری مانند DE تضمین نمیکند که یک راه حل بهینه پیدا شود. DE برای توابع با ارزش واقعی چند بعدی استفاده میشود، اما از گرادیان مسئله در حال بهینهسازی استفاده نمیکند، به این معنی که DE نیازی به تمایز مسئله بهینهسازی ندارد، همانطور که در روشهای بهینهسازی کلاسیک مانند روشهای گرادیان نزول و شبه نیوتن مورد نیاز است. بنابراین DE میتواند در مسائل بهینهسازی که حتی پیوسته نیستند، نویزدار هستند، در طول زمان تغییر میکنند و غیره نیز استفاده شود.[1] DE یک مسئله را با حفظ جمعیتی از راهحلهای کاندید و ایجاد راهحلهای کاندید جدید با ترکیب راهحلهای موجود مطابق فرمولهای سادهاش، و سپس حفظ هر کدام از راهحلهای کاندید دارای بهترین امتیاز یا برازش در مسئله بهینهسازی در دست، بهینه میکند. به این ترتیب، مسئله بهینهسازی بهعنوان یک جعبه سیاه در نظر گرفته میشود که صرفاً معیاری از کیفیت را با توجه به راهحل کاندید ارائه میدهد و بنابراین نیازی به گرادیان نیست.
ادامه مطلب ...