
خوارزمية البلازما المناعية (IPA)
تُعد خوارزمية البلازما المناعية، والمعروفة اختصارًا باسم IPA، خوارزمية تحسين ميتاهيورستك مستوحاة من فكرة علاج البلازما المناعية. في الورقة البحثية الأصلية، يُشار إلى الخوارزمية أيضًا باسم IP Algorithm. الفكرة الأساسية هي نقل المعلومات المفيدة من الحلول القوية إلى الحلول الضعيفة، بطريقة تشبه استخدام البلازما الغنية بالأجسام المضادة من الأفراد المتعافين لدعم المرضى ذوي الحالات الحرجة.
في هذه المقالة سنشرح خوارزمية IPA من منظور خوارزمي وتطبيقي. سنوضح مصدر الإلهام البيولوجي، طريقة تمثيل المشكلة، أهم المعاملات، المعادلات الرياضية، خطوات العمل، التوازن بين الاستكشاف والاستغلال، وأهم النقاط التي يجب الانتباه إليها عند تنفيذ الخوارزمية عمليًا.
مقدمة
تظهر مسائل التحسين في العديد من المجالات، مثل هندسة الحاسوب، شبكات الاتصال، الذكاء الاصطناعي، اللوجستيات، الجدولة، الأنظمة المعتمدة على المحاكاة، والتصميم الهندسي. في كثير من الحالات الواقعية، يكون عدد الحلول الممكنة كبيرًا جدًا، وقد تكون مساحة البحث غير خطية، أو مليئة بالقيود، أو مرتبطة بمحاكاة مكلفة حسابيًا.
يمكن للطرق الرياضية الدقيقة حل بعض مسائل التحسين عندما تكون بنية المشكلة بسيطة وواضحة. لكن في كثير من التطبيقات العملية، تصبح هذه الطرق غير كافية أو بطيئة جدًا، خصوصًا عندما تعتمد دالة الهدف على محاكاة أو قياسات أو سلوك نظام معقد.
لهذا السبب، يستخدم الباحثون غالبًا خوارزميات التحسين الميتاهيورستك. هذه الخوارزميات لا تضمن الوصول إلى الحل الأمثل المطلق في كل مرة، لكنها تستطيع غالبًا إيجاد حلول عالية الجودة خلال وقت مقبول.
تنتمي خوارزمية IPA إلى هذا النوع من الخوارزميات. ومثل Genetic Algorithm و Particle Swarm Optimization و Artificial Bee Colony وغيرها، تعمل IPA على مجتمع من الحلول المرشحة وتحاول تحسينه بشكل تدريجي عبر عدة مراحل.
الإلهام البيولوجي وراء IPA
مصدر الإلهام في IPA هو علاج البلازما النقاهية أو ما يُعرف بعلاج البلازما المناعية. تقوم الفكرة الطبية على أن البلازما المأخوذة من شخص تعافى من عدوى معينة قد تحتوي على أجسام مضادة يمكن أن تساعد مريضًا آخر يعاني من العدوى نفسها.
تحوّل خوارزمية IPA هذه الفكرة إلى نموذج تحسين. الفرد القوي داخل المجتمع يمثل حلًا جيدًا، والفرد الضعيف يمثل حلًا سيئًا. ثم تحاول الخوارزمية تحسين الأفراد الضعفاء باستخدام معلومات مأخوذة من الأفراد الأقوياء.
| المفهوم البيولوجي | المعنى في التحسين |
|---|---|
| الفرد | حل مرشح |
| الاستجابة المناعية | قيمة اللياقة أو دالة الهدف |
| الفرد المتعافي | حل قوي |
| المريض الحرج | حل ضعيف |
| نقل البلازما | نقل معلومات من حل قوي إلى حل ضعيف |
| انتشار العدوى | توليد تنوع داخل المجتمع |
| الذاكرة المناعية | الحفاظ على أنماط حل مفيدة أو تعديلها |
الخوارزمية لا تحاكي العملية الطبية بشكل مباشر. هي فقط تستعير المنطق العام للفكرة البيولوجية من أجل بناء آلية بحث وتحسين.
ما هي خوارزمية البلازما المناعية؟
خوارزمية البلازما المناعية هي خوارزمية تحسين قائمة على المجتمع. هذا يعني أنها لا تعمل على حل واحد فقط، بل تحتفظ بمجموعة من الحلول المرشحة. كل فرد داخل المجتمع يمثل حلًا ممكنًا للمشكلة المراد حلها.
تقوم الخوارزمية بتقييم كل فرد باستخدام دالة لياقة أو دالة هدف. في مسائل التصغير، تكون القيمة الأصغر أفضل. أما في مسائل التعظيم، فيمكن غالبًا تحويل المشكلة إلى صيغة تصغير من خلال تعديل دالة الهدف.
تحسن IPA المجتمع من خلال ثلاث عمليات رئيسية:
انتشار العدوى: يولّد حلولًا جديدة ويدعم الاستكشاف.
نقل البلازما: يحسن الحلول الضعيفة باستخدام الحلول القوية ويدعم الاستغلال.
تحديث المتبرعين: يعدل الحلول القوية أو يعيد تهيئتها للحفاظ على نشاط البحث.
تمثيل المشكلة
لنفترض أن لدينا مسألة تحسين تحتوي على \(D\) متغيرات قرار. كل فرد \(x_k\) داخل المجتمع يمكن تمثيله على شكل متجه:
\[ x_k = \left[x_{k,1}, x_{k,2}, x_{k,3}, \ldots, x_{k,D}\right] \]
هنا، \(x_k\) يمثل الفرد رقم \(k\)، بينما \(x_{k,j}\) يمثل المتغير رقم \(j\) داخل هذا الفرد.
يرمز إلى حجم المجتمع بالرمز \(PS\). لذلك يمكن تمثيل المجتمع الكامل بالشكل التالي:
\[ X = \left\{x_1, x_2, x_3, \ldots, x_{PS}\right\} \]
يتم تقييم كل فرد باستخدام دالة الهدف:
\[ f(x_k) \]
في مسائل التصغير، يكون أفضل حل هو الفرد الذي يملك أصغر قيمة لدالة الهدف.
المعاملات الأساسية في IPA
قبل تشغيل IPA، يجب تحديد مجموعة من المعاملات الأساسية:
\(PS\): حجم المجتمع.
\(D\): عدد متغيرات القرار.
\(NoD\): عدد المتبرعين المختارين من أفضل الأفراد.
\(NoR\): عدد المستقبلين المختارين من أسوأ الأفراد.
\(t_{max}\): الحد الأقصى لعدد تقييمات دالة الهدف.
\(t_{cr}\): عدد التقييمات الحالي.
\(f(x)\): دالة الهدف المستخدمة لقياس جودة الحل.
تؤثر هذه المعاملات على سلوك الخوارزمية. زيادة حجم المجتمع قد تزيد التنوع، لكنها ترفع التكلفة الحسابية. كما أن زيادة عدد المتبرعين أو المستقبلين قد تقوي مرحلة نقل البلازما، لكنها قد تزيد ضغط الاستغلال على حساب الاستكشاف.
الخطوة الأولى: توليد المجتمع الابتدائي
تبدأ IPA بتوليد مجتمع ابتدائي من الحلول المرشحة. يتم توليد كل متغير عشوائيًا ضمن حدوده الدنيا والعليا.
\[ x_{k,j} = x^{low}_{j} + r(0,1)\left(x^{high}_{j} - x^{low}_{j}\right) \]
حيث إن \(x_{k,j}\) هو المتغير رقم \(j\) في الفرد رقم \(k\). أما \(x^{low}_{j}\) و \(x^{high}_{j}\) فهما الحد الأدنى والحد الأعلى للمتغير نفسه. و \(r(0,1)\) هو عدد عشوائي بين 0 و 1. كذلك \(k = 1,2,\ldots,PS\) و \(j = 1,2,\ldots,D\).
هذه المرحلة تمنح الخوارزمية نقطة انطلاق موزعة داخل مساحة البحث. وجود مجتمع ابتدائي متنوع يساعد IPA على عدم التعلق مبكرًا بمنطقة واحدة من مساحة الحلول.
الخطوة الثانية: تقييم اللياقة
بعد توليد المجتمع، يتم تقييم كل فرد باستخدام دالة الهدف:
\[ fitness_k = f(x_k) \]
في مسألة التصغير، يعتبر الفرد صاحب أصغر قيمة هو الأفضل:
\[ x_{best} = \arg\min_{x_k \in X} f(x_k) \]
يتم تحديث \(x_{best}\) كلما ظهر حل أفضل أثناء عملية البحث.
الخطوة الثالثة: انتشار العدوى
مرحلة انتشار العدوى تمثل فكرة انتقال العدوى بين الأفراد. في سياق التحسين، هذا يعني توليد حل جديد باستخدام الفرق بين فردين داخل المجتمع.
بالنسبة للفرد \(x_k\)، يتم اختيار فرد آخر عشوائيًا \(x_m\) من المجتمع، بحيث \(m \neq k\). بعد ذلك يتم توليد الفرد المصاب بالشكل التالي:
\[ x^{inf}_{k,j} = x_{k,j} + r(-1,+1)\left(x_{k,j} - x_{m,j}\right) \]
حيث إن \(x^{inf}_{k,j}\) هو المتغير رقم \(j\) في الحل المصاب الجديد. و \(x_{k,j}\) هو قيمة المتغير الحالية في الفرد \(x_k\)، بينما \(x_{m,j}\) هو المتغير نفسه في فرد آخر تم اختياره عشوائيًا. أما \(r(-1,+1)\) فهو عدد عشوائي بين -1 و +1.
الحد \(\left(x_{k,j} - x_{m,j}\right)\) يولد اتجاهًا اعتمادًا على الفرق بين حلين. أما العامل العشوائي فيتحكم باتجاه الحركة وقوتها.
بعد توليد \(x^{inf}_k\)، تقوم الخوارزمية بتقييمه. إذا كان الحل المصاب أفضل من الحل الحالي، يتم استبداله به:
\[ x_k = \begin{cases} x^{inf}_k, & \text{if } f(x^{inf}_k) < f(x_k) \\ x_k, & \text{otherwise} \end{cases} \]
المقارنة هنا تتم على مستوى الحل كاملًا، وليس على مستوى متغير واحد فقط. السبب هو أن دالة الهدف تقيم المتجه \(x_k\) بالكامل.
لماذا مرحلة انتشار العدوى مهمة؟
انتشار العدوى مسؤول بشكل أساسي عن الاستكشاف. فهو يسمح للمجتمع بتجربة مناطق جديدة داخل مساحة البحث. وبما أن كل فرد يمكن أن يتأثر بفرد آخر مختار عشوائيًا، تستطيع الخوارزمية توليد حركات مختلفة خلال عملية البحث.
في الوقت نفسه، لا تقبل IPA كل حل جديد يتم توليده. فهي تقبل الحل المصاب فقط إذا كان أفضل من الحل الحالي. هذا يعطي الخوارزمية توازنًا بين العشوائية والتحكم بجودة الحلول.
الخطوة الرابعة: اختيار المتبرعين والمستقبلين
بعد مرحلة انتشار العدوى، تقوم IPA بترتيب المجتمع حسب قيمة دالة الهدف. في مسألة التصغير، يتم اختيار أفضل \(NoD\) أفراد كـ متبرعين، ويتم اختيار أسوأ \(NoR\) أفراد كـ مستقبلين.
يمثل المتبرعون الأفراد الأقوياء أو المتعافين، بينما يمثل المستقبلون الأفراد الضعفاء أو الحالات الحرجة. الهدف من هذه المرحلة هو تحديد الحلول التي ستقود عملية البحث والحلول التي تحتاج إلى تحسين.
هذه واحدة من أهم أفكار IPA. فالخوارزمية لا تكتفي بالحفاظ على الحلول القوية، بل تستخدمها بشكل مباشر لتحسين الحلول الضعيفة عبر آلية نقل البلازما.
الخطوة الخامسة: نقل البلازما
نقل البلازما هو آلية الاستغلال الأساسية في IPA. يتم اختيار مستقبل \(x^{rcv}_k\) من مجموعة المستقبلين، ويتم اختيار متبرع \(x^{dnr}_m\) من مجموعة المتبرعين. ثم يتم توليد المستقبل بعد العلاج بالشكل التالي:
\[ x^{rcv-p}_{k,j} = x^{rcv}_{k,j} + r(-1,+1)\left(x^{rcv}_{k,j} - x^{dnr}_{m,j}\right) \]
حيث إن \(x^{rcv}_{k,j}\) هو المتغير رقم \(j\) في المستقبل، و \(x^{dnr}_{m,j}\) هو المتغير نفسه في المتبرع، و \(x^{rcv-p}_{k,j}\) هو قيمة المتغير بعد نقل البلازما.
الجرعة الأولى من البلازما لها قاعدة قرار خاصة. إذا أصبح المستقبل بعد العلاج أفضل من المتبرع، يتم تحديث المستقبل ويُسمح للعلاج بالاستمرار:
\[ x^{rcv}_k = \begin{cases} x^{rcv-p}_k, & \text{if } f(x^{rcv-p}_k) < f(x^{dnr}_m) \\ x^{dnr}_m, & \text{otherwise} \end{cases} \]
إذا نجحت الجرعة الأولى في جعل المستقبل أفضل من المتبرع، تفترض IPA أن المستقبل استفاد بقوة من العلاج، ولذلك يمكن متابعة العلاج بجرعات إضافية.
أما في الجرعة الثانية وما بعدها، تصبح القاعدة أبسط. يتم قبول المستقبل المعالج إذا كان أفضل من المستقبل الحالي:
\[ x^{rcv}_k = \begin{cases} x^{rcv-p}_k, & \text{if } f(x^{rcv-p}_k) < f(x^{rcv}_k) \\ x^{rcv}_k, & \text{otherwise} \end{cases} \]
إذا لم يحدث تحسن، يتم إيقاف العلاج لهذا المستقبل.
لماذا نقل البلازما مهم؟
نقل البلازما مسؤول عن الاستغلال. فهو يساعد الحلول الضعيفة على الانتقال نحو مناطق واعدة من مساحة البحث باستخدام معلومات مأخوذة من حلول قوية.
هذه الآلية مفيدة لأن الخوارزمية لا تتخلص مباشرة من الأفراد الضعفاء. بدلًا من ذلك، تحاول تحسينهم باستخدام بنية الحلول الأفضل. هذا يساعد المجتمع على التعافي من المناطق السيئة والتركيز أكثر على المناطق المفيدة.
الخطوة السادسة: تحديث المتبرعين
بعد أن يساهم المتبرعون في نقل البلازما، تقوم IPA بتحديث هؤلاء المتبرعين. تمثل هذه المرحلة فكرة أن مستوى الأجسام المضادة أو قوة الاستجابة المناعية لدى المتبرع قد تتغير مع الوقت.
يمكن تعديل المتبرع محليًا باستخدام:
\[ x^{dnr}_{m,j} = x^{dnr}_{m,j} + r(-1,+1)x^{dnr}_{m,j} \]
هذا التعديل يبحث حول الحل القوي وقد يساعد في تحسين منطقة واعدة.
أو يمكن إعادة تهيئة المتبرع باستخدام المعادلة نفسها المستخدمة في توليد المجتمع الابتدائي:
\[ x^{dnr}_{m,j} = x^{low}_{j} + r(0,1)\left(x^{high}_{j} - x^{low}_{j}\right) \]
إعادة التهيئة يمكن أن تُدخل منطقة جديدة إلى مساحة البحث. لذلك، يساهم تحديث المتبرعين في كل من الاستكشاف والاستغلال.
معالجة الحدود
قد تنتج معادلات IPA قيمًا خارج الحدود الدنيا والعليا المسموحة. على سبيل المثال، قد تولد معادلة انتشار العدوى أو نقل البلازما قيمة أصغر من \(x^{low}_{j}\) أو أكبر من \(x^{high}_{j}\).
لذلك يجب تطبيق آلية لمعالجة الحدود بعد توليد أي حل جديد. أبسط طريقة هي القص أو التثبيت داخل الحدود:
\[ x_{k,j} = \begin{cases} x^{low}_{j}, & \text{if } x_{k,j} < x^{low}_{j} \\ x^{high}_{j}, & \text{if } x_{k,j} > x^{high}_{j} \\ x_{k,j}, & \text{otherwise} \end{cases} \]
يمكن أيضًا استخدام طرق أخرى، مثل إعادة التوليد العشوائي، الانعكاس، أو الإصلاح حسب طبيعة المشكلة.
سير عمل IPA بشكل عام
تحديد المعاملات \(PS\)، \(D\)، \(NoD\)، \(NoR\)، و \(t_{max}\).
توليد المجتمع الابتدائي اعتمادًا على الحدود الدنيا والعليا.
تقييم جميع الأفراد باستخدام دالة الهدف.
تحديد أفضل فرد في المجتمع الابتدائي كـ \(x_{best}\).
تطبيق انتشار العدوى لتوليد حلول جديدة.
قبول الحلول المصابة فقط إذا حسّنت الأفراد الحاليين.
ترتيب المجتمع حسب قيمة اللياقة.
اختيار أفضل \(NoD\) أفراد كمتبرعين.
اختيار أسوأ \(NoR\) أفراد كمستقبلين.
تطبيق نقل البلازما من المتبرعين إلى المستقبلين.
متابعة العلاج طالما أن هناك تحسنًا.
تحديث المتبرعين عبر تعديل محلي أو إعادة تهيئة.
تحديث \(x_{best}\) كلما ظهر حل أفضل.
تكرار العملية حتى يصل \(t_{cr}\) إلى \(t_{max}\).
خطوات الخوارزمية بشكل منظم
الإدخال: دالة الهدف \(f(x)\)، الحدود \(x^{low}\) و \(x^{high}\)، حجم المجتمع \(PS\)، عدد الأبعاد \(D\)، عدد المتبرعين \(NoD\)، عدد المستقبلين \(NoR\)، والحد الأقصى للتقييمات \(t_{max}\).
التهيئة: توليد \(PS\) حلول مرشحة باستخدام:
\[ x_{k,j} = x^{low}_{j} + r(0,1)\left(x^{high}_{j} - x^{low}_{j}\right) \]التقييم: حساب \(f(x_k)\) لكل فرد وتحديد \(x_{best}\).
انتشار العدوى: توليد \(x^{inf}_k\) لكل فرد باستخدام:
\[ x^{inf}_{k,j} = x_{k,j} + r(-1,+1)\left(x_{k,j} - x_{m,j}\right) \]قبول العدوى: استبدال \(x_k\) بـ \(x^{inf}_k\) فقط إذا تحقق الشرط:
\[ f(x^{inf}_k) < f(x_k) \]اختيار المتبرعين والمستقبلين: ترتيب المجتمع، ثم اختيار أفضل \(NoD\) أفراد كمتبرعين وأسوأ \(NoR\) أفراد كمستقبلين.
نقل البلازما: اختيار متبرع لكل مستقبل وتوليد المستقبل المعالج:
\[ x^{rcv-p}_{k,j} = x^{rcv}_{k,j} + r(-1,+1)\left(x^{rcv}_{k,j} - x^{dnr}_{m,j}\right) \]قاعدة الجرعة الأولى: إذا كان \(f(x^{rcv-p}_k) < f(x^{dnr}_m)\)، يتم تحديث المستقبل بـ \(x^{rcv-p}_k\) ويستمر العلاج. وإلا يتم تحديثه بـ \(x^{dnr}_m\) ويتوقف العلاج.
قاعدة الجرعات التالية: في الجرعات اللاحقة يستمر العلاج فقط طالما أن \(f(x^{rcv-p}_k) < f(x^{rcv}_k)\).
تحديث المتبرعين: تعديل أو إعادة تهيئة حلول المتبرعين باستخدام:
\[ x^{dnr}_{m,j} = x^{dnr}_{m,j} + r(-1,+1)x^{dnr}_{m,j} \]أو:
\[ x^{dnr}_{m,j} = x^{low}_{j} + r(0,1)\left(x^{high}_{j} - x^{low}_{j}\right) \]شرط التوقف: تتوقف الخوارزمية عندما يصل عدد التقييمات الحالي إلى \(t_{max}\).
المخرج: إرجاع أفضل حل \(x_{best}\).
مثال يدوي بسيط
لنفترض أننا نريد تصغير الدالة التالية:
\[ f(x) = x^2 \]
أفضل حل ممكن هو:
\[ x = 0 \]
لأن:
\[ f(0) = 0 \]
لنفترض أن المجتمع الابتدائي يحتوي على أربعة أفراد:
| الفرد | القيمة | اللياقة |
|---|---|---|
| \(x_1\) | \(-6\) | \(36\) |
| \(x_2\) | \(4\) | \(16\) |
| \(x_3\) | \(-1\) | \(1\) |
| \(x_4\) | \(8\) | \(64\) |
بما أن المسألة هي مسألة تصغير، فإن \(x_3 = -1\) هو أفضل فرد ويمكن اختياره كمتبرع. أما أسوأ فرد فهو \(x_4 = 8\)، لذلك يمكن اختياره كمستقبل.
الآن نطبق نقل البلازما من المتبرع \(-1\) إلى المستقبل \(8\). لنفترض أن القيمة العشوائية هي \(-0.95\):
\[ x^{rcv-p} = 8 + (-0.95)\left(8 - (-1)\right) \]\[ x^{rcv-p} = 8 + (-0.95)(9) \]\[ x^{rcv-p} = 8 - 8.55 = -0.55 \]
الآن نحسب قيمة اللياقة للمستقبل بعد العلاج:
\[ f(-0.55) = (-0.55)^2 = 0.3025 \]
المستقبل المعالج أصبح أفضل من المتبرع لأن:
\[ 0.3025 < 1 \]
لذلك يعتبر العلاج ناجحًا، ويتم تحديث المستقبل من \(8\) إلى \(-0.55\). هذا المثال يوضح كيف يمكن لحل ضعيف أن ينتقل إلى منطقة أفضل باستخدام معلومات من حل قوي.
الاستكشاف والاستغلال في IPA
أي خوارزمية تحسين قوية يجب أن توازن بين سلوكين أساسيين:
الاستكشاف: البحث في مناطق جديدة من مساحة الحلول.
الاستغلال: تحسين الحلول حول المناطق الواعدة.
تستخدم IPA عدة مراحل لتحقيق هذا التوازن:
| مرحلة IPA | الدور الأساسي |
|---|---|
| المجتمع الابتدائي | استكشاف |
| انتشار العدوى | استكشاف وتوليد تنوع مضبوط |
| اختيار المتبرعين | تحديد الحلول الواعدة |
| اختيار المستقبلين | استهداف الحلول الضعيفة للتحسين |
| نقل البلازما | استغلال |
| تحديث المتبرعين | استكشاف واستغلال معًا |
إذا ركزت الخوارزمية على الاستكشاف فقط، فقد تستهلك التقييمات في مناطق غير مفيدة. وإذا ركزت على الاستغلال فقط، فقد تقع في حل محلي. تحاول IPA الموازنة بين هذين الجانبين عبر انتشار العدوى، نقل البلازما، وتحديث المتبرعين.
التعقيد الحسابي
تعتمد التكلفة الحسابية لـ IPA بشكل أساسي على عدد تقييمات دالة الهدف. إذا كان الحد الأقصى للتقييمات هو \(t_{max}\)، وكانت تكلفة تقييم حل واحد هي \(O(D)\)، فيمكن كتابة زمن التشغيل العام بالشكل:
\[ O(t_{max} \times D) \]
لكن IPA تقوم أيضًا بعمليات داخلية، مثل ترتيب المجتمع، اختيار المتبرعين والمستقبلين، نقل البلازما، وتحديث المتبرعين.
بالنسبة لدورة واحدة، يمكن التعبير عن التعقيد الداخلي بالشكل:
\[ O\left(PS \log(PS) + D(PS + NoR + NoD)\right) \]
الحد \(PS \log(PS)\) يأتي غالبًا من عملية ترتيب المجتمع، بينما يأتي الحد \(D(PS + NoR + NoD)\) من تحديث الأفراد عبر أبعاد المشكلة.
لماذا ميزانية التقييم مهمة؟
قد تنفذ IPA عددًا متغيرًا من تقييمات دالة الهدف في كل دورة، خصوصًا لأن علاج البلازما قد يستمر لأكثر من جرعة. لذلك فإن مقارنة IPA مع خوارزميات أخرى اعتمادًا على عدد التكرارات فقط قد لا تكون عادلة.
المقارنة العادلة يجب أن تعتمد على نفس الحد الأقصى من تقييمات دالة الهدف:
\[ t_{max}^{IPA} = t_{max}^{competitor} \]
بهذه الطريقة تتم المقارنة وفق ميزانية حسابية واحدة، وهذا أدق من المقارنة بعدد التكرارات فقط.
كيف نختار معاملات IPA؟
أفضل القيم تعتمد على طبيعة المشكلة، لكن يمكن استخدام الإرشادات التالية كبداية:
ابدأ بحجم مجتمع متوسط مثل \(PS = 30\) أو \(PS = 50\).
استخدم قيمًا صغيرة في البداية مثل \(NoD = 1\) و \(NoR = 1\).
زد \(NoR\) إذا كان هناك عدد كبير من الحلول الضعيفة التي تحتاج إلى تصحيح قوي.
زد \(NoD\) إذا احتاجت الخوارزمية إلى توجيه من أكثر من حل قوي.
استخدم نفس ميزانية التقييم عند مقارنة IPA مع خوارزميات أخرى.
نفذ عدة تشغيلات مستقلة لأن IPA خوارزمية عشوائية.
في البحث العلمي، لا تكفي تجربة واحدة. يجب عرض المتوسط، الانحراف المعياري، أفضل نتيجة، منحنيات التقارب، والاختبارات الإحصائية عند الحاجة.
مجالات استخدام IPA
يمكن تطبيق IPA على العديد من مسائل التحسين التي يمكن تقييم حلولها باستخدام دالة لياقة. من أمثلة المجالات الممكنة:
توزيع عقد شبكات الاستشعار اللاسلكية.
تعظيم التغطية.
تحسين التوجيه في الشبكات.
تحسين توقيت الإشارات المرورية.
استعادة حركة المرور باستخدام التوأم الرقمي.
تخصيص الموارد.
مسائل الجدولة والتخطيط.
فصل الإشارات وتقليل الضوضاء.
التصميم الهندسي المعتمد على المحاكاة.
تكون IPA مفيدة خصوصًا عندما تكون دالة الهدف متاحة، لكن مساحة البحث كبيرة جدًا ولا يمكن فحصها بالكامل.
مزايا IPA
بنية قائمة على المجتمع: تعمل IPA على عدة حلول في الوقت نفسه، وهذا يدعم التنوع.
آلية تحسين واضحة: يتم تحسين الحلول الضعيفة مباشرة باستخدام الحلول القوية.
توازن بين الاستكشاف والاستغلال: انتشار العدوى يدعم الاستكشاف، ونقل البلازما يدعم الاستغلال.
مرونة في التصميم: يمكن تكييف الخوارزمية مع مسائل تحسين مستمرة مختلفة.
مناسبة للمحاكاة: يمكن استخدامها عندما تأتي دالة الهدف من ناتج محاكاة وليس من معادلة مغلقة فقط.
حدود IPA
مثل بقية الخوارزميات الميتاهيورستك، لدى IPA بعض الحدود:
لا تضمن الوصول إلى الحل الأمثل المطلق.
يعتمد أداؤها على اختيار المعاملات.
قد تحتاج إلى عدد كبير من التقييمات في المسائل المكلفة.
يجب التعامل مع الحدود بحذر.
يجب التحقق من النتائج عبر عدة تشغيلات وتحليل إحصائي.
هذه الحدود لا تجعل IPA ضعيفة، لكنها تعني أن استخدامها يجب أن يكون منظمًا وعادلًا من ناحية التجارب والمقارنة.
أخطاء شائعة عند تنفيذ IPA
كتابة المعادلات كأنها كود: يجب استخدام MathJax أو LaTeX للمعادلات، وليس وضعها داخل code blocks.
إهمال الحدود: معادلات العدوى والبلازما قد تولد قيمًا خارج المجال المسموح.
اختيار خاطئ للمتبرعين والمستقبلين: يجب اختيار المتبرعين من أفضل الأفراد والمستقبلين من أسوأ الأفراد.
مقارنة غير عادلة: يجب مقارنة IPA مع الخوارزميات الأخرى باستخدام نفس عدد تقييمات دالة الهدف.
الاعتماد على تشغيل واحد فقط: لأن IPA عشوائية، لا تكفي تجربة واحدة لإثبات الأداء.
المبالغة في ضبط المعاملات: يجب ألا يؤدي ضبط المعاملات إلى مقارنة منحازة.
الخلاصة
خوارزمية البلازما المناعية هي خوارزمية تحسين مستوحاة من فكرة علاج البلازما المناعية، وتحول هذه الفكرة إلى طريقة بحث قائمة على المجتمع. كل فرد يمثل حلًا مرشحًا، ويتم قياس جودة هذا الحل باستخدام دالة الهدف.
تبدأ الخوارزمية بتوليد مجتمع عشوائي، ثم تقييم الحلول، ثم تطبيق انتشار العدوى لتوليد تنوع، ثم اختيار المتبرعين والمستقبلين، ثم تنفيذ نقل البلازما، ثم تحديث المتبرعين، وتكرار العملية حتى تنتهي ميزانية التقييم.
قوة IPA تأتي من التوازن بين الاستكشاف والاستغلال. انتشار العدوى يساعد الخوارزمية على اكتشاف مناطق جديدة، بينما يساعد نقل البلازما على تحسين الحلول الضعيفة باستخدام معلومات من الحلول القوية. أما تحديث المتبرعين فيضيف مرونة إضافية من خلال تحسين الحلول القوية أو إدخال حلول جديدة.
عند تنفيذها مع معالجة صحيحة للحدود، وميزانية تقييم عادلة، وتشغيلات مستقلة متعددة، وتحليل إحصائي مناسب، يمكن أن تكون IPA خوارزمية قوية لمسائل التحسين في الهندسة، الشبكات، المحاكاة، والذكاء الاصطناعي.
المرجع
Aslan, S., & Demirci, S. (2020). Immune Plasma Algorithm: A Novel Meta-Heuristic for Optimization Problems. IEEE Access (link).
