قراءة
وضع القصص

تصميم دالة الملاءمة

~١٥ دقيقة قراءة الدرس 3 من 4 في الوحدة 13

دالة الملاءمة ليست تفصيلًا في التنفيذ — إنها صياغة المسألة نفسها. وسوء تصميمها هو السبب الأكثر شيوعًا لفشل الخوارزمية الجينية.

الملاءمة هي الهدف

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

وضع Holland (1975) في كتابه Adaptation in Natural and Artificial Systems الإطار الذي يعمل فيه الانتقاء على مجتمع من البُنى وفق عائد مقيس، وكتاب Goldberg (1989) هو المعالجة المرجعية التي تلته. وفي كليهما تكون الملاءمة هي البيئة: غيّرها فتُغيّر ما يصير إليه المجتمع. وكل ما في هذا الدرس ينبع من هذه الحقيقة الواحدة.

القاعدة الوحيدة التي يطيعها البحث

تعظّم الخوارزمية الجينية الدالة التي كتبتها، لا الهدف الذي كان في ذهنك. وكل صور الفشل في هذا الدرس هي فجوة بين هذين الأمرين. فعندما ينتج تشغيل ما فائزًا بلا معنى، اتّهم دالة الملاءمة قبل أن تتّهم المُشغِّلات.

كافئ النتيجة، لا السلوك

الطريقة الأكثر شيوعًا لكتابة دالة ملاءمة سيئة هي أن تتخيّل كيف كنت أنت ستحل المسألة، ثم تُقيّم المرشحين بمقدار تقليدهم لك. لنفترض أنك تُطوّر جدول دورة العمل لمستشعر يعمل بالبطارية، وتريده أن يستمر أطول فترة ممكنة وأن يظل مفيدًا. من المغري أن تكافئ سلوك «إبقاء الراديو مغلقًا»، لأنك تعلم أن الراديو يستهلك معظم الطاقة. افعل ذلك وسيجد البحث بالضبط ما طلبته: جدول بالراديو مغلق، وبطارية تدوم طويلًا، ولا بيانات مُسلَّمة على الإطلاق.

والحل هو قياس النتيجة التي تهمك فعلًا — عدد القراءات المفيدة المُسلَّمة لكل شحنة بطارية — وترك البحث يكتشف بنفسه أن هذا يستلزم إبقاء الراديو مغلقًا معظم الوقت. دالة الملاءمة التي تُرمّز طريقتك المفترضة لا تستطيع إلا أن تعيد اكتشاف طريقتك. أما تلك التي تُرمّز النتيجة فهي حرة في إيجاد شيء أفضل.

وحين تكون النتيجة غير قابلة للقياس فعلًا واضطررت إلى استخدام مؤشر بديل، فتعامل معه كفرضية لا كهدف: افحص الفرد الفائز يدويًّا أمام الهدف الحقيقي قبل أن تثق به. وتلتقي الوحدة 14 بالخطر نفسه من الاتجاه المقابل، حيث يُسمّى قرصنة المكافأة — فالوكيل يُحسّن ما قِسته، لا ما قصدته.

مثال محلول: توزيع المستشعرات

لنكن محددين: لديك 40 موقعًا مرشحًا لمستشعرات بيئية على أرض مقسّمة إلى 200 خلية شبكية. كل موقع يغطي مجموعة معروفة من الخلايا وله كلفة تركيب معروفة، ولديك ميزانية ثابتة. وباتّباع الدرس 13.2، يكون المرشح سلسلة ثنائية بطول 40 — البتّة i تساوي 1 إذا استُخدم الموقع i.

ودالة الملاءمة الأولى البديهية هي «عدد الخلايا المتمايزة المغطاة». شغّلها وسيتقارب المجتمع نحو سلاسل تكاد تكون كلها آحادًا: أقصى تغطية، وفاتورة تبلغ أضعاف الميزانية. لا شيء في تلك الدالة يذكر المال، فلا سبب لدى البحث أن يهتم به. وهذا المثال الواحد يحمل بقية الدرس — فيه هدفان متنازعان، وقيد صارم، وخطوة تقييم تستهلك وقتًا حقيقيًّا.

المسائل متعددة الأهداف

يجب أن ترتفع التغطية وتنخفض الكلفة. ولا توجد إجابة واحدة أفضل لذلك، بل مجموعة من التسويات المقبولة، والسؤال هو أيّها يُسمح للخوارزمية بإرجاعه.

المجاميع الموزونة

أبسط المقاربات تطوي الأهداف في رقم واحد بأوزان تختارها مسبقًا.

ملاءمة المجموع الموزون
F(\mathbf{x}) = \sum_{i=1}^{m} w_i \, \tilde{f}_i(\mathbf{x}), \qquad w_i \ge 0, \quad \sum_{i=1}^{m} w_i = 1
يُعاد أولًا تحجيم كل هدف إلى مدى مشترك، وهو المكتوب هنا بالرمز ذي التلدة. تجاوز هذه الخطوة وستصبح الأوزان محكومة فعليًّا بوحداتك: الكلفة بالعملة والتغطية بعدد الخلايا رقمان غير قابلين للمقارنة، فيهيمن الهدف الأكبر مقدارًا في صمت.

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

