خوارزمية ليدن
خوارزمية لايدن هي خوارزمية لاكتشاف المجتمعات، طوّرها تراج وآخرون [ 1 ] في جامعة لايدن . وقد طُوّرت كتعديل لطريقة لوفان . وكما هو الحال في طريقة لوفان، تسعى خوارزمية لايدن إلى تحسين التجزئة في استخراج المجتمعات من الشبكات؛ إلا أنها تعالج المشكلات الرئيسية الموجودة في طريقة لوفان، وتحديدًا ضعف ترابط المجتمعات وحدود دقة التجزئة .
تحسين على طريقة لوفان
بشكل عام، تستخدم خوارزمية لايدن نفس المرحلتين الأساسيتين لخوارزمية لوفان: خطوة نقل العقد المحلية (مع أن طريقة معالجة العقد في لايدن أكثر كفاءة [ 1 ] )، وخطوة تجميع الرسم البياني. ومع ذلك، ولمعالجة مشكلات ضعف ترابط المجتمعات ودمج المجتمعات الأصغر في مجتمعات أكبر (وهو حد دقة التجزئة)، تستخدم خوارزمية لايدن مرحلة تحسين وسيطة، حيث يمكن تقسيم المجتمعات لضمان ترابط جميع المجتمعات بشكل جيد.
على سبيل المثال، انظر إلى الرسم البياني التالي:

يضم هذا الرسم البياني ثلاث مجموعات (يمثل كل لون مجموعة). بالإضافة إلى ذلك، فإن عقدة "الجسر" المركزية (الممثلة بدائرة إضافية) هي عضو في المجموعة الممثلة بالعقد الزرقاء. الآن، لننظر إلى نتيجة خطوة تحريك العقد التي تدمج المجموعات الممثلة بالعقد الحمراء والخضراء في مجموعة واحدة (نظرًا لارتباط المجموعتين ارتباطًا وثيقًا):

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

تضمن خطوة التحسين في خوارزمية ليدن الاحتفاظ بعقدة "الجسر" المركزية في المجموعة الزرقاء لضمان بقائها سليمة ومتصلة، على الرغم من التحسن المحتمل في النمطية من إضافة عقدة "الجسر" المركزية إلى المجموعة الحمراء.
مكونات الرسم البياني
قبل تعريف خوارزمية ليدن ، سيكون من المفيد تعريف بعض مكونات الرسم البياني.
الرؤوس والحواف
يتكون الرسم البياني من رؤوس (عُقد) وحواف . كل حافة متصلة برأسين، وكل رأس قد يكون متصلاً بصفر أو أكثر من الحواف. تُمثل الحواف عادةً بخطوط مستقيمة، بينما تُمثل العُقد بدوائر أو نقاط. في ترميز المجموعات، ليكنلتكن مجموعة الرؤوس، ولتكن مجموعة الحواف:
أينالحافة الموجهة من الرأسإلى الرأسيمكننا أيضًا كتابة هذا كزوج مرتب:
مجتمع
المجتمع عبارة عن مجموعة فريدة من العقد:
ويجب أن يكون اتحاد جميع المجتمعات هو المجموعة الكاملة من الرؤوس:
تقسيم
التقسيم هو مجموعة جميع المجتمعات:
جودة التقسيم
يُعدّ تقسيم المجتمعات جزءًا لا يتجزأ من خوارزمية لايدن. وتعتمد كيفية تحديد هذه التقسيمات على معايير قياس جودتها. إضافةً إلى ذلك، تحتوي العديد من هذه المعايير على خصائصها التي قد تؤثر على نتائج المجتمعات.
نمطية التصميم
تُعدّ المعيارية مقياس جودة شائع الاستخدام لتقييم مدى جودة تقسيم مجموعة من المجتمعات للرسم البياني. تُعرَّف معادلة هذا المقياس لمصفوفة التجاور A على النحو التالي: [ 2 ]
أين:
- يمثل وزن الحافة بين العقدوانظر مصفوفة التجاور ؛
- وهي مجموع أوزان الحواف المتصلة بالعقد.و، على التوالى؛
- هو مجموع جميع أوزان الحواف في الرسم البياني؛
- وهي المجتمعات التي تنتمي إليها العقدوينتمي؛ و
- دالة دلتا كرونكر :
نموذج ريتشاردت بورنهولدت بوتس (RB)
يُعد نموذج رايشاردت بورنهولد بوتس (RB) أحد أكثر المقاييس استخدامًا لخوارزمية لايدن. [ 3 ] يُستخدم هذا النموذج افتراضيًا في معظم مكتبات خوارزمية لايدن الشائعة تحت اسم RBConfigurationVertexPartition . [ 4 ] [ 5 ] يُضيف هذا النموذج مُعامل دقة.وهو مشابه للغاية لمعادلة النمطية. يُعرَّف هذا النموذج بواسطة دالة الجودة التالية لمصفوفة التجاور A، كما يلي: [ 4 ]
أين:
- يمثل معلمة الدقة الخطية
نموذج بوتس الثابت (CPM)
مقياس آخر مشابه لـ RB هو نموذج بوتس الثابت (CPM). يعتمد هذا المقياس أيضًا على معلمة الدقة.[ 6 ] يتم تعريف دالة الجودة على النحو التالي:
فهم معايير دقة نموذج بوتس / حد الدقة

