كيف يتم اختيار الخوارزميات التحسينية ؟

هذه المقالة هي الجزء 3 من 12 في سلسلة أشهر الخوارزميات التحسينية المستوحاة من الطبيعية

يهدف التحسين optimization في الخوارزميات إلى إيجاد مجموعة من المدخلات للدالة الهدف objective function، ما ينتج عنه قيمة قصوى أو دنيا لهذه الدالة. هذه المشكلة تلخص هدف عدد من خوارزميات الذكاء الاصطناعي، مثل الانحدار اللوجستي logistic regression وتدريب الشبكات العصبية الاصطناعية artificial neural networks. وعلى الأرجح، هناك المئات من الخوارزميات التحسينية المعروفة ومتغيراتها. وكذلك توجد عشرات الخوارزميات التي يمكنك الاختيار منها لحل مشكلتك، في مكتبات الكود البرمجي العلمية المعروفة scientific code libraries. إذاً فمن الصعب معرفة الخوارزمية الأفضل للاستعمال في حل مشكلتك التحسينية.

ومن أجل تحقيق هدفنا، والذي هو اكتساب قدرة على التمييز الجيد بين الخوارزميات التحسينية واختيار الأفضل، يجب أن نتعرف على عدد من النقط والمعايير التي ستساعدنا على اتخاد القرار، منها:

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

الخوارزميات التحسينية

يشير التحسين إلى إيجاد معلمات الإدخال أو مدخلات للدالة التي ينتج عنها القيمة الدنيا أو القصوى للدالة الوظيفية، أو الهدف. والنوع الأكثر شيوعًا من المشاكل التحسينية التي يمكن مصادفتها في مجال تعلم الألة هو تحسين الدوال المتصلة continuous functions optimization. وفيه تجد المدخلات عبارة عن قيم رقمية، أي أعداد حقيقية، كما الحال مع مخرجات الدالة.

ويستلزم وجود المشاكل التحسينية المستمرة، أو المتصلة، وجود نظيرتها غير المتصلة. ويطلق على هذا النوع، من المشاكل التحسينية، مشاكل التحسين أو الاستمثال التوافقي combinatorial optimization.

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

القيم الدنيا والقصوى

بالإنجليزية maxima أي القيمة القصوى، بينما minima هي القيمة الدنيا. تمثل القيمة القصوى الشاملة global maxima أو القيمة الدنيا الشاملة global minima الحل الأمثل global optima الذي نهدف لإيجاده من خلال الخوارزميات التحسينية.
بينما تمثل القيم القصوى المحلية local maxima أو القيم الدنيا المحلية local minima الحلول المحلية المثلى local optima. والمقصود بالمحلية كونها مؤطرة في مجال محدد، أي في هذا النطاق هي الحل الأمثل، أي القيمة الدنيا أو القصوى، لكن خارجه لا تعتبر كذلك.

مفاهيم رياضية مهمة لفهم عملية التحسين

  • المشتقة الأولى first-order derivative: الدالة القابلة للاشتقاق هي الدالة التي نستطيع حساب مشتقتها في أي نقطة من نقاط مجالها، أي الفضاء المدروس. فمشتقة الدالة في نقطة هي معدل أو مقدار التغير، تغير الدالة، في تلك النقطة، أو ما يسمى بالميل.
  • التدرج gradient: يطلق على مشتقة دالة متعددة المتغيرات بالتدرج. أي دالة بأكثر من متغير واحد. وهذه المشتقة هي عبارة عن متجه. بحيث يمثل كل عنصر من عناصر هذه المتجه مشتقة جزئية للمتغير المكافئ لها.
  • المشتقة الجزئية partial derivative: تمثل كذلك معدل أو مقدار التغير في نقطة بدلالة متغير باعتبار كل المتغيرات الأخرى ثابتة.
  • المشتقة الثانية second-order derivative: وهي مشتقة المشتقة، بحيث تمثل تغير التغير. أي تغيرُ تغيرِ الدالة الهدف. وهي الأخرى يمكن أن تتواجد في نقطة من الفضاء أو لا، أي يمكن أن تكون المشتقة قابلة للاشتقاق أو غير قابلة.
  • المصفوفة الهيسية hessian matrix: لكل دالة متعددة المتغيرات وقابلة للاشتقاق مرتين أو أكثر مصفوفة هيسية تعبر عن قيمة مشتقتها الثانية، والتي يمثل كل عنصر فيها المشتقة الجزئية من الدرجة الثانية لكل متغير.

