الگوریتم های بهینه سازی (Optimization Algorithms) به آن دسته از الگوریتمهایی گفته میشود که با توجه به محدودیتها و نیازهای یک مسئله بهینه سازی، برای یافتن یک جواب قابل قبول تلاش میکند. مسائل بهینه سازی با روشهای مختلفی حل میشوند؛ مانند استفاده از الگوریتم های بهینه سازی، استفاده از الگوریتمهای ابتکاری یا هیوریستیک (Heuristic) و همچنین، استفاده از روش های فرا ابتکاری یا متاهیوریستیک (Metaheuristic) که گاهی اوقات این روشها با یکدیگر تلفیق میشوند و راه حل جدیدی را ارائه میدهند. در بسیاری از متون نیز به تمامی این الگوریتمها، الگوریتم های بهینه سازی نیز میگویند. اما تفاوتی بین این تعاریف وجود دارد.
ادامه مطلب ...
الگوریتم فراابتکاری یا متاهیوریستیک (به انگلیسی Meta Heuristic) که به آنها الگوریتم های فراتکاملی هم گاها گفته میشود، دسته ای از الگوریتم هایی هستند که برای حل مسائل بهینه سازی به کار برده میشوند.
در حالت کلی ، الگوریتم های بهینه سازی به دو دسته تقسیم میشوند:
الگوریتم های دقیق ، که غالبا الگوریتم ها و روش های ریاضی کلاسیک هستند، میتوانند جواب دقیق مسئله را پیدا کنند اما از آنجا که در حل مسائل سخت و پیچیده و بخصوص ابعاد بالا، ناتوان و ناکارامد هستند و اجرای آنها ممکن است سالها طول بکشد ، کارایی کافی را ندارند.
الگوریتم های تقریبی یا approximate میتوانند در زمان کوتاه و قابل قبولی ، پاسخ های خوب (نزدیک به بهینه) را برای مسائل سخت و پیچیده پیدا کنند ، و از این نظر بسیار کاربردی و مهم هستند.
الگوریتم های تقریبی را میتوان در سه دسته تقسیم کرد:
الگوریتم های ابتکاری یا heuristic در واقع الگوریتم های اولیه ای بودند که با بکاربردن تابع اکتشاف ، گامی برای حل مسائل مختلف در هوش مصنوعی برداشتند. الگوریتم هایی مانند جستجوی عمقی ، جستجوی عرضی ، A* و غیره.
اما مشکلاتی مانند گیرافتادن در بهینه محلی و همگرایی زودرس که در اغلب الگوریتم های ابتکاری وجود دارد، منجر به پیدایش الگوریتم های فراابتکاری یا meta heuristic شد.
الگوریتم های فراابتکاری ، با بهره گیری از دو مکانیزم مهم و کلیدی بنام اکتشاف (Exploration) و بهره برداری (Exploitation) توانایی فرا از بهینه محلی و رسیدن به بهینه سراسری را دارند.
ادامه مطلب ...