فراابتکاری

الگوریتم فاخته : Cuckoo Optimization Algorithm ، آموزش الگوریتم بهینه سازی فاخته

الگوریتم فاخته ، یک الگوریتم بهینه سازی و فراابتکاری است که در سال 2011 توسط رامین رجبیون معرفی و منتشر شد. این الگوریتم در مقاله ای بنام Cuckoo Optimization Algorithm منتشر شد.

 

الگوریتم فاخته اولین بار توسط استاد رامین رجبیون ارائه شد. الگوریتم فاخته از سری الگوریتم های فراابتکاری است که از زندگی یک خانواده از پرندگان به نام فاخته ها، الهام گرفته است.

الگوریتم بهینه سازی فاخته (COA) با یک جمعیت اولیه آغاز می شود.

فاخته های بالغ و تخم‌ها تلاش فاخته ها برای زنده ماندن اساس الگوریتم بهینه سازی فاخته را تشکیل می دهد. در طول مسابقه برای زنده ماندن، برخی از فاخته‌ها یا تخم های آنان از بین می روند. جامعه فاختگان نجات یافته به یک محیط بهتر مهاجرت می کنند، و دوباره شروع به تکثیر و تخم گذاری می کنند.

در این مقاله، ما یک الگوریتم تکاملی بهینه سازی جدید را معرفی می کنیم که از زندگی یک خانواده از پرندگان به نام “فاخته” الهام گرفته است. نحوه خاص تخم گذاری و زاد و ولد فاخته ها، اساس این الگوریتم بهینه سازی نوین است.

فاخته هایی که در این مدل از آن ها استفاده می شود، بر دو نوع اند: فاخته های بالغ و تخم ها.

فاخته های بالغ در لانه های پرندگان دیگر تخم گذاری می کنند و اگر این تخم ها توسط پرنده های میزبان شناسایی و نابود نشوند، رشد می کنند و به فاخته های بالغ تبدیل می شوند.

 

فاخته ها و روش منحصر به فرد آن ها در تکثیر

همه 9000 گونه پرندگان شیوه یکسانی برای زاد ولد دارند: روش تخم گذاری.

پرندگان به سرعت یک تخم درون یک پوسته محافظ تشکیل می دهند و روی آن می خوابند. اندازه بزرگ تخم ها، این را برای پرنده مؤنث دشوار می کند که در یک زمان، از بیش از یک تخم نگهداری کند. به همراه داشتن تخم ها، پرواز را سخت تر می کند و به انرژی بیشتری نیاز دارد. و چون یک تخم، غنیمتی پر از پروتئین و مغذی برای همه شکارچیان است، پرندگان باید جایی امن برای تخم گذاری بیابند.

یافتن مکانی برای تخم گذاری به صورت ایمن و پرورش جوجه شان تا رسیدن به استقلال، چالشی است که پرندگان آن را با راه های هوشمندانه ای حل کرده اند. آن ها از هنر، طراحی و مهندسی پیچیده استفاده می کنند. تنوع ساختاري لانه ها هیچ معادلی در دنیای جانوران ندارد. بسیاری از پرندگان، لانه های منفرد و ناپیدای پنهان شده لابلای پوشش گیاهی می سازند تا از شناسایی توسط شکارچیان دور بمانند. بعضی از آنان چنان در پنهان کردن لانه هایشان موفق اند که حتی چشم های جست و جو گر انسان هم به ندرت آن ها را دیده است.

پرندگانی هم هستند که تمام عرف های لانه سازی و والدي را رها می کنند و برای پروراندن خانواده شان به حیله گری متوسل می شوند. این ها “جوجه های انگلی” هستند، پرندگانی که هرگز لانه خودشان را نمی سازند و در عوض در لانه گونه های دیگر تخم گذاری می کنند و نگه داری از جوجه شان را به والدین آن گونه می سپارند.

فاخته، شناخته شده ترین انگل جوجه است و در فریب ظالمانه مهارت خاصی دارد. رویکرد او شامل پنهان کاری، غافل گیری و سرعت است.

فاخته مادر ، تخم پرنده گونه میزبان را بر می دارد و تخم خودش را به جای آن در لانه قرار می دهد و با تخم میزبان روی منقارش لانه را ترک می کند. کل این فرآیند کم تر از 10 ثانیه طول می کشد. فاخته ها انگل لانه های انواع زیادی از گونه های پرندگان می شوند و با دقت رنگ و شکل تخم های خود را با تخم های گونه های میزبان تطبیق می دهند. هر فاخته مؤنث روی یک گونه میزبان خاص، تخصص دارد. این که چگونه فاخته قادر است طوری تخم گذاری کند که دقیقا از تخم های هر میزبان تقلید کند، یکی از معماهای اصلی طبیعت است. بسیاری از پرندگان یاد می گیرند که یک تخم فاخته قرار گرفته در لانه خودشان را شناسایی کنند و یا این تخم عجیب را به بیرون پرتاب کنند یا آن لانه را رها کنند و از نو لانه بسازند. الگوریتم فرا ابتکاری فاخته در شکل زیر آورده شده است.

فلوچارت الگوریتم بهینه سازی فاخته
سبک فاخته برای تخم گذاری

هر فاخته شروع به تخم گذاری به طور تصادفی در لانه های پرندگان میزبان دیگر در ELR خود می کند. شکل 2 نمای روشنی از این مفهوم ارائه می دهد.

تخم گذاری تصادفی در ELR ، ستاره قرمز مرکزی زیستگاه اولیه فاخته با 5 تخم است. ستاره های صورتی لانه جدید تخم ها هستند.
تخم گذاری تصادفی در تخم مرغ ELR ، ستاره قرمز مرکزی زیستگاه اولیه فاخته با 5 تخم است. ستاره های صورتی لانه جدید تخم ها هستند.

شبه کد الگوریتم بهینه سازی فاخته

  • به محل زندگی فاخته ها با چند نقطه تصادفی روي تابع سود، مقدار بدهید.
  • به هر فاخته تعدادي تخم اختصاص دهید.
  • ELR را براي هر فاخته مشخص کنید.
  • به فاخته ها اجازه دهید در ELR مربوط به خود، تخم گذاري کنند.
  • تخم هایی که توسط پرندگان میزبان شناسایی می شوند را از بین ببرید.
  • اجازه دهید جوجه ها به دنیا بیایند و رشد کنند.
  • محل زندگی هر فاخته بالغ جدید را ارزیابی کنید.
  • تعداد حداکثر فاخته ها در محیط را محدود کنید و آنهایی که در بدترین محل ها زندگی می کنند را از بین ببرید.
  • فاخته ها را دسته بندي کنید و بهترین گروه را بیابید و محل زندگی هدف را برگزینید.
  • به جمعیت جدید فاخته ها اجازه مهاجرت به محل زندگی هدف بدهید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *