شمار زیادی از مدلهای مهندسی و الگوریتمهایی که برای حل مسائل پیچیده به کار میرود بر اساس کنترل و مرکزگرایی بنا شده اند.برخی از سیستمهای طبیعی (کلونی های حشرات اجتماعی) به ما یاد میدهند که یک سری ارگانیسمهای ساده ی خارجی قابلیت تولید سیستمهایی را دارند که به کمک بر هم کنشهای پویا قابلیت انجام اعمال بسیار پیچیده را دارند.
گروه زنبورها به خاطر استقلال داخلی کلونی و عملکردهای توزیع شده و سیستم درون سازمانی یکی از بهترین کلونی ها برای توضیح این مسئله شناحته شده است.
در سالهای اخیر محققان برای تولید سیستمهای جدید مصنوعی (در حیطه ی هوش مصنوعی) شروع به تحقیق درباره ی طرز رفتار حشرات اجتماعی کرده اند.
(BCO ( Bee Colony Optimization که مسیر جدیدی را در هوش جمعی بررسی میکند در این قسمت بررسی شده است.هدف اصلی این قسمت بررسی این امکان است که به کمک سیستم مصنوعی زنبورها بتوان قدمی را در پیدا کردن راه حلهایی جامع برای حل مسائلی که با عدم قطعیت مواجعه هستند برداشت.
The bee colony optimization: the new computational paradigm
bees in nature
سیستم سازمانی زنبورها بر اساس یک سری قوائد ساده ی خارجی حشرات بنا شده است.با اینکه نژادهای بسیاری از حشرات مختلف بر روی کره ی زمین موجود هستند و همین باعث تفاوتهایی در الگوی رفتاری آنها میشود , ولی با اینحال این سری حشرات اجتماعی را میتوان دارای قابلیت حل مسائل پیچیده دانست.بهترین مثال برای این حالت روند تولید نکتار (شهد) محسوب میشود که در نوع خود یک فرایند ساماندهی شده ی پیشرفته محسوب میشود.هر زنبور ترجیح میدهد که راه قبلی زنبور هم کندوی خود را دنبال کند تا اینکه خود به دنبال گل جدید بگردد.
هر کندوی زنبور عسل دارای مکانی معروف به سالن رقص است که در آنجا زنبورها با انجام حرکتی خاص , هم کندوییهای خود را راضی میکنند تا راه آنها را برای رسیدن به گلها برگزینند.اگر یک زنبور تصمیم بگیرد که به دنبال نکتار برود , با انتخاب زنبور هم کندوی رقصنده خود , راه قبلی را دنبال میکند تا به گل برسد. هر زنبور پس از رسیدن به گلها و جمع آوری شهد قادر به انجام کارهای زیر است :
الف : منبع غذا را رها کند و دوباره به دنبال زنبور رقصانی بگردد تا بتواند منبعی جدید پیدا کند.
ب : خود به دنبال منابع غذایی جدید بگردد.
ج : در کندو اقدام به رقصیدن کرده و زنبورهای جدیدی را به دنبال خود بکشاند.
بر اساس احتمالات اندازه گیری شده , زنبور اقدام به انجام یکی از حالات بالا میکند .در مکان رقص , زنبورها اقدام به پیشنهاد مکانهای مربوط به جمع آوری نکتار به دیگران میکنند.مکانیزم انتخاب یک زنبور توسط زنبوری دیگر هنوز شناخته شده نیست ولی تا به امروز روشن شده است که این امر بیشتر مربوط به کیفیت نکتار پیدا شده توسط زنبور رقصنده است.
لوسیچ و تدوروویچ اولین کسانی بودند که از رویه های پایه و ساده ی زنبوری برای حل کردن مسائل ترکیبی بهینه سازی استفاده کردند.آنها سیستم زنبوری (bs) رامعرفی کردند که از آن برای حل مساله ی معروف travelling salesman استفاده کردند.
شرح الگوریتم زنبور عسل
الگوریتم زنبور (به انگلیسی: Bee Algorithm) شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ میلادی توسعه یافت؛ این الگوریتم شبیهسازی رفتار جستجوی غذای گروههای زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام میدهد که با جستجوی کترهای (تصادفی) ترکیب شده و میتواند برای بهینه سازی ترکیبی یا بهینهسازی تابعی به کار رود.
در دنیای واقعی زنبور ها به سه دسته کارگر ، نگهبان ، پیشرو تقسیم میشوند. وظیفه دسته اول که زنبور های کارگر هستند جستجو در فضای سرچ میباشد. وظیفه زنبور های نگهبان شناسایی مناطق با کیفیت و زنبور های پیشرو پیدا کردن مناطق جدید جستجو میباشد.
جستجوی غذا در طبیعت
یک کلونی زنبور عسل میتواند در مسافت زیادی و نیز در جهتهای گوناگون پخش شود تا از منابع غذایی بهرهبرداری کند. قطعات گلدار با مقادیر زیادی نکتار و گرده که با تلاشی کم قابل جمع آوری است، به وسیلهی تعداد زیادی زنبور بازدید میشود؛ به طوری که قطعاتی از زمین که گرده یا نکتار کمتری دارد، تعداد کمتری زنبور را جلب میکند. پروسهٔ جستجوی غذای یک کلونی به وسیلهٔ زنبورهای دیدهبان آغاز میشود که برای جستجوی گلزارهای امید بخش (دارای امید بالا برای وجود نکتار یا گرده) فرستاده میشوند. زنبورهای دیدهبان به صورت کترهای از گلزاری به گلزار دیگر حرکت میکنند. در طول فصل برداشت محصول (گلدهی)، کلونی با آماده نگه داشتن تعدادی از جمعیت کلونی به عنوان زنبور دیدهبان به جستجوی خود ادامه میدهند. هنگامی که جستجوی تمام گلزارها پایان یافت، هر زنبور دیدهبان، بالای گلزاری که اندوختهٔ کیفی مطمئنی از نکتار و گرده دارد، رقص خاصی را اجرا میکند. این رقص که به نام رقص چرخشی شناخته میشود، اطلاعات مربوط به جهت تکه گلزار (نسبت به کندو)، فاصله تا گلزار و کیفیت گلزار را به زنبورهای دیگر انتقال میدهد. این اطلاعات زنبورهای اضافی و پیرو را به سوی گلزار میفرستد. بیشتر زنبورهای پیرو به سوی گلزارهایی میروند که امید بخشتر هستند و امید بیشتری برای یافتن نکتار و گرده در آنها وجود دارد. وقتی همهٔ زنبورها به سمت ناحیهای مشابه بروند، دوباره به صورت تصادفی و به علت محدودهی رقصشان در پیرامون گلزار پراکنده میشوند تا به موجب این کار سرانجام نه یک گلزار، بلکه بهترین گلهای موجود درون آن تعیین موقعیت شوند. الگوریتم زنبور عسل هر نقطه را در فضای پارامتری – متشکل از پاسخهای ممکن- به عنوان منبع غذا تحت بررسی قرار میدهد. زنبورهای دیدهبان – کارگزاران شبیهسازی شده – به صورت تصادفی فضای پاسخها را ساده میکنند و به وسیلهی تابع شایستگی کیفیت موقعیتهای بازدید شده را گزارش میدهند. جوابهای ساده شده رتبه بندی میشوند و دیگر زنبورها نیروهای تازهای هستند که فضای پاسخها را در پیرامون خود برای یافتن بالاترین رتبه محلها جستجو میکنند که گلزار نامیده میشود. الگوریتم به صورت گزینشی دیگر گلزارها را برای یافتن نقطهی بیشینهی تابع شایستگی جستجو میکند
کاربردها
برخی کاربردهای الگوریتم زنبور در مهندسی:
- آموزش شبکه عصبی برای الگو شناسی
- زمان بندی کارها برای ماشینهای تولیدی
- دستهبندی اطلاعات
- بهینهسازی طراحی اجزای مکانیکی
- بهینهسازی چند گانه
- میزان کردن کنترل کنندههای منطق فازی برای رباتهای ورزشکار