الگوریتم کلونی زنبور عسل

الگوریتم کلونی زنبور عسل (به انگلیسی: Artificial bee colony algorithm) یک الگوریتم بهینه سازی بر اساس هوش جمعی و رفتار هوشمندانه جمعیت زنبور عسل است.

درویش قارابوغا به استفاده از هوش جمعی زنبور در توسعه سیستم‌های هوش مصنوعی با هدف حل مسایل پیچیده در ترافیک و حمل ونقل پیشنهاد داده‌است. همچنین تئودور واس بهینه‌سازی متا اکتشافی کلونی زنبور عسل (BCO) که قادر به حل قطعی مسائل ترکیبیات، و همچنین مسائل ترکیبی با مشخصه عدم قطعیت است را پیشنهاد کرد.

شرح الگوریتم زنبور عسل

ویرایش

الگوریتم زنبور (به انگلیسی: Bee Algorithm) شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ میلادی توسعه یافت؛ این الگوریتم شبیه‌سازی رفتار گروه‌های زنبور عسل برای جستجوی غذا است. در نسخه ابتدایی ، این الگوریتم نوعی جستجوی محلی انجام می‌دهد ، که با جستجوی کارهایی (تصادفی) ترکیب شده و می‌تواند برای بهینه‌سازی ترکیبی یا بهینه‌سازی تابعی به کار رود.

جستجوی غذا در طبیعت

ویرایش

یک کلونی زنبور عسل می‌تواند در مسافت زیادی و نیز در جهت‌های گوناگون پخش شود تا از منابع غذایی بهره‌برداری کند. قطعات گلدار با مقادیر زیادی نکتار و گرده که با تلاشی کم قابل جمع‌آوری است، به وسیله ی تعداد زیادی زنبور بازدید می‌شود؛ به‌طوری‌که قطعاتی از زمین که گرده یا نکتار کمتری دارد، تعداد کمتری زنبور را جلب می‌کند. پروسهٔ جستجوی غذای یک کلونی به وسیلهٔ زنبورهای دیده‌بان آغاز می‌شود که برای جستجوی گلزارهای امید بخش (دارای امید بیشتر برای وجود نکتار یا گرده) فرستاده می‌شوند. زنبورهای دیده‌بان به صورت یک جا و گروهی از گلزاری به گلزار دیگر حرکت می‌کنند. در طول فصل برداشت محصول (گل‌دهی)، کلونی با آماده نگه داشتن تعدادی از جمعیت کلونی به عنوان زنبور دیده‌بان به جستجوی خود ادامه می‌دهند. هنگامی که جستجوی تمام گلزارها پایان یافت، هر زنبور دیده‌بان، بالای گلزاری که اندوختهٔ کیفی مطمئنی از نکتار و گرده دارد، رقص خاصی را اجرا می‌کند. این رقص که به نام رقص چرخشی شناخته می‌شود، اطلاعات مربوط به جهت گلزار (نسبت به کندو)، فاصله تا گلزار و کیفیت گلزار را به زنبورهای دیگر انتقال می‌دهد. این اطلاعات زنبورهای اضافی و پیرو را به سوی گلزار می‌فرستد. بیش‌تر زنبورهای پیرو به سوی گلزارهایی میروند که امید بخشتر هستند و امید بیش‌تری برای یافتن نکتار و گرده در آن‌ها وجود دارد. وقتی همهٔ زنبورها به سمت ناحیه‌ای مشابه بروند، دوباره به صورت تصادفی و به علت محدودهی رقصشان در پیرامون گلزار پراکنده می‌شوند تا به موجب این کار سرانجام نه یک گلزار، بلکه بهترین گل‌های موجود درون آن تعیین موقعیت شوند. الگوریتم زنبور عسل هر نقطه را در فضای پارامتری – متشکل از پاسخ‌های ممکن- به عنوان منبع غذا تحت بررسی قرار می‌دهد. زنبورهای دیده‌بان – کارگزاران شبیه‌سازی شده – به صورت تصادفی فضای پاسخها را ساده می‌کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزارش می‌دهند. جواب‌های ساده شده رتبه بندی می‌شوند و دیگر زنبورها نیروهای تازه ای هستند که فضای پاسخ‌ها را در پیرامون خود برای یافتن بالاترین رتبه محل‌ها جستجو می‌کنند که گلزار نامیده می‌شود. الگوریتم به صورت گزینشی دیگر گلزارها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می‌کند.

کاربردها

ویرایش

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

  • آموزش شبکه عصبی برای الگو شناسی
  • زمان بندی کارها برای ماشین‌های تولیدی
  • دسته‌بندی اطلاعات
  • بهینه‌سازی طراحی اجزای مکانیکی
  • بهینه‌سازی چند گانه
  • میزان کردن کنترل‌کننده‌های منطق فازی برای ربات‌های ورزشکار
  • قدرت تفکر بخشیدن به سیستم

منابع

ویرایش