تتضمن نماذج بوتس، مثل RB وCPM، عادةً مُعامل دقة في حساباتها. [ 3 ] [ 6 ] وقد طُرحت نماذج بوتس كحلٍّ لمشكلة حدّ الدقة الموجودة في اكتشاف المجتمعات القائم على تعظيم التجزئة. تكمن مشكلة حدّ الدقة في أنه بالنسبة لبعض الرسوم البيانية، قد يؤدي تعظيم التجزئة إلى دمج البنى الفرعية للرسم البياني لتصبح مجتمعًا واحدًا، وبالتالي فقدان البنى الأصغر. [ 7 ] تسمح مُعاملات الدقة هذه بتعديل طرق التجزئة المجاورة لتناسب متطلبات المستخدم الذي يُطبّق خوارزمية لايدن لحساب البنى الفرعية الصغيرة عند مستوى دقة مُحدد.
يوضح الشكل على اليمين سبب أهمية الدقة كمعيار عند استخدام مقاييس الجودة القائمة على التجزئة. في الرسم البياني الأول، لا تُظهر التجزئة سوى البنى واسعة النطاق للرسم البياني؛ بينما في المثال الثاني، يمكن لمقياس جودة أكثر دقة أن يكشف جميع البنى الفرعية في الرسم البياني.
الخوارزمية

