جستجوی فاخته

جستجوی فاخته
Cuckoo Search (CS)
روش جستجوی فاخته (CS) یک روش بهینهسازی فرااکتشافی است که رویکردی تکاملی در جستجوی راهحل بهینه دارد و در سال 2009 توسط Yang و Deb پیشنهاد شده است. این روش از رفتار جالب توجه گونههایی از پرندهی فاخته در پرورش تخم الهام گرفته است و آن را با پرواز لووی که نوعی گشت تصادفی است ترکیب میکند.
برخی از گونههای فاخته به جای ساختن لانه، تخمهای خود را در لانهی پرندهای از گونههای دیگر میگذارند و آنها را با تقلید از شکل تخمها و جوجههای پرندهی میزبان وادار به مشارکت در بقای نسل خود میکنند.
پرواز لووی نوعی گشت تصادفی است که طول گام آن از یک توزیع مشخص پیروی میکند. با استفاده از این روش اغلب، راهحلهای مشابه با راهحل فعلی و به ندرت راهحلهای دور از آن در مرحلهی بعدی جستجو تولید میشود. با توجه به این ویژگی میتوان با بهرهگیری از پرواز لووی جستجوی محلی و سراسری را تنها با یک ساختار پیادهسازی کرد. بنابراین تعداد پارامترهای مورد نیاز برای اجرای الگوریتم کاهش مییابد. الگوریتم CS از سه قانون زیر تبعیت میکند:
1- هر فاخته در هر زمان یک تخم میگذارد و آن را در یک لانهی تصادفی قرار میدهد.
2- بهترین لانهها با کیفیت بالای تخم، نسل بعدی را تشکیل میدهند.
3- تعداد لانههای میزبان ثابت است و تخمی که توسط فاخته گذاشته شده است، با احتمال توسط پرندهی میزبان کشف میشود. در این حالت پرندهی میزبان میتواند تخم را دور بیاندازد یا لانه را ترک کرده، لانهای جدید بسازد. برای سادگی، میتوان کسرPa از n تعداد لانهها را با لانههای (راهحلهای) جدید جایگزین نمود.
بررسیهای انجامشده بر روی CS نشان داد که این روش برای بسیاری از مسائل دارای کارایی مناسبی است. این الگوریتم در آزمایش به دقت بالاتر و درصد موفقیت بالاتری نسبت بهDE و PSO دست یافت.
روش جستجوی فاختهی اصلاحشده (MCS)، بهبودی بر روش CS است که با افزودن قدرت تعامل بین تخمها میتواند با نتایج الگوریتم PSO که دارای همین قابلیت است، رقابت کند و در توابعی با ابعاد بالا به طور مشخصی ازPSO بهتر عمل کند.
جستجوی فاختهی چندهدفه (MOCS) توسعهی جستجوی فاخته برای مسائل چندهدفه است که به سادگی با قراردادن تعداد بیشتری تخم در یک لانه به جای یک تخم به این هدف دست یافته است. نتایج مقایسهی این روش با دیگر روشهای چندهدفه نشاندهندهی قدرت این روش در حل اینگونه مسائل است. به علاوه این روش در مسائل جهان واقعی با هدفها و محدودیتهای متفاوت، قادر به تولید مجموعه جوابهای متفاوت با توزیع یکنواخت است.
CS تاکنون در کاربردهایی از قبیل یادگیری شبکههای عصبی پیشرو ، بهینهسازی طراحی سیستم جاسازیشده ، یادگیری شبکههای عصبی میخکوبکننده، طراحی عامل بازیMario و برنامهریزی پرستاران مورد استفاده قرار گرفته شده است و با توجه به نتایج گزارششده، روش مناسبی برای آزمایش در دیگر کاربردها به نظر میرسد.
با توجه به نتایج پژوهشها، دلیل قوت CS استفاده از پرواز لووی و پیادهسازی جستجوی تصادفی به صورت کارا و نیز تعداد پارامترهای کمتر نسبت به دیگر روشها است و این ویژگیها به علاوهی سادگی آن به این روش کمک میکند تا با کارایی بالا در کاربردهای مختلف با شرایط متفاوت مورد استفاده قرار گیرد.