الگوریتمهای فراابتکاری: تفاوت میان نسخهها
جز ربات:زیباسازی+شابک (۱۰.۵) |
جز ربات: جایگزینی پیوند جادویی شابک با الگو شابک |
||
خط ۱: | خط ۱: | ||
'''الگوریتمهای فراابتکاری یا فراتکاملی یا فرااکتشافی '''نوعی از الگوریتمهای تصادفی هستند که برای یافتن پاسخ بهینه به کار میروند. |
'''الگوریتمهای فراابتکاری یا فراتکاملی یا فرااکتشافی '''نوعی از الگوریتمهای تصادفی هستند که برای یافتن پاسخ بهینه به کار میروند. |
||
روشها و [[الگوریتمهای بهینهسازی]] به دو دسته [[الگوریتمهای دقیق]] (exact) و [[الگوریتمهای تقریبی]] (approximate algorithms) تقسیمبندی میشوند. الگوریتمهای دقیق قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد [[مسائل بهینه سازی سخت]] کارایی کافی ندارند و زمان اجرای آن ها متناسب با ابعاد مسائل به صورت نمایی افزایش مییابد. الگوریتمهای تقریبی قادر به یافتن جوابهای خوب (نزدیک به بهینه) در زمان حل کوتاه برای مسائل بهینهسازی سخت هستند. الگوریتمهای تقریبی نیز به سه دسته الگوریتمهای ابتکاری (heuristic) و فراابتکاری (meta-heuristic) و فوق ابتکاری (hyper heuristic) بخش بندی می شوند. دو مشکل اصلی الگوریتمهای ابتکاری، گیر افتادن آنها در نقاط بهینه محلی، همگرایی زودرس به این نقاط است. الگوریتمهای فراابتکاری برای حل این مشکلات الگوریتمهای ابتکاری ارائه شدهاند. در واقع الگوریتمهای فراابتکاری، یکی از انواع الگوریتمهای بهینهسازی تقریبی هستند که دارای راهکارهای برونرفت از نقاط بهینه محلی هستند و قابلیت کاربرد در طیف گسترده ای از مسائل را دارند.<ref>الگوریتم های بهینه سازی فراابتکاری (همراه با کاربردهایی در مهندسی برق)/تالیف دکتر فرشاد مریخ بیات؛ انتشارات جهاد دانشگاهی؛ 1393</ref><ref name="[1]">الگوریتمهای بهینهسازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظم زاده. جهاد دانشگاهی واحد صنعتی امیر کبیر |
روشها و [[الگوریتمهای بهینهسازی]] به دو دسته [[الگوریتمهای دقیق]] (exact) و [[الگوریتمهای تقریبی]] (approximate algorithms) تقسیمبندی میشوند. الگوریتمهای دقیق قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد [[مسائل بهینه سازی سخت]] کارایی کافی ندارند و زمان اجرای آن ها متناسب با ابعاد مسائل به صورت نمایی افزایش مییابد. الگوریتمهای تقریبی قادر به یافتن جوابهای خوب (نزدیک به بهینه) در زمان حل کوتاه برای مسائل بهینهسازی سخت هستند. الگوریتمهای تقریبی نیز به سه دسته الگوریتمهای ابتکاری (heuristic) و فراابتکاری (meta-heuristic) و فوق ابتکاری (hyper heuristic) بخش بندی می شوند. دو مشکل اصلی الگوریتمهای ابتکاری، گیر افتادن آنها در نقاط بهینه محلی، همگرایی زودرس به این نقاط است. الگوریتمهای فراابتکاری برای حل این مشکلات الگوریتمهای ابتکاری ارائه شدهاند. در واقع الگوریتمهای فراابتکاری، یکی از انواع الگوریتمهای بهینهسازی تقریبی هستند که دارای راهکارهای برونرفت از نقاط بهینه محلی هستند و قابلیت کاربرد در طیف گسترده ای از مسائل را دارند.<ref>الگوریتم های بهینه سازی فراابتکاری (همراه با کاربردهایی در مهندسی برق)/تالیف دکتر فرشاد مریخ بیات؛ انتشارات جهاد دانشگاهی؛ 1393</ref><ref name="[1]">الگوریتمهای بهینهسازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظم زاده. جهاد دانشگاهی واحد صنعتی امیر کبیر {{شابک|978-964-210-078}}-1</ref> رده های گوناگونی از این نوع الگوریتم در دهه های اخیر توسعه یافته است <ref name="[9]">بهینهسازی ترکیبی و الگوریتم های فرا ابتکاری /تالیف کورش عشقی ؛ مهدی کریمی نسب انتشارات آذرین مهر ؛1391</ref> |
||
== دستهبندی الگوریتمهای فراابتکاری == |
== دستهبندی الگوریتمهای فراابتکاری == |
نسخهٔ ۷ ژانویهٔ ۲۰۱۷، ساعت ۱۹:۵۵
الگوریتمهای فراابتکاری یا فراتکاملی یا فرااکتشافی نوعی از الگوریتمهای تصادفی هستند که برای یافتن پاسخ بهینه به کار میروند.
روشها و الگوریتمهای بهینهسازی به دو دسته الگوریتمهای دقیق (exact) و الگوریتمهای تقریبی (approximate algorithms) تقسیمبندی میشوند. الگوریتمهای دقیق قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد مسائل بهینه سازی سخت کارایی کافی ندارند و زمان اجرای آن ها متناسب با ابعاد مسائل به صورت نمایی افزایش مییابد. الگوریتمهای تقریبی قادر به یافتن جوابهای خوب (نزدیک به بهینه) در زمان حل کوتاه برای مسائل بهینهسازی سخت هستند. الگوریتمهای تقریبی نیز به سه دسته الگوریتمهای ابتکاری (heuristic) و فراابتکاری (meta-heuristic) و فوق ابتکاری (hyper heuristic) بخش بندی می شوند. دو مشکل اصلی الگوریتمهای ابتکاری، گیر افتادن آنها در نقاط بهینه محلی، همگرایی زودرس به این نقاط است. الگوریتمهای فراابتکاری برای حل این مشکلات الگوریتمهای ابتکاری ارائه شدهاند. در واقع الگوریتمهای فراابتکاری، یکی از انواع الگوریتمهای بهینهسازی تقریبی هستند که دارای راهکارهای برونرفت از نقاط بهینه محلی هستند و قابلیت کاربرد در طیف گسترده ای از مسائل را دارند.[۱][۲] رده های گوناگونی از این نوع الگوریتم در دهه های اخیر توسعه یافته است [۳]
دستهبندی الگوریتمهای فراابتکاری
معیارهای مختلفی میتواند برای طبقهبندی الگوریتمهای فراابتکاری استفاده شود:[۴]
- مبتنی بر یک جواب و مبتنی بر جمعیت : الگوریتمهای مبتنی بر یک جواب در حین فرایند جستجو یک جواب را تغییر میدهند، در حالی که در الگوریتمهای مبتنی بر جمعیت در حین جستجو، یک جمعیت از جوابها در نظر گرفته میشوند.
- الهام گرفته شده از طبیعت و بدون الهام از طبیعت: بسیاری از الگوریتمهای فراابتکاری از طبیعت الهام گرفته شدهاند، در این میان برخی از الگوریتمهای فراابتکاری نیز از طبیعت الهام گرفته نشده اند.
- با حافظه و بدون حافظه: برخی از الگوریتمهای فراابتکاری فاقد حافظه میباشند، به این معنا که، این نوع الگوریتمها از اطلاعات بدست آمده در حین جستجو استفاده نمیکنند (به طور مثال تبرید شبیهسازی شده). این در حالی است که در برخی از الگوریتمهای فراابتکاری نظیر جستجوی ممنوعه از حافظه استفاده میکنند. این حافظه اطلاعات بدست آمده در حین جستجو را در خود ذخیره میکند.
- قطعی و احتمالی: یک الگوریتم فراابتکاری قطعی نظیر جستجوی ممنوعه، مسئله را با استفاده از تصمیمات قطعی حل میکند. اما در الگوریتمهای فراابتکاری احتمالی نظیر تبرید شبیه سازی شده، یک سری قوانین احتمالی در حین جستجو مورد استفاده قرار میگیرد.
الگوریتمهای فراابتکاری بر پایه جمعیت
از الگوریتمهای شناخته شده فراابتکاری بر پایه جمعیت میتوان الگوریتمهای تکاملی [۵] (الگوریتم ژنتیک، برنامهریزی ژنتیک، ...)، بهینهسازی کلونی مورچگان [۶]، کلونی زنبورها [۷]، روش بهینهسازی ازدحام ذرات، الگوریتم ریشه-پاجوش و الگوریتم چکه آبهای هوشمند را نام برد.
الگوریتمهای متداول فراابتکاری مبتنی بر یک جواب
از الگوریتمهای متداول فراابتکاری مبتنی بر یک جواب میتوان الگوریتم جستجوی ممنوعه [۸] و الگوریتم تبرید شبیهسازی شده [۹] را نام برد.
پیادهسازی الگوریتمهای فراابتکاری
فرایند طراحی و پیادهسازی الگوریتمهای فراابتکاری دارای سه مرحلهی متوالی است که هر کدام از آنها دارای گامهای مختلفی هستند. در هر گام فعالیتهایی باید انجام شود تا آن گام کامل شود. مرحلهی ۱ آمادهسازی است که در آن باید شناخت دقیقی از مسئلهای که میخواهیم حل کنیم بدست آوریم، و اهداف طراحی الگوریتم فراابتکاری برای آن باید با توجه به روشهای حل موجود برای این مسئله به طور واضح و شفاف مشخص شود. مرحلهی بعدی، ساخت نام دارد. مهمترین اهداف این مرحله انتخاب استراتژی حل، تعریف معیارهای اندازه گیری عملکرد، و طراحی الگوریتم برای استراتژی حل انتخابی میباشد. آخرین مرحله پیادهسازی است که در آن پیادهسازی الگوریتم طراحی شده در مرحلهی قبل، شامل تنظیم پارامترها، تحلیل عملکرد، و در نهایت تدوین و تهیه گزارش نتایج باید انجام شود.[۱۰]
جستارهای وابسته
منابع
- ↑ الگوریتم های بهینه سازی فراابتکاری (همراه با کاربردهایی در مهندسی برق)/تالیف دکتر فرشاد مریخ بیات؛ انتشارات جهاد دانشگاهی؛ 1393
- ↑ الگوریتمهای بهینهسازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظم زاده. جهاد دانشگاهی واحد صنعتی امیر کبیر شابک ۹۷۸−۹۶۴−۲۱۰−۰۷۸-1
- ↑ بهینهسازی ترکیبی و الگوریتم های فرا ابتکاری /تالیف کورش عشقی ؛ مهدی کریمی نسب انتشارات آذرین مهر ؛1391
- ↑ Talbi, El-Ghazali. Metaheuristics: From Design to Impelementation, John Wiley and sons 2009
- ↑ Eiben, A.E., Smith, J.E., Introduction to Evolutionary Computiong, Springer 2003
- ↑ Dorigo, M., and Stützle, T., Ant Colony Optimization, MIT Press, Cambridge, MA, 2004
- ↑ Yonezawa, Y., and Kikuchi, T., Ecological algorithm for optimal ordering used by collective honey bee behavior, In 7th International Symposium on Micro Machine and Human Science, pp. 249–256 1996
- ↑ Glover F. and Laguna, M., Tabu Search, Kluwer Academic Publishers, 1997simulated annealing, Science, Vol. 220, No. 4598, pp. 671–680, 1983
- ↑ Kirkpatrick, S., Gelatt, C. D. , and Vecchi, M. P., Optimization by simulated annealing, Science, Vol. 220, No. 4598, pp. 671–680, 1983
- ↑ Yaghini, Masoud; Akhavan, Rahim, DIMMA: A Design and Implementation Methodology for Metaheuristic Algorithms - A Perspective from Software Development, International Journal of Applied Metaheuristic Computing, Vol.1, No.4, pp. 57-74, 2010.