تبدأ خوارزمية لايدن برسم بياني لعقد غير منظمة (أ) وتقوم بترتيبها عن طريق تقسيمها لزيادة التجزئة إلى أقصى حد (الفرق في الجودة بين التقسيم الناتج وتقسيم عشوائي افتراضي للمجموعات). تشبه الطريقة التي تستخدمها خوارزمية لوفان، باستثناء أنها بعد نقل كل عقدة، تأخذ في الاعتبار أيضًا جيران تلك العقدة الذين ليسوا موجودين بالفعل في المجموعة التي وُضعت فيها. ينتج عن هذه العملية التقسيم الأول (ب) ، والذي يُشار إليه أيضًا باسمثم تُحسّن الخوارزمية هذا التقسيم عن طريق وضع كل عقدة في مجموعتها الخاصة، ثم نقلها من مجموعة إلى أخرى لزيادة التجزئة إلى أقصى حد. وتُكرر هذه العملية حتى تتم زيارة كل عقدة ونقلها، ويتم تحسين كل مجموعة - وهذا يُنشئ التقسيم (ج) ، وهو التقسيم الأولي لـثم يتم إنشاء شبكة مجمعة (د) عن طريق تحويل كل مجتمع إلى عقدة.يُستخدم كأساس للشبكة الإجمالية بينمايُستخدم لإنشاء القسم الأولي. لأننا نستخدم القسم الأصليفي هذه الخطوة، يجب علينا الاحتفاظ بها حتى يمكن استخدامها في التكرارات اللاحقة. تشكل هذه الخطوات مجتمعة التكرار الأول للخوارزمية.
في التكرارات اللاحقة، يتم وضع عقد الشبكة المجمعة (التي يمثل كل منها مجتمعًا) مرة أخرى في مجتمعاتها الفردية، ثم يتم فرزها وفقًا لنمطيتها لتشكيل شبكة جديدة.، لتشكيل (هـ) في الرسم البياني أعلاه. في الحالة الموضحة في الرسم البياني، كانت العقد مرتبة بالفعل على النحو الأمثل، لذلك لم يحدث أي تغيير، مما أدى إلى التقسيم (و) . بعد ذلك، سيتم تجميع عقد التقسيم (و) مرة أخرى باستخدام نفس الطريقة السابقة، مع التقسيم الأصلي.لا يزال هذا الجزء من الخوارزمية قيد الاحتفاظ. ويتكرر هذا الجزء حتى تصبح كل عقدة مجمعة في شبكتها الفردية الخاصة؛ وهذا يعني أنه لا يمكن إجراء أي تحسينات أخرى.
تتألف خوارزمية لايدن من ثلاث خطوات رئيسية: النقل المحلي للعقد، وتحسين التقسيم، وتجميع الشبكة بناءً على التقسيم المُحسَّن. تُستدعى جميع الدوال في الخطوات التالية باستخدام دالتنا الرئيسية لايدن، الموضحة أدناه: استعار مؤلفو لايدن طريقة لوفان السريعة من بحث "طريقة تسريع بسيطة لخوارزمية لوفان". [ 8 ]
دالة Leiden_community_detection(Graph G, Partition P) يفعل P = fast_louvain_move_nodes(G، P) /* استدعاء الدالة لنقل العقد إلى المجموعات. (مزيد من التفاصيل في الدالة أدناه). */ تم = (|P| == |V(G)|) /* إذا كان عدد الأقسام في P يساوي عدد العقد في G، فقم بتعيين علامة done إلى True لإنهاء حلقة do-while، لأن هذا يعني أن كل عقدة قد تم تجميعها في مجتمعها الخاص. */ إذا لم يتم ذلك P_refined = get_p_refined(G, P) /* هذا جزء أساسي مما يميز لايدن عن لوفان، حيث يضمن هذا التحسين للتقسيم أن العقد المتصلة جيدًا داخل مجتمعها فقط هي التي تُعتبر مُنقلة خارج المجتمع. (مزيد من التفاصيل في الدالة refine_partition_subset أدناه). */ G = aggregate_graph(G, P_refined) /* يجمع المجتمعات في عقدة واحدة للتكرار التالي (التفاصيل في الدالة أدناه). */ P = {{v | v ⊆ C, v ∈ V (G)} | C ∈ P} /* يقوم هذا السطر أساسًا بأخذ العقد من المجموعات في P وتقسيمها بحيث تُعامل كل عقدة كمجموعة فردية مستقلة (مجموعة تتكون من عقدة واحدة). */ نهاية الشرط لم يتم الانتهاء return flattened(P) /* إرجاع التقسيم النهائي حيث يتم سرد جميع عقد G في مجتمع واحد لكل منها. */ نهاية الدالة
الخطوة 1: النقل المحلي للعقد
أولاً، ننقل العقد منيتم تقسيم المجتمعات المجاورة إلى مجموعات فرعية لزيادة التجزئة إلى أقصى حد (أي الفرق في الجودة بين التقسيم الناتج وتقسيم عشوائي افتراضي للمجتمعات). في الصورة أعلاه، يُمثل الرسم البياني على اليسار مجموعتنا الأولية من العقد غير المصنفة، حيث يشير لون كل عقدة إلى أنها لا تنتمي إلى أي مجتمع بعد. أما الرسم البياني على اليمين فيُمثل نتيجة هذه الخطوة، أي الرسم البياني المصنف.لاحظ كيف تم نقل جميع العقد إلى واحدة من ثلاث مجموعات، كما هو ممثل بألوان العقد (الأحمر والأزرق والأخضر).
دالة fast_louvain_move_nodes(الرسم البياني G، القسم P) Q = queue(V(G)) /* ضع جميع عقد G في قائمة انتظار لضمان زيارتها جميعًا. */ طالما أن Q غير فارغة v = Q.pop_front() /* تحديد العقدة الأولى من قائمة الانتظار لزيارتها. */ C_prime = arg maxC∈P∪∅ ∆HP(v → C) /* عيّن C_prime لتكون المجموعة في P أو المجموعة الفارغة (بدون مجموعة) التي توفر أقصى زيادة في دالة الجودة H عند نقل العقدة v إلى تلك المجموعة. */ إذا كان ∆HP(v → C_prime) > 0 /* انظر فقط إلى العقد المتحركة التي ستؤدي إلى تغيير إيجابي في دالة الجودة. */ v → C_prime /* انقل العقدة v إلى مجموعة C_prime */ N = {u | (u, v) ∈ E(G), u !∈ C_prime} /* أنشئ مجموعة N من العقد التي تُعتبر جيرانًا مباشرين للعقدة v ولكنها ليست ضمن المجموعة C_prime. */ Q.add(N - Q) /* أضف جميع العقد من N إلى قائمة الانتظار، ما لم تكن موجودة بالفعل في Q. */ نهاية الشرط إرجاع P /* إرجاع القسم المُحدَّث. */ نهاية الدالة 
الخطوة الثانية: تحسين التقسيم
بعد ذلك، يتم تخصيص كل عقدة في الشبكة لمجموعة خاصة بها، ثم يتم نقلها من مجموعة إلى أخرى لزيادة التجزئة إلى أقصى حد. وتتكرر هذه العملية بشكل متكرر حتى تتم زيارة كل عقدة ونقلها، وهي تشبه إلى حد كبير عملية إنشاءباستثناء أن كل مجموعة يتم تحسينها بعد نقل عقدة. والنتيجة هي تقسيمنا الأولي لـكما هو موضح على اليمين. لاحظ أننا نتابع أيضًا المجتمعات منوالتي يتم تمثيلها بالخلفيات الملونة خلف العقد.
دالة get_p_refined(الرسم البياني G، القسم P) P_refined = get_singleton_partition(G) /* قم بتعيين كل عقدة في G إلى مجموعة أحادية (مجموعة بحد ذاتها). */ لكل C ∈ P P_refined = refine_partition_subset(G, P_refined, C) /* تحسين التقسيم لكل مجموعة من المجموعات في P_refined. */ نهاية لـ return P_refined /* إرجاع القسم المُحسَّن حديثًا. */ دالة refine_partition_subset(Graph G, Partition P, Subset S) R = {v | v ∈ S, E(v, S − v) ≥ γ * degree(v) * (degree(S) − degree(v))} /* بالنسبة للعقدة v، وهي عضو في المجموعة الجزئية S، تحقق مما إذا كانت E(v, Sv) (حواف v المتصلة بأعضاء المجموعة S الآخرين، باستثناء v نفسها) أعلى من عامل قياس معين. درجة(v) هي درجة العقدة v، ودرجة(S) هي الدرجة الكلية للعقد في المجموعة الجزئية S. يتطلب هذا البيان أساسًا أنه إذا تمت إزالة v من المجموعة الجزئية، فستبقى المجموعة سليمة. */ لكل v ∈ R إذا كانت العقدة v موجودة في مجتمع العقدة الوحيدة، أي أنها العقدة الوحيدة. T = {C | C ∈ P, C ⊆ S, E(C, S − C) ≥ γ * درجة(C) · (درجة(S) − درجة(C)} /* أنشئ مجموعة T من المجتمعات حيث يكون E(C, S - C) (الحواف بين المجتمع C والمجموعة الفرعية S، باستثناء الحواف بين المجتمع C ونفسه) أكبر من العتبة. العتبة هنا هي γ * درجة(C) · (درجة(S) − درجة(C). */ احتمال (C_prime = C) ~ exp(1/θ ∆HP(v → C) إذا كان ∆HP(v → C) ≥ 0 0 فيما عدا ذلك لـ C ∈ T /* إذا أدى نقل العقدة v إلى C_prime إلى تغيير دالة الجودة في الاتجاه الموجب، فعيّن احتمال أن تكون مجموعة v هي exp(1/θ * ∆HP(v → C))، وإلا فعيّنها إلى 0 لجميع المجموعات في T. */ v → C_prime /* انقل العقدة v إلى مجموعة عشوائية من نوع C_prime باحتمالية موجبة. */ نهاية الشرط نهاية لـ إرجاع P /* إرجاع القسم المُحسَّن */ نهاية الدالة 
الخطوة الثالثة: تجميع الشبكة
ثم نقوم بتحويل كل مجتمع إلىفي عقدة واحدة. لاحظ كيف، كما هو موضح في الصورة أعلاه، مجتمعاتتُستخدم هذه الأدوات لفرز هذه العقد المجمعة بعد إنشائها.
دالة تجميع_الرسم_البياني(الرسم_البياني_G، القسم_P) V = P /* حدد مجموعات P كعقد فردية في الرسم البياني. */ E = {(C, D) | (u, v) ∈ E(G), u ∈ C ∈ P, v ∈ D ∈ P} /* إذا كان u عنصرًا في المجموعة الجزئية C من P، وكان v عنصرًا في المجموعة الجزئية D من P، وكان u و v يشتركان في حافة في E(G)، فإننا نضيف اتصالًا بين C و D في الرسم البياني الجديد. */ return Graph(V, E) /* إرجاع عقد وحواف الرسم البياني الجديد. */ نهاية الدالة دالة get_singleton_partition(Graph G) return {{v} | v ∈ V (G)} /* هذه هي الدالة التي نُسند فيها كل عقدة في G إلى مجموعة أحادية (مجموعة قائمة بذاتها). */ نهاية الدالة نكرر هذه الخطوات حتى تحتوي كل مجموعة على عقدة واحدة فقط، حيث تمثل كل عقدة من هذه العقد مجموعة من العقد من الشبكة الأصلية التي ترتبط ببعضها البعض ارتباطًا وثيقًا.
القيود
تُحسِن خوارزمية لايدن إنشاء تقسيم عالي الجودة يُصنِّف العُقد في مجموعات متميزة. مع ذلك، تُنشئ لايدن تقسيمًا صارمًا، ما يعني أن العُقد لا تنتمي إلا إلى مجموعة واحدة. في العديد من الشبكات، مثل الشبكات الاجتماعية، قد تنتمي العُقد إلى مجموعات متعددة، وفي هذه الحالة قد تُفضَّل طرق أخرى.
تُعدّ خوارزمية لايدن أكثر كفاءة من خوارزمية لوفان، ولكنها قد تؤدي إلى زيادة أوقات المعالجة في حالة الرسوم البيانية الضخمة. وقد ساهمت التطورات الحديثة في تعزيز السرعة باستخدام "تنفيذ متوازي متعدد النوى لخوارزمية لايدن". [ 9 ]
يُسهم خوارزمية لايدن بشكل كبير في التغلب على مشكلة حد الدقة. مع ذلك، لا يزال هناك احتمال لتفويت بعض البنى الفرعية الصغيرة في بعض الحالات. يُعد اختيار معامل غاما أمرًا بالغ الأهمية لضمان عدم تفويت هذه البنى، إذ قد يختلف اختلافًا كبيرًا من رسم بياني لآخر.
مراجع
[ 3 ]
- 1 2 تراغ، فنسنت أ؛ والتمان، لودو؛ فان إيك، نيس جان (26 مارس 2019). "من لوفان إلى ليدن: ضمان مجتمعات جيدة التواصل" . التقارير العلمية . 9 (1): 5233. أرخايف : 1810.08473 . بيب كود : 2019NatSR...9.5233T . دوى : 10.1038/s41598-019-41695-z . بمك 6435756 . بميد 30914743 .
- ↑ كلاوسيت، آرون ونيومان، إم إي جيه ومور ، كريستوفر (2004). "إيجاد بنية المجتمع في الشبكات الكبيرة جدًا". مجلة الفيزياء E. 70 ( 6) 066111. arXiv : cond-mat/0408187 . Bibcode : 2004PhRvE..70f6111C . doi : 10.1103/PhysRevE.70.066111 . PMID 15697438. S2CID 8977721 .
{{cite journal}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط ) - 1 2 3 رايشاردت، يورغ؛ بورنهولت، ستيفان (15-11-2004). "الكشف عن هياكل المجتمعات الضبابية في الشبكات المعقدة باستخدام نموذج بوتس" . رسائل المراجعة الفيزيائية . 93 (21) 218701. arXiv : cond-mat/0402349 . Bibcode : 2004PhRvL..93u8701R . doi : 10.1103/PhysRevLett.93.218701 . ISSN 0031-9007 . PMID 15601068 .
- 1 2 "مرجع - وثائق leidenalg 0.10.3.dev0+gcb0bc63.d20240122" . leidenalg.readthedocs.io . تم الاطلاع عليه بتاريخ 23-11-2024 .
- ↑ "حزمة 'ليدن'"( ملف PDF) . 2021-07-27. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2022-02-08.
- 1 2 تراج، فينسنت أ؛ فان دورين، بول؛ نيستيروف، يوري (29 يوليو 2011). "نطاق ضيق للكشف عن المجتمعات دون قيود على الدقة". مجلة Physical Review E. 84 ( 1) 016114. arXiv : 1104.3083 . Bibcode : 2011PhRvE..84a6114T . doi : 10.1103/PhysRevE.84.016114 . PMID 21867264 .
- ↑ فورتوناتو، سانتو؛ بارتيليمي، مارك (2007-01-02). "حدود الدقة في الكشف عن التجمعات" . وقائع الأكاديمية الوطنية للعلوم . 104 (1): 36-41 . arXiv : physics/0607100 . Bibcode : 2007PNAS..104...36F . doi : 10.1073 / pnas.0605965104 . ISSN 0027-8424 . PMC 1765466. PMID 17190818 .
- ↑ بلونديل، فنسنت د.؛ غيوم، جان لوب؛ لامبيوت، رينو؛ لوفيفر، إتيان (2008). "التطور السريع للمجتمعات في الشبكات الكبيرة". مجلة الميكانيكا الإحصائية: النظرية والتجربة (10) P10008. arXiv : 0803.0476 . Bibcode : 2008JSMTE..10..008B . doi : 10.1088/1742-5468/2008/10/P10008 .
- ↑ ساهو، سوبهاجيت (2024). "خوارزمية لايدن السريعة للكشف عن المجتمعات في بيئة الذاكرة المشتركة". وقائع المؤتمر الدولي الثالث والخمسين للمعالجة المتوازية . الصفحات 11-20 . arXiv : 2312.13936 . doi : 10.1145/3673038.3673146 . ISBN 979-8-4007-1793-2.
- الخوارزميات
- نظرية الشبكات
