خوارزمية مجتمع النحل الاصطناعي

في مجالي علم الحاسوب وبحوث العمليات، **خوارزمية مجتمع النحل** (بالإنجليزية: Artificial bee colony algorithm، اختصارا: ABC)، هي خوارزمية استمثالية تعتمد على نموذج ذكاء سلوك سرب النحل في البحث عن الطعام. فمن المعلوم أن النحل عندما يجد الطعام خلال رحلة البحث فإنه يعود للخلية بعيّنة منه ليخبر بقية النحل العاملة عن مكان الطعام واتجاهه من خلال قيام النحلة برقصة اهتزازية في اتجاه معين وبعدد مرات معينة للإشارة إلى مكان وجود الطعام. اقترحها كارابوغا عام 2005.

كذلك تُسمى بخوارزمية التعلم لأنها الأكثر سرعة في عملية التعلم والتي تميزت بإيجاد الحل الأمثل للعديد من التطبيقات، مثل التعرف على بصمة الاصبع والوصول إلى أقصر طريق (مسألة البائع المتجول).

## لمحة عامة
يتكون مجتمع النحل من ثلاث مجموعات: العاملات، المتفرجات، والكشافة. ويفترض أن هناك عاملة واحدة لكل مصدر طعام، يعني أن عدد العاملات يساوي عدد مصادر الطعام حول الخلية.

تذهب العاملات إلى مصادر الطعام ثم ترجع وترقص في الخلية، وهنا يأتي دور المتفرجات، حيث تشاهد رقصات العاملات وتختار مصدر الطعام المناسب حسب الرقصات. أما العاملات اللاتي هُجرت (استُثنِيت) أماكن طعامهن فتصبح كشافة وتبدأ البحث عن مصادر جديدة للطعام.

## الخطوات الأساسية
* البحث عن المصادر الغذائية الأولية لجميع النحل العاملات.
* كل نحلة عاملة تذهب إلى مصدر الغذاء الموجود في ذاكرتها وتحدد مصدر مجاور له وتقيّم مقدار الرحيق الموجود ثم ترجع لترقص في الخلية.
* كل نحلة متفرجة تشاهد الرقصات وتختار مصدر الغذاء بالاعتماد على الرقصات ثم تذهب للمكان وتقيّم مقدار الرحيق وجودته.
* يتم تحديد مصدر الغذاء المهجور واستبداله بمصدر جديد يكتشف من خلال الكشافة.
* أما أفضل المصادر البعيدة فيتم تسجيلها.
تعتمد هذه الخوارزمية على عدد النحلات في المجتمع ومكان الغذاء يمثل حل محتمل للمسألة  وكمية الرحيق يتطابق مع جودة الحل، ويمثل عدد النحلات العاملات عدد الحلول.

## القاعدة وطريقة العمل
تعتمد هذه الخوارزمية على حجم الخلية (عدد النحلات) ، حيث يقسم سرب النحل إلى 50% نحلات عاملات و 50% نحلات كشافة وعدد المتفرجات يساوي 1.كما أن عدد النحلات العاملات يساوي عدد الحلول، حيث X_i=\{x_{i,1},x_{i,2},\ldots,x_{i,n}\} متّجه يمثّل الحل رقم i في الخلية، n مصادر الطعام (وبالتالي عدد النحلات العاملات).

كل نحلة عاملة X_{i} تعطي حل V_{i} (في خلية النحل يمثل X_{i} موقع غذاء) ويُعطى V_{i} بالمعادلة: V_{i_{k}} = X_{i_{k}}+\Phi_{i_{k}}\times (X_{i_k}-X_{j_k})  

حيث X_{j} حل يتم اختياره عشوائياً بشرط i\neq j، كذلك k\in\{1,2,\ldots,n\}
 مُحدد للبعد يتم اختياره عشوائياً، وعدد عشوائي \Phi_{i_{k}} ضمن الفترة [-1,1].

بعد تحديد اماكن الغذاء V_{i} يتم مقارنتها معاً، فإذا كان مصدر الغذاء يساوي أو أفضل من القديم فيتم استبداله في الذاكرة، وإلا يبقى المكان القديم في الذاكرة ويتم استبعاد المكان الجديد.

تالياً يتم ايجاد الحل الأمثل وهو الحل الحاصل على أعلى احتمال P_{i}. بعد انتهاء عملية البحث عن مصادر الغذاء (الحلول) تُشارك النحلات العاملات النحلة المتفرجة المعلومات حول مصدر الغذاء (الحل) ثم تقوم النحلة المتفرجة باختيار الحل الامثل الحاصل على أفضل احتمال بين الحلول المقترحة الأخرى حيث يتم حساب الاحتمال بالمعادلة:

P_i=\frac{fit_i}{\sum_j{fit_j}}

حيث أن fit_i: هي قيمة التناسب للحل i ومجموعة باقي الحلول، وتحدد من خلال اقتران يناسب المسألة.

إذن الحل الامثل هو الحل (المصدر) ذو الاحتمال الاعلى، فإذا لم تتحسن قيمة X_{j} لمصدر غذاء وفق قيمة معرفة سابقا تسمى النهاية (limit) بعد عدد من الدورات، فسوف يتم استثناء هذا المصدر (الحل).

## انظر أيضًا
* استمثال عناصر السرب
* ذكاء السرب

## مراجع

## وصلات خارجية
* 

تصنيف:أدلة عليا مستوحاة من الطبيعة