هيمنة باريتو والجبهة

المقاربة البديلة ترفض طيّ الأهداف من أصله. يُقال إن حلًّا يهيمن على آخر إذا كان لا يقل عنه جودةً في كل هدف ويتفوق عليه فعليًّا في هدف واحد على الأقل.

هيمنة باريتو (بتعظيم كل الأهداف)
\mathbf{a} \succ \mathbf{b} \iff \big(\forall i:\; f_i(\mathbf{a}) \ge f_i(\mathbf{b})\big) \;\wedge\; \big(\exists j:\; f_j(\mathbf{a}) > f_j(\mathbf{b})\big)
اقرأها كالتالي: الحل a ليس أسوأ في أي موضع وهو أفضل في موضع ما. والحلول التي لا يهيمن عليها شيء في المجتمع تُشكّل المجموعة غير المهيمن عليها؛ أما المجموعة غير المهيمن عليها في فضاء البحث كله فهي جبهة باريتو.

تُرجع الخوارزمية الجينية متعددة الأهداف تقريبًا لتلك الجبهة بدلًا من نقطة واحدة، ثم يختار الإنسان منها وهو يرى تمامًا ما تكلفه كل خلية تغطية إضافية. وهذا عادةً هو المُخرَج الأنفع، لأن الأوزان لم تكن معروفة مسبقًا في الحقيقة.

لمحة عن NSGA-II

الخوارزمية الجينية النخبوية المرجعية متعددة الأهداف هي NSGA-II، من Deb وPratap وAgarwal وMeyarivan (2002). ثلاث أفكار، ويجدر تمييز كل واحدة منها:

  1. الترتيب السريع غير المهيمن عليه — يُقسّم المجتمع إلى جبهات. الجبهة الأولى هي المجموعة غير المهيمن عليها، والثانية هي ما يصبح غير مهيمن عليه بعد إزالة الأولى، وهكذا. والرتبة الأدنى مفضّلة دائمًا.
  2. مسافة الازدحام — الفاصل عند التعادل داخل الجبهة، إذ لا يتفوق أي عضو في الجبهة على آخر بحكم التعريف. وهي تُقدّر مدى خلاء فضاء الأهداف حول كل حل وتفضّل الحلول في المناطق المتناثرة. وهذا ما يحفظ انتشار الجبهة المُرجعة بدلًا من تكتّلها.
  3. النخبوية بالدمج — يُجمع الآباء والأبناء في مجموعة واحدة، ثم تُرتَّب برتبة الجبهة، وداخل الجبهة بمسافة الازدحام، ثم تُقتطع عودًا إلى حجم المجتمع. فلا يمكن أن يُفقد حل جيد بالخطأ، وهي الحجة نفسها التي سيقت للنخبوية في الدرس 13.2.
المقاربةما تُرجعهمتى تناسبالقيد
هدف واحد مع عقوبة حل واحد هدف حقيقي واحد والبقية قيود يحتاج اختيارًا جيدًا لأوزان العقوبة
المجموع الموزون تسوية واحدة حين تكون المقايضة معروفة مسبقًا فعلًا لا يبلغ الأجزاء المقعّرة من سطح المقايضة
جبهة باريتو (NSGA-II) انتشار من التسويات حين يختار إنسان بعد رؤية الخيارات آلية أثقل، والجبهة تحتاج عرضًا وقراءة

التعامل مع القيود

الميزانية في مثال المستشعرات ليست هدفًا يُقايَض به — إنها جدار. وهناك أربع طرائق مرجعية لتعليم الخوارزمية الجينية وجود جدار، وهي تختلف في مقدار فضاء البحث الذي تُبقيه صالحًا للاستخدام.

الملاءمة المعاقَبة
F(\mathbf{x}) = f(\mathbf{x}) - \sum_{j=1}^{k} \lambda_j \, \max\!\big(0,\, g_j(\mathbf{x})\big)^{2}
يُكتب كل قيد بحيث يجعل الانتهاك القيمة g موجبة، وتنمو العقوبة مع حجم الانتهاك. وتربيعها يعني أن تجاوزًا صغيرًا للميزانية يكلّف قليلًا وأن تجاوزًا كبيرًا يكلّف كثيرًا، فيبقى البحث قادرًا على رؤية الاتجاه العائد إلى منطقة الجدوى.
العقوبة
تُلطّف الجدار
اطرح حدًّا يتناسب مع الانتهاك. تبقى الأفراد غير المجدية في المجتمع وتستطيع توريث جينات مفيدة.
الرفض
تُسمّى أيضًا عقوبة الموت
امنح أي مرشح غير مجدٍ أسوأ ملاءمة ممكنة. بسيطة، لكنها بلا نفع حين تكون الحلول المجدية نادرة — فلا شيء يصعده البحث.
الإصلاح
صحّحه ثم قيّمه
حوّل المرشح غير المجدي إلى مرشح مجدٍ قريب قبل التقييم — هنا: أسقِط المستشعرات الأقل جدوى اقتصادية حتى تستقيم الفاتورة.
مُشغِّلات حافظة للجدوى
يصبح الجدار غير قابل للوصول
صمّم التهجين والطفرة بحيث لا يمكنهما إنتاج ابن غير صالح. تهجين الترتيب على التباديل (الدرس 13.2) هو المثال الكلاسيكي.

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