الدالة الهدف القابلة للاشتقاق

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

خوارزميات التأطير

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

خوارزميات النزول المحلي

وتهدف إلى إيجاد الحل الأمثل فقط، وليس عدد من الحلول المحلية، عند تعدد المتغيرات. والمثال الأبرز لهذا النوع من الخوارزميات هو خوارزمية البحث الخطي line search algorithm والتي بدورها تتوفر على عدد من المتحورات.

خوارزميات الدرجة الأولى

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

يطلق عموما على هذه الخوارزميات، خوارزميات النزول التدرجي gradient descent algorithms. وتوفر خوارزمية النزول التدرجي الكلاسيكية الإطار العام لنظيرتها التصادفية، والمسمات بخوارزمية النزول التدرجي التصادفية stochastic gradient descent algorithm المستعملة في تدريب نماذج الشبكات العصبية الاصطناعية في التعلم العميق.

خوارزميات الدرجة الثانية

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

الدالة الهدف غير القابلة للاشتقاق

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

  • أن الدالة غير موصوفة رياضيًا، أي لا يتوفر لها تعبير رياضي مناسب.
  • تعدد الحلول المحلية المثلى بشكل كبير.
  • الدالة غير مستقرة دائمًا بسبب تشويش ما.
  • عدم اتصال الدالة، أو استمرارها في عدد من النقط.

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

الخوارزميات المباشرة

هي عبارة عن خوارزميات قطعية تفترض وجود حل أمثل واحد، وتبحث عنه بدل البحث عن كل الحلول المحلية المثلى. وتسمى هذه الخوارزميات أيضًا بخوارزميات البحث النمطي لكونها تتخد أنماط متعددة في حركتها في فضاء الحلول. كما سميت بالمباشرة نظرًا لتقريبها approximate للتدرج gradient مباشرة أي بحساب الفرق بين ملائمة النقطة الحالية والنقطة التي تسبقها. وبالطبع تستعمل هذه المقارنة لتحديد اتجاه الحركة في الفضاء. ومن أمثلة هذه الخوارزميات:

  • Cyclic Coordinate Search
  • Powell’s Method
  • Hooke-Jeeves Method
  • Nelder-Mead Simplex Search

خوارزميات التحسين التصادفية

هي خوارزميات تستخدم العشوائية في عملية بحثها عند غياب إمكانية حساب مشتقة الدالة الهدف. وتختلف عن خوارزميات البحث المباشر في أنها تأخذ عدد كبير من عينات الدالة الهدف وتستطيع التعامل مع المشاكل ذات الحلول المضللة. ومن أمثلة هذه الخوارزميات:

  • التخمير المحاكى simulated annealing.
  • الاستراتيجية التطورية evolution strategy.
  • خوارزمية الإنتروبيا cross-entropy method.

خوارزميات الساكنة

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

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

  • الخوارزميات الجينية genetic algorithms.
  • خوارزمية التطور التفاضلي differential evolution.
  • خوارزمية استمثال عناصر السرب particle swarm optimization.

المصادر

  1. ScienceDirect
  2. Machine Learning Mastery

ما هي خوارزميات التخمير المحاكى وكيف تعمل؟

هذه المقالة هي الجزء 6 من 12 في سلسلة أشهر الخوارزميات التحسينية المستوحاة من الطبيعية

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

تتكون البنية البلورية من مجموعة من الذرات مرتبة بطريقة معينة في الشبكة البلورية.

تسمى هذه العملية (عملية التلاعب الدقيق في درجة الحرارة و معدل التبريد) بجدولة التلدين.

آلية عمل خوارزميات التخمير المحاكى

