در تحقیقات علم کامپیوتر و تحقیقات عملیاتی ، الگوریتم کلونی مصنوعی زنبور عسل ( ABC ) یک الگوریتم بهینه سازی است که بر اساس رفتار هوشمندانه نگهداری زنبور عسل زنبور عسل، پیشنهاد شده توسط Dervis Karaboğa ( دانشگاه Erciyes ) در سال 2005 است. [1]

 

فهرست

الگوریتم [ ویرایش ]

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

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

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

الگوریتم colony زنبور عسل [ ویرایش ]

الگوریتم کلونی زنبور عسل (ABC) یک تکنیک بهینه سازی است که رفتار پرورش زنبور عسل را شبیه سازی می کند و به طور موفقیت آمیزی برای مسائل عملی مختلف مورد استفاده قرار گرفته است. ABC متعلق به گروه الگوریتم های هوش روان است و توسط Karaboga در سال 2005 پیشنهاد شده است.

مجموعه ای از زنبور عسل، به نام روم، با موفقیت می تواند از طریق همکاری های اجتماعی انجام وظیفه کند. در الگوریتم ABC، سه نوع زنبور عسل وجود دارد: زنبورهای شاغل، زنبورهای تماشاگر و زنبور عسل. زنبورهای مشغول به جستجوی غذا در اطراف منبع غذایی در حافظه خود هستند؛ در عین حال آنها اطلاعات این منابع غذایی را به زنبورهای تماشاگر تقسیم می کنند. زنبورهای تماشاگر تمایل دارند منابع غذایی خوب را از آنهایی که زنبورهای شاغل هستند پیدا کنند. منبع غذایی که کیفیت بالایی دارد (تناسب اندام) شانس زیادی برای زنبورهای تماشاگر را انتخاب خواهد کرد که از کیفیت پایین تر انتخاب شود. زنبورهای ناشناخته از چند زنبور عادی استفاده می شود که منابع غذایی خود را از دست می دهند و منابع جدیدی را جستجو می کنند.

در الگوریتم ABC، نیمه اول روح شامل زنبورهای شاغل است و نیمه دوم زنبورهای تماشاگر را تشکیل می دهد.

تعداد زنبورهای مشغول به کار و زنبورهای تماشاگر برابر با تعداد راه حل های درهم و برهمی است. ABC یک جمعیت اولیه به صورت تصادفی توزیع شده از راه حل های SN (منابع غذایی) را تولید می کند، در حالی که SN نشان دهنده اندازه گره است.

اجازه دهید {\ displaystyle X_ {i} = \ {x_ {i، 1}، x_ {i، 2}، \ ldots، x_ {i، n} \}} نمایندگی من ^ {th} راه حل در باران، که در آن n اندازه ابعاد است.

هر خانم زنبق شده X_ {I} یک راه حل نامزدی جدید تولید می کند V_ {I} در محدوده موقعیت فعلی آن به صورت معادله زیر است:

{\ displaystyle v_ {i، k} = x_ {i، k} + \ Phi _ {i، k} \ times (x_ {i، k} -x_ {j، k})}

جایی که X_ {j} یک راه حل انتخاب شده به صورت تصادفی انتخاب شده است (i \ neq jک یک عدد تصادفی انتخاب شده از مجموعه است \ {1،2، \ ldots، n \}، و {\ displaystyle \ Phi _ {i، k}} یک عدد تصادفی در داخل است [-1،1]. هنگامی که راه حل نامزدی جدید استV_ {I}تولید شده است، انتخاب حریصانه استفاده می شود. اگر ارزش تناسب اندامV_ {I} بهتر از والدینش است X_ {I}، سپس بروز رسانی X_ {I} با V_ {I}؛ در غیر این صورت نگه داریدX_ {I}بدون تغییر پس از اینکه تمام زنبورهای مشغول انجام فرآیند جستجو شدند؛ آنها اطلاعاتی از منابع غذایی خود را با زنبورهای تماشاگر به اشتراک می گذارند. زنبور عسل تماشا اطلاعات شهد را از همه زنبورهای شاغل استخدام کرده و منبع غذایی را با احتمالی مربوط به میزان شهد خود انتخاب می کند. این احتمال احتمالی واقعا مکانیسم انتخاب رولت است که به عنوان معادله زیر توضیح داده شده است:

{\ displaystyle P_ {i} = {\ frac {\ mathrm {fit} _ {i}} {\ sum_ {j} {\ mathrm {fit} _ {j}}}}}

جایی که {\ displaystyle \ mathrm {fit} _ {i}} ارزش تناسب اندام است \من ^ {th}راه حل در روم همانطور که مشاهده شد، راه حل بهتر استمن، احتمال آن بالاتر است من ^ {th}منبع غذایی انتخاب شده است. اگر یک موقعیت را نمی توان بیش از یک مقدار از پیش تعیین شده (به نام محدود) cycles بهبود داد، پس از آن منبع مواد غذایی رها شده است. فرض کنید که منبع رها شده استX_ {I}، و سپس زنبور عسل کشف یک منبع غذایی جدید را به جای جایگزین من ^ {th} به عنوان معادله زیر:

{\ displaystyle x_ {i، k} = lb_ {i} + \ Phi _ {i، k} \ times (ub_ {i} -lb_ {i})}

جایی که {\ displaystyle \ Phi _ {i، k} = \ mathrm {rand} (0،1)} یک عدد تصادفی در داخل است[0،1]بر اساس یک نرمال [ منبع غیر قابل اعتماد ] توزیع، و{\ displaystyle lb_ {i}، ub_ {i}} مرزهای پایین و مرز بالا هستند من ^ {th} بعد، به ترتیب.

همچنین نگاه کنید به [ ویرایش ]