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

Swarm Intelligence (SI) یکی از زیرشاخه های هوش محاساباتی و یا Computational Intelligence است که به توسعه سیستم های هوشمند با الهام گیری از موجودات و پدیده های زیستی می پردازد. SI از رفتار جمعی عوامل طبیعی مانند مورچگان، زنبور عسل، موریانه ها و غیره الگوبرداری میکند. هدف یک مسئله بهینه سازی، یافتن بهترین راه حل در بین همه راه حل های ممکن است. در دنیای ریاضیاتی، این عمل زمانی اتفاق می افتد که می خواهیم تابعی را کمینه و حداکثر کنیم و به عبارتی مقدار حداقل و یا حداکثر برای اون بدست بیاریم. این الگوریتم ها در حل مسائل دنیای واقعی بسیار کارآمد بوده اند و برخی از کارهایی که میشه با استفاده از این نوع الگوریتم ها حل کرد، خوشه بندی، نقشه برداری سیاره ای، کنترل ربات های نانو و علومی همچون داده کاوی مورد استفاده قرار میگیرند. الگوریتم کلونی زنبورعسل نیز یکی از این الگوریتم هاست که کاربرد فراوانی رو در مهندسی و هوش مصنوعی پیدا کرده. این کاربردها عبارتند از :
· بهینهسازی طبقه/سیستمهای خوشه بندی
· ساخت
· کنترل
· مهندسی زیست
· سایر مسائل بهینهسازی
· بهینهسازی چند هدفه
برای اینکه با این الگوریتم جالب آشنا بشیم، در ابتدا نیاز هست تا سفری داشته باشیم به دنیای کلونی زنبور عسل ها و عملکردهای شگفت انگیزی که در زندگی جمعیشون دارن.

زنبور عسل ها استراتژی جالبی در جستجو غذا در طبیعت دارن ؛ به طوری که یک کلونی از زنبورهای عسل میتونه در طول فواصل بلند – حتی تا بیش از 14 کیلومتر – و در جهات مختلف به طور همزمان به برداشت شهد و یا گرده از منابع غذایی بپردازه. بخش کوچکی از این کلونی هم به طور مداوم محیط زیست رو برای پیدا کردن تکه های گل جدید مورد جستجو قرار میده. این زنبورها، به طور تصادیفی در مناطق اطراف کندو حرکت میکنن و به ارزیابی منابع غذایی می پردازن. این دسته از زنبورهای عسل که دیده بان نام دارن، موقع برگشت به کندوها، مواد غذایی برداشت شده رو ذخیره میکنن . اون دسته از زنبوهایی غذاهای بسیار سودآوری رو پیدا کردند، به یک منطقه ای در کندو میرن که بهش گفته میشه پیست رقص! و در این پیشت زنبور ها به اجرایی آیینی می پردازند به نام رقص حرکتی! این نوع رقص به نوعی برای انتقال پیام به سایر زنبور ها انجام میشه. در این نوع رقص، زنبور به دیگر همنوعان خود منبع غذایی رو با اعلام مسافت و زاویه نسبت به خورشید معرفی میکنه و با بازگشت پیروزمندانه خودش به کندو، الگویی از رفتاری چشمگیر به نمایش میگذاره. زنبور، در همان حال که میرقصه، تعدادی زنبور نیز به دنبالش راه میافتند. این زنبورها همانهایی هستند که به عنوان جمعکنندههای غذا به سمت منبع غذایی جدید جرکت میکنن.

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

در الگوریتم کلونی زنبورعسل هم که یک مدل ریاضی هستش، کلونی زنبور عسل های ما از سه نوع زنبور تشکیل شده:
· زنبور های کارمند یا Employee Bees
· زنبورهای دیده بان یا Onlooker Bees
· زنبورهای کاوشگر یا Scout Bees
مشابه رفتار زنبورها در واقعیت، در این الگوریتم هم زنبورهای کارمند، روی جمع آوری غذا به کندو در یک منبع غذایی خاص کار خواهند کرد. زنبورهای دیده بان هم برای بررسی اینکه آیا منبع غذایی خاصی ارزش دارد و یا نه، گشت می زنند و زنبورهای کاوشگر نیز به دنبال مکان های جدید منابع غذایی می باشند. در این الگوریتم، منبع غذایی به عنوان موقعیتی در فضای جستجو تعریف می شود که این موقعیت، میتواند یک راه حل احتمالی برای حل مسائل بهینه سازی باشد. به عبارت دیگه، هر منبع غذایی ، یک پاسخ احتمالی برای حل مسئله بهینه سازی و یا بهینه ترین پاسخ ممکن است و جمعیت کلونی زنبورعسل، برای جستجو راه حل های دیگر مورد استفاده قرار میگیره . هر بار زنبور عسل مصنوعی به دیدار یک منبع غذایی می ره و یا در حقیقت به یک راه حل می رسه، سود اون روش رو ارزیابی می کنه که در حقیقت سازگاری راه حل رو بررسی میکنه. این روش بارها و بارها تکرار میشه تا در نهایت به یک راه حل سازگار و مطلوب برسیم . این رفتار مشابه حرکت زنبورهای عسل در دنیای واقعی است. این الگوریتم از تکرار یک چرخه شکل گرفته است هر چرخه جستجو برای راه حل بهینه سازی است که 5 مرحله رو شامل میشه :

در این مقاله سعی داشتیم به طور اجمالی الگوریتم شگفت انگیز زنبورعسل رو شرح بدیم . هرچند توضیح دقیق این الگوریتم نیازمند مطالب جانبی دیگه هم هست که در مقاله هفته بعد به اون خواهیم پرداخت . پس برای شناخت دقیق تر این مسئله، همچنان با ما همراه باشید .
منابع
https://analyticsindiamag.com/artificial-bee-colony-and-its-applications-to-optimization-problems/
https://en.wikipedia.org/wiki/Bees_algorithm

مقاله بیستم و چهارم هوش مصنوعی
دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

