

بهینهسازی، پروسهی بهبود ایجاد کردن در چیزی است. به عبارت دیگر، بهینهسازی، فرایند تنظیم ورودیها به خصوصیات یک دستگاه، فرایندی ریاضی و یا تجربهای برای یافتن حداقل یا حداکثر خروجی یا نتیجه میباشد.
ورودی شامل متغیرهای تابع هزینه، تابع هدف یا تابع برازندگی و خروجی شامل هزینهی برازندگی میباشد. روشهای متعددی برای حل یک مسئلهی بهینهسازی وجود دارد. برخی این روشها برگرفته از فرایندهای طبیعی هستند. این راهحلها با یک سری متغیرها آغاز میشوند و در نهایت منجر به مقدار سراسری حداکثر یا حداقل تابع هدف میشوند.
الگوریتم ژنتیک رایجترین روش در زمینهی محاسبات تکمیلی است. الگوریتم ژنتیک، از عملگرهایی استفاده میکند از تغییرات ژنتیک طبیعی و انتخاب طبیعی الهام گرفته است. مثال دیگر الگوریتم بهینهسازی ازدحام ذرات (PSO) است که توسط Eberhart و Kennedy در سال 1995 ابداع شد. این الگوریتم بهینهسازی تصادفی، از رفتار جمعی گروه پرندگان یا ماهیها الهام گرفته است. بهینهسازی کولونی مورچگان (ACO) نیز یک الگوریتم دیگر بهینهسازی تکاملی است که از رفتار فرومون ریزی مورچهها به دست آمده است. از طرف دیگر، تبرید شبیهسازی شده، فرایند تبرید تدریجی را وقتی که یک شیء با دمای بالاتر از دمای ذوب حرارت داده میشود و سپس کم کم سرد میشود تا یک شیء کریستالی ایجاد کند را شبیهسازی میکند؛ این الگوریتم انرژی را به حداقل میرساند. علاوه بر این روشهای مشهور، محققان الگوریتمهای بهینهسازی برگرفته از طبیعت، همچنان در حال تحقیق روی این گونه الگوریتمها هستند و روشهای جدیدی را ابداع میکنند.
1)مقاوم نسبت به تغییرات پویا: روشهای سنتی بهینهسازی، نسبت به تغییرات پویای محیط مقاوم نیستند و نیاز به یک شروع دوباره برای یافتن راهحل دارند. در حالی که محاسبات تکاملی، میتوانند برای پذیرش راهحلهایی که به تغییرات محیط حساسند به کار روند.
2)کاربرد وسیع: الگوریتمهای تکاملی، برای هر نوع مسئلهای که برای تابع مسائل بهینهسازی فرموله شدهاند کاربرد دارند.
3)ترکیب با دیگر روشها: الگوریتمهای تکاملی، میتوانند با تکنیکهای بهینهسازی روشهای سنتیتر ترکیب شوند.
4)حل مسائلی که هیچ گونه راهحلی ندارند: مزیت الگوریتمهای تکاملی، قدرت حل مسائلی است که هیچ تجربهی انسانی برای آنها وجود ندارد. با وجود آنکه تجربیات انسانی باید در مواقع نیاز و در دسترس استفاده شوند؛ این نیاز برای حل مسائل اتوماتیک کمتر احساس میشود.
5)با در نظر گرفتن این ویژگیها، الگوریتمهای تکاملی میتوانند روی کاربردهای فراوانی اعمال شوند مثل: کنترل عملیات سیستمهای نیرو، مسائل ترکیبی NP-Hard، فرایندهای شیمیایی، مسائل زمانبندی کار، مسائل مسیریابی وسایل نقلیه، شبکههای سیار، زمانبندی فرایندهای دستهای، مسائل بهینهسازی چند هدفه، مدلسازی پارامترهای بهینه، پردازش تصویر و مسائل تشخیص الگو.
در این گزارش، یک الگوریتم بهینهسازی تکاملی جدید را معرفی میکنیم که از روش زندگی خانوادهای از پرندگان به نام فاختهها بهره گرفته است. تخمگذاری و پرورش جوجه فاختهها به سبکی خاص، اساس این الگوریتم بهینهسازی جدید را تشکیل میدهد.
فاختههایی که در این مدل استفاده شدهاند به دو شکل هستند: فاختههای بالغ و تخم فاختهها. فاختههای بالغ، در لانهی دیگر پرندگان تخمگذاری میکنند و اگر این تخمها شناسایی نشوند و از بین نروند، رشد میکنند و به فاختهی بالغ تبدیل میشوند. ویژگیهای محیطی و مهاجرت جوامع (گروههای) فاخته، آنها را همگرا میکند تا بهترین منطقه را برای پرورش و تولید مثل پیدا کنند. این منطقهی بهینه، حداکثر بهینهی تابع هدف است. در این گزارش نشان میدهیم که روش زندگی فاختهها، چگونه مدلسازی و پیادهسازی میشود.
در بخش دوم، پرندگانی که فاخته نامیده میشوند را بررسی میکنیم و روش زندگی شگفتانگیز آنها را مرور میکنیم. در بخش سوم، الگوریتم بهینهسازی فاخته (COA) را شرح میدهیم و قسمتهای مختلف آن را با جزئیات میآوریم.
این الگوریتم، با چند تابع بنچ مارک مختلف تست شده است که در بخش چهارم به آن میپردازیم.همهی 9000 نوع پرندهی موجود در دنیا روش یكسانی برای مادر شدن دارند؛ همهی آنها تخم میگذارند. هیچ پرندهای نوزاد خود را نمیزاید، بلكه تخم گذاشته و جوجه خود را در بیرون از بدنشان پروش میدهند. هر چه تخمها بزرگتر باشند احتمال كمتری دارد كه پرندهی ماده بتواند بطور همزمان بیشتر از یك تخم در بدن خود داشته باشد، چرا كه تخمهای بزرگتر پرواز را سخت میكنند و نیاز به انرژی بیشتری برای پرواز خواهد بود. از طرف دیگر چون تخمها منبع سرشار پروتئین برای سایر شكارچیها میباشد، لازم است تا پرندگان محل امنی جهت تخمگذاری و به دنیا آمدن جوجهها انتخاب كنند. پیدا كردن یك محل امن جهت تخمگذاری و بیرون آمدن جوجهها و پرورش آنها تا زمان رسیدن به نقطه استقلال از والدین، مسئلهی مهمی است كه هر كدام از پرندگان به نحو هوشمندانهای آن را حل كردهاند. آنها از نوعی مهندسی هنرمندانه و پیچیده برای این كار استفاده كردهاند. تنوع لانهسازی و معماریهای آنها در بین تمام موجودات نظیر ندارد. اكثر پرندگان لانههایخود را بصورت جداشده، نامعلوم و مستتر در پوشش گیاهی ایجاد میكنند تا از شناسایی توسط شكارچیان جلوگیری نمایند.برخی از آنها چنان ماهرانه لانههای خود را مخفیمیكنند كه حتی انسانها با تمام تجهیزات بینایی خود قادر به شناسایی و دیدن لانههای آنها نمیباشند.
در این بین برخی از پرندگان خود را از دردسر هرگونه لانهسازی و وظایف والدین رهانیدهاند و به نوعی زیركی جهت پرورش جوجههای خود متوسل شدهاند. این پرندگان در اصطلاح «پارازیتهای اولاد»یا brood parasiteنامیده میشوند كه هرگز برای خود لانه نمیسازندو به جای آن تخمهای خود را در لانه سایر انواع پرندگان قرار میدهند و صبر میكنند تا آنها در كنار تخمهای خود به تخمهای این پرندگان نیز رسیدگی كنند.