الگوریتم کلونی زنبور عسل چیست؟
در این مدل، کلونی زنبور عسل مصنوعی دارای سه نوع زنبورهای کارگر، ناظر و دیدهبان است. زنبورهای کارگر روی گردآوری غذا و آوردن آن به کندو از یک منبع غذایی خاص کار میکنند. زنبورهای ناظر در میان کارگرها گشت میزنند تا تشخیص دهند یک منبع غذایی همچنان ارزش استفاده دارد یا خیر و در نهایت زنبورهای دیدهبان که بهدنبال کشف منابع غذایی جدید هستند.
در الگوریتم زنبور عسل، یک منبع غذایی به عنوان حالتی در فضای جستوجو تعریف میشود، و تعداد منابع غذایی در ابتدا برابر با تعداد زنبورهای موجود در کندو است. کیفیت منابع غذایی توسط مقدار تابع هدف در آن موقعیت (مقدار تناسب) تعیین میشود.
یک کلونی زنبور عسل میتواند در مسافت زیادی و نیز در جهتهای گوناگون پخش شود تا از منابع غذایی بهرهبرداری کند. گلها با مقادیر زیادی شهد و گرده که با تلاشی کم قابل جمع آوری است، به وسیلهی تعداد زیادی زنبور بازدید میشود؛ به طوری که قطعاتی از زمین که گرده یا شهد کمتری دارد، تعداد کمتری زنبور را جلب میکند.
جستجو غذا
پروسهٔ جستجوی غذای یک کلونی به وسیلهٔ زنبورهای دیده بان آغاز میشود که برای جستجوی گل زارها فرستاده میشوند. زنبورهای دیدهبان از گلزاری به گلزار دیگر حرکت میکنند. در طول فصل برداشت محصول (گلدهی)، کلونی با آماده نگه داشتن تعدادی از جمعیت کلونی به عنوان زنبور دیدهبان به جستجوی خود ادامه میدهند.
هنگامی که جستجوی تمام گلزارها پایان یافت، هر زنبور دیدهبان، بالای گلزاری که اندوختهٔ کیفی مطمئنی از شهد و گرده دارد، رقص خاصی را اجرا میکند. این رقص که به نام رقص چرخشی شناخته میشود، اطلاعات مربوط به جهت تکه گلزار (نسبت به کندو)، فاصله تا گلزار و کیفیت گلزار را به زنبورهای دیگر انتقال میدهد. این اطلاعات زنبورهای اضافی و پیرو را به سوی گلزار میفرستد.
بیشتر زنبورهای پیرو به سوی گلزارهایی میروند که امید بخشتر هستند و امید بیشتری برای یافتن نکتار و گرده در آنها وجود دارد. وقتی همهٔ زنبورها به سمت ناحیهای مشابه بروند، دوباره به صورت تصادفی و به علت محدودهی رقصشان در پیرامون گلزار پراکنده میشوند تا به موجب این کار سرانجام نه یک گلزار، بلکه بهترین گلهای موجود درون آن تعیین موقعیت شوند.
الگوریتم زنبور عسل هر نقطه را در فضای پارامتری متشکل از پاسخهای ممکن به عنوان منبع غذا تحت بررسی قرار میدهد. زنبورهای دیدهبان به صورت تصادفی فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیتهای بازدید شده را گزارش می دهند. جوابهای ساده شده رتبه بندی میشوند و دیگر زنبورها نیروهای تازهای هستند که فضای پاسخها را در پیرامون خود برای یافتن بالاترین رتبه محلها جستجو میکنند که گلزار نامیده میشود. الگوریتم به صورت گزینشی دیگر گلزارها را برای یافتن نقطهی بیشینهی تابع شایستگی جستجو میکند.
مراحل الگوریتم زنبور عسل
رفتار هوشمند ناپایدار زنبورهای عسل را میتوان در چند گام زیر خلاصه کرد:
- زنبورها تلاش میکنند تا به صورت تصادفی در محیط بهدنبال منابع غذایی خوب بگردند (مقدار تناسب).
- پس از یافتن یک منبع غذایی، آنها تبدیل به زنبورهای کارگر میشوند و شروع به استخراج غذا از منبع یافت شده میکنند.
- زنبور کارگر با شهد به کندو باز میگردد و بار شهد خود را خالی میکند. پس از خالی کردن آن، میتواند مستقیما به منبع کشف شده خود باز گردد یا اطلاعاتی که درباره منبع غذاییش دارد را با اجرای یک رقص گردون در ناحیه رقص به اشتراک بگذارد.
- اگر یک منبع غذایی خالی شد، زنبوران کارگر به دیدهبان مبدل شده و به جست و جوی تصادفی برای منابع غذایی میپردازند.
- زنبورهای ناظر در کندو منتظر مانده و زنبورهای کارگر را در منابع غذایی گردآوری کردهشان مورد نظارت قرار میدهند و از میان منابع غذایی موجود با بیشترین سود، یک منبع را انتخاب میکنند.
- انتخاب منابع غذایی متناسب با کیفیت آن منبع (مقدار تناسب) است.
سورس کد الگوریتم زنبور عسل در متلب عنوان موضوعی است که در این مقاله به آن پرداخته شده است. الگوریتم کلونی زنبور عسل مصنوعی (Artificial bee colony algorithm) یا ABC یک الگوریتم بهینه سازی بر اساس هوش جمعی و رفتار هوشمندانه جمعیت زنبور عسل است. جهت دسترسی به این فایل به لینک زیر مراجعه کنید.
زنبور کارگر
رفتار اصلی زنبور کارگر استخراج غذا از یک منبع غذایی است که در آن کارگران تا مرحله خالی شدن منبع کار میکنند. در مرحله پیادهسازی، این رفتار را میتوان به عنوان ساخت موقعیتهای جدید در نزدیکی جایی که زنبورهای کارگر مشغول کار هستند دید و ارزیابی کرد که آیا این موقعیت جدید مقدار بهتری غذا فراهم میکند؟ زنبورهای کارگر همیشه موقعیت بهترین منابع غذایی که به دست آوردهاند را تا پیش از خالی شدن آن، به خاطر میسپارند.
زنبورهای ناظر
زنبورهای ناظر از عملکرد زنبورهای کارگر پاسداری میکنند. آنها بر فراز کندو پرواز کرده، پیشرفت کار زنبورهای کارگر را مورد بررسی قرار داده و ارزیابی میکنند که کدام کارگرها در گردآوری غذا موفقتر عمل کردهاند. زنبورهای ناظر همیشه بهترین کارگران را هدف میگیرند و از یک رویکرد احتمالی، با عنوان «محل ملاقات»، استفاده میکنند که بر اساس آن دیگر زنبورها نیز با این امید که غذای بیشتری گردآوری کنند باید به این موقعیت موفقیت بیایند.
فلوچارت الگوریتم
سخن پایانی
الگوریتم کلونی زنبور عسل به عنوان یکی از روشهای تازه بهینهسازی تکاملی؛ دارای اهمیت، انواع و کاربرد بسیاری است. این الگوریتم به علت آنکه کیفیت پاسخدهی و سرعت بالایی در همگرایی دارد، برای بهینهسازی چند هدفی مناسب است.