افحص الجدوى على حدة

أبلِغ دائمًا عمّا إذا كان أفضل فرد مجديًا كحقيقة مستقلة، لا كشيء يُستنتج من ملاءمته. فالنتيجة المعاقَبة والنتيجة المجدية فعلًا رقمان من النوع نفسه، والخلط بينهما هو الطريق إلى تقديم تصميم غير مجدٍ كأنه الحل.

التقارب المبكر وفقدان التنوع

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

كيف تكتشفه

كيف تقاومه

يُفقد التنوع حين يكون ضغط الانتقاء عاليًا نسبةً إلى التنويع الذي تُوفّره المُشغِّلات، فكل إجراء مضاد يُعدّل أحد طرفي هذا التوازن.

تشارك الملاءمة
f'(i) = \frac{f(i)}{\sum_{j=1}^{P} \mathrm{sh}(d_{ij})}, \qquad \mathrm{sh}(d) = \begin{cases} 1 - (d/\sigma)^{\alpha} & d < \sigma \\ 0 & \text{otherwise} \end{cases}
تُقسَم ملاءمة الفرد على عدد جيرانه داخل نصف القطر المذكور في المعادلة. فعشر نسخ شبه متطابقة من حل جيد ينتهي كل منها بنحو عُشر ملاءمته، فيستطيع حل منفرد في موضع آخر أن ينجو إلى جانبها.

حساب الكلفة

في كل تطبيق واقعي تقريبًا يهيمن تقييم الملاءمة على زمن التشغيل. فالانتقاء والتهجين والطفرة عمليات مصفوفية قليلة، أما التقييم الواحد فقد يكون محاكاة، أو دورة بناء واختبار، أو تدريب نموذج كامل. لذا فالرقم المهم ليس عدد الأجيال بل العدد الكلي للتقييمات.

ميزانية التقييمات
N_{\text{eval}} = P \cdot G, \qquad T_{\text{wall}} \approx \frac{N_{\text{eval}} \cdot t_{\text{eval}}}{K}
P حجم المجتمع، وG عدد الأجيال، وt كلفة التقييم الواحد، وK عدد العمّال المتوازين. والحد P المتقدم هو المجتمع الابتدائي، الذي يُقيَّم قبل تشغيل أي جيل.

أدخِل الحساب: مجتمع من 100 فرد على 200 جيل يساوي 100 × 200 = 20,000 تقييم. وبثانيتين لكل تقييم يصبح ذلك 40,000 ثانية — أي ما يزيد قليلًا على إحدى عشرة ساعة على نواة واحدة، أو نحو واحد وعشرين دقيقة موزّعة على اثنين وثلاثين عاملًا. ولا شيء في ذلك قياسٌ لمسألة معينة؛ إنه الضرب الذي ينبغي أن تجريه قبل بدء التشغيل لا بعده.

طرائق لصرف الميزانية بشكل أفضل:

احسب قبل أن تُشغّل

حدّد ميزانية التقييمات أولًا، ثم اختر حجم المجتمع وعدد الأجيال لتلائمها. فكلاهما مهم وبينهما مقايضة: المجتمع الكبير يستكشف أكثر في الجيل الواحد لكنه يتيح أجيالًا أقل للميزانية نفسها. والإعلان عن «تشغيل 500 جيل» لا يعني شيئًا حتى يعرف القارئ P وكلفة التقييم الواحد.

أهم النقاط

الملاءمة هي صياغة المسألة، فاتّهمها أولًا عندما يسوء التشغيل. كافئ النتيجة لا السلوك الذي تفترض أنه ينتجها. ولعدة أهداف: إمّا أن توزنها — بعد إعادة التحجيم، ومع علمك بأن المجموع الموزون لا يبلغ الأجزاء المقعّرة من سطح المقايضة — أو أن تُرجع جبهة باريتو، وهو ما تفعله NSGA-II (Deb et al.، 2002) بالترتيب غير المهيمن عليه ومسافة الازدحام والاقتطاع النخبوي. تعامل مع القيود بالعقوبة أو الرفض أو الإصلاح أو المُشغِّلات الحافظة للجدوى، وأبلِغ عن الجدوى دائمًا على حدة من الملاءمة. راقب التنوع بفجوة الأفضل ناقص المتوسط وبعدد الأنماط الجينية المتمايزة، وقاوم فقدانه بخفض ضغط الانتقاء وتشارك الملاءمة والازدحام وإعادة التشغيل والتقسيم إلى جزر. وأخيرًا: ضع الميزانية بالتقييمات لا بالأجيال، فتقييم الملاءمة هو حيث يذهب الوقت.

السابق حلقة الخوارزمية الجينية نظرة عامة التالي متى ينتصر التطور ومتى يخسر