منذ أن تم تطوير خوارزميات التلدين المحاكى simulated annealing أول مرة من طرف كيركباتريك S. Kirkpatrick وزملائه، تم تطبيقها في مختلف مجالات الحوسبة التحسينية optimization. فأتت الاستعارة أو المجاز في تسمية هذه الخوارزميات من خصائص التلدين في معالجة المعادن وذلك رغم أن هذه الخوارزميات، في جوهرها، تشبه أكثر خوارزميات متروبوليس الكلاسيكية التي تم تطويرها من طرف نيكولاس ميتروبوليس N. Metropolis وزملائه.

الرواية، عملية تبريد سريع لمعدن شديد السخونة بواسطة تغطيسه المفاجئ في سائل

أفضلية خوارزميات التلدين المحاكى

على خلاف الخوارزميات التي تتبنى، في معالجة مدخلاتها، طريقة تدرجية gradient-based approach. و الخوارزميات البحثية القطعية deterministic search methods، التي تخسر إثر وقوعها في حل محلي local optima وتفقد قدرتها على التقارب باتجاه الحل الأمثل global optima. تمتاز خوارزميات التخمير المحاكى بقدرتها على تجنب الوقوع في هذه المشكلة. وقد ثبث ذلك تجريبيًا، فخوارزميات التخمير المحاكى دائمًا ما تتقارب نحو الحل الأمثل global optima إن تم توفير عشوائية كافية وسرعة تبريد بطيئة معًا. يرجع هذا جزئيًا لكون هذه الخوارزميات تعتمد سلسلة ماركوف Markov chain التي توفر إمكانية التقارب عند تحقق شروط معينة.

مجازًا، تكافئ عملية التقارب هذه إسقاط عدد من الكرات المطاطية المرتدة فوق مساحة إسمنتية ذات تضاريس متنوعة، بينما تقفز وترتد هذه الكرات فتخسر كم من طاقتها الحركية وبالتالي تتدحرج بعد عدد من الوثبات وتستقر في النقطة الأكثر إنخفاضًا في محيطها أي الحل المحلي الأمثل local optima. لكن إن تم تمكين هذه الكرات من الوثب لمدة أطول وخسارة طاقتها الحركية ببطء كاف، سنجد أن عدد منها لن يسقط فقط للحلول المحلية بل تسقط نحو أخفض نقطة على الإطلاق، أي أنها تتقارب نحو الحل الأمثل global optima. في حالتنا هذه نسمي هذا الحل بالحل الأدنى global minimum.

سلسلة ماركوف

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

نلاحظ حدثين E و A كل حدث يخرج منه عدد من الأسهم باتجاه حدث أخر أو تجاه نفسه. وكل سهم مسمى باحتماليته أي احتمالية الانتقال من الحدث الحالي إلي الحدث التالي والذي يشير إليه السهم. بالطبع السهم المرتد لنفس الحدث يعني احتمال عدم تغير الحدث.

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

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

تمثل T درجة الحرارة. Δf هي الفرق بين ملائمة الحدث الأصل والحدث التالي أي الحدث الذي يشير إليه السهم كما هو موضح في المثال السابق. exp بالطبع هي الدالة الأسية. r هي العتبة التي نضعها لقبول الاحتمال أو تفنيده. فإن لم يتجاوز الاحتمال هذه العتبة، يتم اعتباره صفرًا وبالتالي لن يكون هناك سهم أصلا بين الحدثين.

خطوات التنفيذ

الخطوة الأولى

نبدأ أولًا بوضع ساكنة بدئية S. و كذلك درجة حرارة بدئية T. يمكن اختيار هذه الحرارة ابتداءً من عدد كبير وتتناقص مع الوقت، لتصل إلى الصفر. أو نختارها من واحد وتتناقص إلي أجزاء من الصفر، على سبيل المثال من 1 إلي 0.00001.

الخطوة الثانية

