در علوم کامپیوتر و عملیاتتحقیق، الگوریتم زنبورعسل یک الگوریتم جستجو مبتنی بر جمعیت است که در سال ۲۰۰۵ میلادی توسط دکتر فام و دکتر افشین قنبرزاده توسعه یافت.[۱] این الگوریتم تقلید رفتار جستجوگری مواد غذایی زنبورهای عسل است. در نسخهٔ اولیهٔ این الگوریتم یک نوع جستجوی محلی همراه با جستجوی جهانی انجام میدهد و میتواند برای هر دو بهینهسازی ترکیبی و بهینهسازی مستمر مورد استفاده قرار گیرد. تنها شرط استفاده از الگوریتم زنبورعسل این است که برخی اندازهگیریهای فاصله توپولوژیکی بین راه حلها تعریف شدهاست. اثربخشی و تواناییهای خاص الگوریتم زنبور عسل در تعدادی از مطالعات ثابت شدهاست.[۲][۳]
یک کلونی از زنبورهای عسل میتوانند در طول فواصل بلند (بیش از ۱۴ کیلومتر)[۴] و در جهات مختلف بهطور همزمان به برداشت شهد یا گرده از منابع غذایی متعدد پراکنده شوند. بخش کوچکی از این کلونی بهطور مداوم محیط زیست را برای پیدا کردن تکههای گل جدید جستجو میکنند. این زنبورهای دیدهبان بهطور تصادفی در منطقه اطراف کندو حرکت میکنند و به ارزیابی سودآوری (عملکرد خالص انرژی) منابع غذایی وارد شده میپردازند.[۴] وقتی آنها به کندو باز میگردنند، دیدهبانها مواد غذایی برداشت شده را ذخیره میکنند. آن دسته از زنبورهایی که منبع غذایی بسیار سود آوری پیدا کردند به یک منطقه در کندو به نام «پیست رقص» رفته و آیینی به نام «رقص حرکتی» را اجرا میکنند.[۵] در حین این رقص زنبوردیده بان در مورد محلی که کشف کرده با تماشچیان بیکارصحبت میکند که به بهرهبرداری از گلها بپیوندند. از آنجا که طول رقص متناسب با امتیاز دیدهبان از منبع غذایی است، کاوشگرهای بیشتری برای برداشت تکههای گل با بهترین امتیاز استخدام میشوند. بعد از رقص دیدهبان برای جمعآوری بیشتر غذا به محلی که کشف کردهاست میرود. تا زمانی که این محلها سودآور تلقی شوند، موقع برگشت این منابع غذایی غنی توسط دیدهبانها تبلیغ میشوند. کاوشگرهای استخدام شده نیز ممکن است این رقص را انجام دهند، تا میزان استخدام برای پیدا کردن گلهای پر ارزش افزایش یابد. به لطف این فرایند اتوکاتالیزوری، کلونی زنبور عسل میتواند با سرعت زیاد تمرکز را به جستجو برای گلهای سودآور تغییر دهد.[۴]
الگوریتم زنبور عسل[۲][۶] تقلید استراتژی جستجوی غذای زنبورعسل به دنبال بهترین راه حل برای مشکل بهینهسازی است. هر راه حل کاندید، به عنوان یک منبع غذایی (گل) است و جمعیت (کلنی)n عوامل (زنبور) برای جستجوی فضای راه حل استفاده میشود. هر بار زنبور عسل مصنوعی به دیدار گل میرود (به یک راه حل رسیده)، سود آن را ارزیابی میکند (سازگاری).
الگوریتم زنبور عسل شامل روش اولیه نصب یک چرخه جستجوی اصلی که برای تعداد داده شده T بار تکرار میشود یا تا زمانی که یک راه حل سازگار و قابل قبول پیدا شود. هر چرخه جستجو متشکل از پنج روش:استخدام، جستجوی محلی، کوچک شدن محله، متروکه شدن محل و جستجوی کلی است.
1 for i=1,…,ns
i scout[i]=Initialise_scout()
ii flower_patch[i]=Initialise_flower_patch(scout[i])
2 do until stopping_condition=TRUE
i Recruitment()
ii for i =1,…,nb
1 flower_patch[i]=Local_search(flower_patch[i])
2 flower_patch[i]=Site_abandonment(flower_patch[i])
3 flower_patch[i]=Neighbourhood_shrinking(flower_patch[i])
iii for i = nb,…,ns
1 flower_patch[i]=Global_search(flower_patch[i])}
در روال اولیه نصب تعداد ns زنبورهای عسل دیدهبان بهطور تصادفی در فضای جستجو قرار میگیرند و سازگاری محلی که در آن قرار دارند را ارزیابی میکنند. برای هر راه حل، یک محله (به نام راه گل) مشخص شدهاست. در روش استخدام، دیدهبانهایی که به تعداد nb<=ns راه حلهای سازگارمراجعه کردهاند (بهترین محلها) «رقص حرکتی» را انجام میدهند. آن است که، کاوشگرهایی استخدام میکنند تا به جستجوی محلات دور از محلات راه حلهای امیدوارکننده بپردازند. دیدهبانهای واقع در بهترین محلات ne<=nb راه حل (محلهای برگزیده شده) هر کدام nre کاوشگر استخدام میکنند، در حالی که nb-ne دیدهبان باقیمانده هر کدام nrb<=nre کاوشگر استخدام میکنند. به این ترتیب، تعداد کاوشگرهای استخدام شده به سوددهی منبع غذایی ربط دارد. در روش جستجوی محلی، کاوشگرهای استخدام شده بهطور تصادفی در تکههای گل پراکنده شده و راه حلهای مراجعه شده توسط دیدهبانها را در میان میگذارند (بهرهبرداری محلی). اگر یکی از کاوشگرها راه حل سازگارتری نسبت به راه حل ارائه شده توسط دیدهبان ارائه دهد، کاوشگر دیدهبان میشود. اگر کاوشگر دیگری راه حل سازگارتری ارائه ندهد، اندازه تکه گل کوچک میشود (روش کوچک شدن محله). معمولاً، تکههای گل در ابتدا یک محل بزرگ تعریف شده و اندازه آنها به تدریج توسط روش کوچک شدن محله کوچک میشود. در نتیجه، حوزه اکتشاف محلی به تدریج روی محلهٔ بلافاصله نزدیک به بهترین محل سازگار متمرکز میشود. اگر هیچ بهبودی در سازگاری تکه گل برای یک تعداد چرخه جستجوی از پیش تعیین شده ثبت نشود، ماکزیمم سازگاری محلی یافت شده فرض میشود، این محل متروکه میماند (متروکه شدن محل) و یک دیدهبان جدید بهطور تصادفی حاصل میشود. مانند گروههای زنبور عسل بیولوژیکی،[۴] تعداد کمی از دیدهبانها به جستجوی فضای راه حل برای یافتن مناطق جدیدی با سازگاری بالا ادامه میدهند (جستجوی کلی). روش جستجوی کلی تعداد ns-nb گلهای آخر با راه حلهای به وجود آمده تصادفی دوباره مقدار دهی میکند. در پایان یک چرخه جستجو، جمعیت دیدهبانها دوباره برابر ns میشود:تعداد nr دیدهبان تشکیل شده در روش جستجوی محلی (که برخی از آنها ممکن است توسط روش متروکه شدن محل دوباره مقدار دهی شوند) وns-nb دیدهبان تشکیل شده در روش جستجوی کلی. سایز کل گروه زنبور عسل مصنوعی برابر است با:n=ne*nre+(nb-ne)*nrb+ns(کاوشگران محلهای گلچین شده+کاوشگران بهترین محلهای باقیمانده+دیدهبانها) زنبور عسل
↑Pham DT, Ghanbarzadeh A, Koc E, Otri S, Rahim S and Zaidi M. The Bees Algorithm. Technical Note, Manufacturing Engineering Centre, Cardiff University, UK, 2005.
↑Von Frisch, K. (1967) The Dance Language and Orientation of Bees. Harvard University Press, Cambridge, MA.
↑Pham D.T. , Ghanbarzadeh A. , Koc E. , Otri S. , Rahim S. , Zaidi M. , The Bees Algorithm, A Novel Tool for Complex Optimisation Problems, Proc 2nd Int Virtual Conf on Intelligent Production Machines and Systems (IPROMS 2006), Oxford: Elsevier, pp. 454-459, 2006.
↑Pham D.T. , Castellani M. , Ghanbarzadeh A. (2007), Preliminary design using the Bees Algorithm, Proceedings Eighth LAMDAMAP International Conference on Laser Metrology, CMM and Machine Tool Performance. Cardiff - UK, 420-429.
↑Pham, D.T. , Otri S. , Darwish A.H. (2007), Application of the Bees Algorithm to PCB assembly optimisation, Proceedings 3rd International Virtual Conference on Intelligent Production Machines and Systems (IPROMS 2007), Whittles, Dunbeath, Scotland, 511-516.
↑Pham D.T. , Koç E. , Lee J.Y. , Phrueksanant J. (2007), Using the Bees Algorithm to Schedule Jobs for a Machine, Proceedings 8th international Conference on Laser Metrology, CMM and Machine Tool Performance (LAMDAMAP). Cardiff, UK, Euspen, 430-439.
↑Alfi A. , Khosravi A. , Razavi S.E. (2011), Bee Algoritm–Based Nolinear Optimal Control Applied To A Continuous Stirred-Tank Chemical Reactor, Global Journal of Pure & Applied Science and Technology - GJPAST 1(2), 73-79.
↑Bahamish H.A.A. , Abdullah R. , Salam R.A. (2008), Protein Conformational Search Using Bees Algorithm, Second Asia International Conference on Modeling & Simulation (AICMS 08), Kuala Lumpur, Malaysia, IEEE Press, 911-916.
↑Sayadi F. , Ismail M. , Misran N. , Jumari K. (2009), Multi-Objective Optimization Using the Bees Algorithm in Time-Varying Channel for MIMO MC-CDMA Systems, European Journal of Scientific Research 33(3), 411-428.
↑Mansouri Poor M. , Shisheh Saz M. (2012), Multi-Objective Optimization of Laminates with Straight Free Edges and Curved Free Edges by Using Bees Algorithm, American Journal of Advanced Scientific Research 1(4), 130-136.