تاریخچه الگوریتم های تکاملی
تاریخچه الگوریتم های تکاملی در اوایل دهه 1950، مفهومی مانند انتخاب طبیعی و ترکیب ژنتیک، مورد بررسی و تحقیق قرار گرفت. در سال 1960 جان هالند، پدر علم الگوریتم های تکاملی، مدلی برای بهینه سازی مسائل ارائه کرد که در واقع تبدیلی ژنتیکی و ترکیب انتخاب طبیعی در الگوریتم خود به کاربرد، سپس در سال 1970 " ال دی جانگ " مفهوم الگوریتم ژنتیک را با عنوان یک روش بهینه سازی معروفی کرد. در دهه هشتاد میلادی تحقیقات گسترده ای در بخش الگوریتم های تکاملی انجام شد و در دهه 1990 و بعد از آن، این الگوریتم ها به صورت ویژه ای در حل مسائل مرتبط با هوش مصنوعی و یادگیری ماشینی مورد استفاده قرار گرفتند.
الگوریتم تکاملی چیست و نحوه عملکرد آن به چه صورت است؟
الگوریتمهای تکاملی نوعی از الگوریتمهای محاسباتی هستند که از مفاهیم و فرآیندی بهره گرفته اند، که شامل تکامل طبیعی و تئوری می باشد که از" انتخاب طبیعی" برای حل مسائل مختلف استفاده میکنند. این الگوریتمها به شکل متداول در بهینهسازی و جستجوی مسائل پیچیده، استفاده میشود.
چرخه الگوریتم های تکاملی
- جمعیت اولیه: این الگوریتم ها با استفاده از یک جمعیت شروع می شود، این جمعیت شامل مجموعه ای از افراد یا همان جواب هاست.
- والدین: بر اساس جمعیت اولیه ارائه شده ، والد ها از بین جمعیت، انتخاب می شوند تا برای مرحله تولید مثل آماده شوند.
- فرزندان: از والدین انتخاب شده در جمعیت اولیه، فرزندان ایجاد می شوند، همچنین فرزندان میتوانند تحت جهش قرار گیرند. فرزند، در واقع یک راه حل جدید برای مسئله می باشد.
- جمعیت ثانویه: از بین فرزندان تولید شده و جمعیت اولیه بر اساس معیارهایی جمعیت ثانویه شکل میگیرد. جمعیت ثانویه در مرحله ی بعد الگوریتم مورد استفاده قرار میگیرد.
روند بالا، به طور مکرر تکرار میشود تا الگوریتم به بهینه ترین جواب ممکن برسد.
انواع الگوریتم های تکاملی
این الگوریتم ها چند نوع خاص دارند که مهم ترین انها میباشند ، در بخش زیر این چند نوع خاص الگوریتم ها توضیح داده شده:
الگوریتم ژنتیک (Genetic Algorithm)
این الگوریتم بر اساس مفهوم تکامل طبیعی پایه گذاری شده است و علاوه بر آن افراد این الگوریتم با استفاده از ترکیب ژنی و گزینش تکامل میابند، علاوه بر این در بهینه سازی، ترکیب و ترتیب یادگیری ماشین مورد استفاده قرار میگیرند.
الگوریتم تکامل استراتژیک (Evolutionary Strategies)
این الگوریتم به بهینه سازی متغیرهای مسائل عددی و آماری پیچیده و بدون محدودیت در استفاده از مقادیر صحیح میپردازد و همچنین از تغییرات تصادفی برای بهینه سازی روند عملکرد بهره گیری میکند.
الگوریتم (Genetic Programming)
این الگوریتم یک الگوریتم تکاملی است که بینش ماشین و یادگیری ماشین را برای حل مسائل پیچیده استفاده میکند این الگوریتم شباهت زیادی به الگوریتم ژنتیک دارد.
الگوریتم (Evolutionary Programming)
این الگوریتم به عنوان یک روش بهینه سازی محسوب میشود، همچنین بر اساس مفهوم تکامل و تغییرات تصادفی در جمعیت از جستجو برای یافتن بهترین راه حال استفاده میکند.
الگوریتم تکاملی تفاضلی (Differential Evolution)
از این الگوریتم برای یافتن تفاوت بین اعضای جمعیت برای ایجاد نسل جدید استفاده میشود، علاوه بر این برای مسائل بهینه سازی شده آمار عددی ارائه می دهد.
الگوریتم یادگیری تکاملی (Evolutionary Learning)
این الگوریتم از تکامل به عنوان یک روش یادگیری در مسائل یادگیری ماشین استفاده میکند و این الگوریتم به عنوان یک تکنیک تکاملی برای بهبود مدل های پیشبینی و یادگیری بکار میرود.
الگوریتم تکاملی ژنتیک تفاضلی (Genetic Differential Evolution)
در این الگوریتم جمعیت اولیه از جمعیت تصادفی انتخاب می شود و برای کلاس بندی و تشخیص الگو در کسب و کار، یافتن رقابت های بازاری بکار میرود.
کاربرد الگوریتم تکاملی در صنعت های مختلف
این الگوریتم ها، در صنایع مختلف به عنوان ابزاری قدرتمند برای حل مسائل پیچیده و بهینه سازی مورد استفاده قرار میگیرند. در بخش زیر به برخی از کاربردهای الگوریتمهای تکاملی در صنایع مختلف اشاره شده است:
- مهندسی
این الگوریتم ها برای بهینه سازی ترتیب تولید و انتخاب ماشینآلات در محیط های تولیدی به کار میروند و علاوه بر این برای بهینه سازی ساختارهای مهندسی مانند پلها و سازههای بتنی استفاده میشود.
- خودروسازی
الگوریتمهای تکاملی در بهینهسازی مدلها، کارایی موتور، و بهینهسازی طراحی خودروها به کار میروند.
- صنعت مالی
این الگوریتمها برای تحلیل بازار سهام و پیشبینی تغییرات نرخها و روندهای مالی استفاده میشوند، همچنین برای تعیین استراتژیها و مدیریت ریسک مالی نیز بکار میروند.
- صنعت حمل و نقل
الگوریتم های تکاملی در مسائل مسیریابی برای بهینه سازی مسیرهای حمل و نقل در شهرها و برنامه ریزی بارگیری کامیونها استفاده میشوند.
- زیستشناسی و ژنتیک
در مطالعات زیستشناسی و ژنتیک، این الگوریتم ها برای تحلیل ژنوم ها و شناسایی الگوهای ژنتیکی مورد استفاده قرار می گیرند.
- هوافضا و هواپیما سازی
این الگوریتم ها در بهینه سازی ساختارهای هواپیما و موتورهای هواپیما برای کاهش مصرف سوخت و افزایش بهره برداری استفاده میشود.
- زمینشناسی و معدن
در خصوص منابع و بهینه سازی عملیات استخراج معدنی از الگوریتم ها بهره برداری میشود.
- صنعت انرژی
در بهینهسازی تولید انرژی از منابع مختلف از جمله نیروگاهها و پنلهای خورشیدی از این الگوریتم ها استفاده میشود.
خلاصه مقاله
الگوریتم های تکاملی نوعی از تکنیک های محاسباتی هستند که با تئوری نظریه انتخاب طبیعی برای حل مسائل بهره گرفته اند. از این الگوریتم برای بهینه سازی مفید و حل مسائل پیچیده استفاده می شود، این الگوریتم ها انواع مختلفی دارند که فرایند های متفاوتی را ارائه میدهند. از این الگوریتم برای صنایع بسیاری بهره گیری میشود.