وضع قاعدة تناقص درجة الحرارة. هذه الخطوة مهمة لأنها تحدد سرعة التبريد، والتي ناقشنا أهميتها سابقًا. قاعدة أو ‘دالة’ تناقص الحرارة يتم التوصل إليها حسب الحاجة. عمومًا هناك ثلاث طرق للوصول لهكذا دالة و هي بسيطة كالتالي:

1. التناقص الخطي

أي عند كل تكرارة تتناقص الحرارة بقيمة ‘ألفا’ محددة.

2. التناقص الهندسي

أي عند كل دورة، يتم ضرب قيمة الحرارة في معامل ألفا أصغر من واحد وأكبر من الصفر. يعني هذا أننا نقوم بإعدام قيمة الحرارة بنسبة معينة كل مرة. بحيث ‘ألفا’ تمثل النسبة التي سنبقي عليها عند كل تكرار. مثال: إن كانت ألفا تساوي 1/3 يعني أننا نبقي فقط على ثلث درجة الحرارة السابقة.

3. قاعدة التناقص البطيء

كونها تحمل هذا الإسم لا يعني أنها أبطأ في جميع الحالات. لأن المعملات ‘ألفا’ و’بيتا’ هي من تحدد سرعة التناقص. وفي هذه الحالة يتم وضع ‘بيتا’ تحكيميًا.

الخطوتين السابقتين، الأولى والثانية، تمثلان ما أطلقنا عليه سابقا بجدولة التلدين.

الخطوة الثالثة

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

الخطوة الرابعة

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

تمثل p دالة احتمال قبولنا للحل الناتج. فإن كانت أصغر من 1 نتحقق ما إن كانت أكبر من العتبة التي وضعناها، إن كانت كذلك نختار الحل الناتج. إن لم نضع عتبة أصلا نقوم بتوليدها عشوائيا عند كل اختبار. إن كانت تساوي 1 نختار الحل الجديد بالطبع. t هي درجة الحرارة الحالية.
و Δc هي الفرق ببن الحل الحالي والجديد.

الحل الأقل قيمة هو الأفضل هنا وليس العكس، لكوننا نبحث عن النقطة الدنيا. يجدر الذكر أنه ليس هنالك فرق بين إيجاد القيمة الدنيا والقيمة القصوى. لأنه لو أردنا إيجاد القيمة القصوى يكفي دراسة f- بدلًا من f.

أهمية درجة الحرارة

نظرا لكيفية حسابنا للاحتمالية p، نجد أنه من المرجح إختيار حل أسوء من الحل الحالي عندما تكون درجة الحرارة مرتفعة. الشيء الذي يشكل فرقًا حاسمًا في قدرتنا على “استكشاف exploration” فضاء الحلول، ما يعزز من حظوظنا في الوصول للحل الأمثل.

احتمالات قبول العينة بدرجة حرارة 0.9.
change الفرق بين ملائمة الحلين .acceptance probability نتيجة الدالة p .درجة الحرارة temperature.

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

احتمالات قبول العينة بدرجة حرارة 0.1.
change الفرق بين ملائمة الحلين .acceptance probability نتيجة الدالة p .درجة الحرارة temperature.

هنا نلحظ أهمية تغير درجة الحرارة وأهمية سرعة ودرجة التغير على مر التكرارت في الوصول للحل الأمثل وليس فقط حلول مقبولة.

أمثلة استخدمت فيها خوارزميات التلدين المحاكى

  • مشكل البائع المتجول.
  • جدولة استعمال الزمن.
  • مشكلة توزيع المهام.
  • تقسيم وتلوين المنحنيات.
  • تحسين الدوال الغير خطية.

مميزات وعيوب خوارزميات التلدين المحاكى

مميزات

  • سهلة الاستخدام.
  • توفر حلولا مثلى لعدد من المشاكل.

عيوب

  • يمكن أن يطول أمد التنفيد إن كانت جدولة التخمير طويلة جدا.
  • يوجد العديد من المعلمات والمتغيرات التي يجب دراستها، لإيجاد أفضلها لحل، كل مشكل، مثل درجة الحرارة البدئية المثلى لحل مشكل معين.

مصادر

  1. Medium
  2. ScienceDirect
Exit mobile version