الگوریتمهای فراابتکاری , الگوریتم های متاهیوریستیک , انجام پروژه الگوریتمهای فراابتکاری , انواع الگوریتمهای فراابتکاری
الگوریتمهای فراابتکاری | الگوریتم های متاهیوریستیک
الگوریتمهای فراابتکاری:
مسائل پیچیده، اعم از مسائل مهندسی و یا مسائلی همانند زمانبندی کارها، بهینهسازی و … صرفا توسط دانش و روشهای ریاضی و الگوریتمهای متداول قابلیت حل ندارند و یا زمان بالایی برای حل این مسائل نیاز میباشد. در این بین علم هوشمصنوعی دارای ابزارهای مناسب جهت حل این مسائل میباشد. یکی از ابزارهای کارامد برای حل مسادل بهینهسازی در علم هوش مصنوعی الگوریتمهای فراابتکاری هستند.
انواع الگوریتمهای فراابتکاری عبارتند از :
الگوریتمهای تکاملی :
- الگوریتم ژنتیک (الگوریتم GA)
- الگوریتم برنامه ریزی ژنتیک (الگوریتم GP)
- الگوریتم تفاضل تکاملی (الگوریتم DE)
الگوریتمهای شبیه سازی ساختارهای فیزیکی :
- الگوریتم شبیه سازی ذوب فلزات (الگوریتم SA)
- الگوریتم هارمونی (الگوریتم HA)
الگوریتمهای ایمنی :
- الگوریتم انتخاب کلونی (الگوریتم CLONALG)
- الگوریتم انتخاب منفی (الگوریتم NSA)
الگوریتمهای هوش جمعی :
- الگوریتم بهینه سازی اجتماع ذرات (الگوریتم PSO)
- الگوریتم بهینه سازی گرگ خاکستری (الگوریتم GWO)
- الگوریتم بهینه سازی کلونی مورچگان (الگوریتم ACO)
- الگوریتم علف های هرز (الگوریتم IWO)
- الگوریتم جست و جوی گرانشی (الگوریتم GSA)
الگوریتمهای تصادفی :
- جست و جوی ممنوعه
- تپه نوردی تصادفی
- جست و جوی محلی هدایت شده
- جست و جوی ممتیک (الگوریتم Memetic)
در این میان الگوریتمهای تکاملی ، فرآیندهای فیزیکی ، احتمالاتی ، ازدحامی و ایمنی ، از دسته الگوریتمهای فراابتکاری بوده و کاربرد فراوانی در مسائل بهینهسازی دارد.
الگوریتمهای تکاملی :
همانگونه که در شکل پایین نشان داده شده است ، الگوریتمهای تکاملی بر اساس جمعیتی از جوابها عمل میکنند. در آغاز نیاز است مجموعهای از جوابها برای استفاده در الگوریتم تکاملی تولید گردند. این جواب باید برای الگوریتم تکاملی مورد نظر تعریف شده باشد. اغلب این تعریف نمیتواند به طور مستقیم در زمینه مسئله اصلی صورت گیرد و در عمل نیاز به نگاشتی میباشد که فضای حل مسئله برای حل مساله اصلی را به فضای حل مساله در الگوریتم نکاملی انتقال دهد.
بنابراین راهحل توسط ساختمان دادهای که فضای مساله اصلی را به صورت غیر مستقیم توصیف میکند مشخص میگردد. سپس فضای جست و جو در الگوریتم تکاملی (فرآیند بهینهسازی) مشخص میگردد. در این حالت شباهتی بین الگوریتم تکاملی و تکامل در طبیعت وجود دارد که در آن فضای ژن به فضای واقعی نگاشت میشود و بلعکس. نگاشت فضای واقعی به فضای ژنی بیانگر این است که چگونه نمایش (بازنمایی)، فضای ژنی خصوصیات فضای واقعی را نشان بدهد.
به عبارت دیگر، ویژگیهای فضای واقعی ویژگیهای فضای واقعی بیانگر و نشاندهنده راهحل در دامنه و زمینه مسالهی اصلی میباشد. قبل از اینکه عملیات مربوط به الگوریتم تکاملی آغاز گردد جمعیت اولیه باید تولید گردد. تولید جمعیت اولیه در الگوریتمهای تکاملی باید به صورت تصادفی صورت گیرد. پایه و اساس الگوریتمهای تکاملی نمایش یک جستوجوی تکاملی میباشد که در آن مجموعهای از جوابهای (افراد)، موجود در جمعیت برای تولید نسل، با عملگرهایی همانند همبری و جهش انتخاب میگردند. بعد از اینکه تولید نسل افراد جدیدتکمیل شد بر اساس برازندگی بین افراد قدیمی و افرادی که اخیرا تولید شدند، عملیات انتخاب زندهها صورت میگیرد و افراد مناسبتر به نسل بعدی انتقال مییابند. مقدار برازندگی بر اساس یک تابع که اغلب تابع برازندگی نامیده میشود، محاسبه میگردد. که نیاز به بهینهسازی را معین میکند. در الگوریتمهای تکاملی سعی بر این است که در هر تکرار الگوریتم جوابهای تولید شده را بهینه و بهینه تر کند و تا زمانی که الگوریتم تکاملی به بهترین جواب یا حداکثر تعداد تکرار مجاز دست یابد (شروط خاتمه)، این فرآیند ادامه داشته باشد.
مراحل جست و جوی الگوریتمهای تکاملی به دو قسمت تقسیمبندی میشوند :
- مرحله اکتشاف
- مرحله استخراج
در مرحله اکتشاف سعی میشود راهحلهای جدید کشف و شناسایی شوند اما در مرحلهی استخراج سعی میشود جستوجو در فضای راهحل فعلی صورت گیرد و در صورت امکان جواب به دست آمده بهینهتر گردد. دو مورد بیان شده در در جستوجوی تکاملی در هم تنیده شدهاند. تنوع بالا در جمعیت سبب بالا رفتن قابلیت اکتشاف الگوریتم میگردد و اگر تنوع در جمعیت از دست رود باعث میشود الگوریتم تکاملی دچار انقیاد زودرس گردد.
وب سایت مطلب دی ال با انجام پروژه های الگوریتمهای فراابتکاری در خدمت کاربران عزیز می باشد .