البرمجة الجامدة “الكلاسيكية” والبرمجة الناعمة (Hard vs. Soft programming) – د. محمد العباد

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

أردت هنا ان أسلط الضوء على نوعين من البرمجة المستخدمة في الأوساط العلمية مع تلخيص الفرق بينهما:

البرمجة الجامدة

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

في هذا النوع من البرمجة، تكون المسألة قد فهمت بالكامل وترجم سلوكها في معادلات يمكن حلها.

هنا لابد من إدخال كل القيم المطلوبة في المعادلة لاستخراج الناتج.

اذا الغرض الرئيسي من عملية البرمجة الجامدة هو إيجاد تسلسل مناسب للتعليمات او المعادلات الرياضية كي تؤدي مهام محددة او حل مشكلة ما.

هذا مثال بسيط لتقريب الصورة:

–  برنامج تحويل وحدة درجة الحرارة من صفر الى مئة درجة مئوية (MATLAB):

من الى فهرنهايت الى درجة مئوية الى كلفن
فهرنهايت (F) (F)    5/9*(F-32)   273.15+ 5/9*(F-32)
درجة مئوية (or C) 32 + (9/5* C) (C) C + 273.15
كلفن (K)   32 + 9/5 * (K-273.15)  273.15- K  (K)

البرنامج:

for i = 1: 100

Temp_C(i) = (i);

Temp_F(i) = 9*Temp_C(i)/5 + 32;

Temp_K(i) = Temp_C(i) + 273;

End

إذا ناتج البرنامج (الرسمي فقط) هو:

 

البرمجة الناعمة

هي نظم قواعد معرفية تحاكي في أدائها :

  • التعلم وكسب الخبرة
  • الذكاء او التفكير البشري
  • المنطق
  • التكيف
  • أخذ القرار
  • التذكر
  • النسيان
  • الإدراك النمطي

الهدف الرئيسي هنا هو توظيف حالة عدم الدقة وعدم اليقين لتمكين التتبع وتقفي الأثر و السرعة في إيجاد الحل وخفض التكلفة, هنا سنستعرض بعض أقسام هذا النوع من البرمجة من دون ذكر أمثلة لاتساع أفق التطبيقات التي يمكن للقارئ إيجادها في المواقع العلمية.

أقسام البرمجة الناعمة :

  1. المنطق الضبابي – (Fuzzy Logic)

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

 المشكلة تكمن في التعبير عن درجة إنتماء الشيء للوصف  كما في الأمثلة التالية:

  1. ذلك المبنى مرتفع بعض الشيء (كم تساوي كلمة “بعض الشيء”؟)
  2. تلك السيارة ليست سريعة (“ليست سريعة” بالنسبة لمن؟)
  3. الجو حار قليلا (كم درجة مئوية كلمة “قليلا” ؟)

2. الخوارزمية الجينية – (Genetic Algorithms)

هي طريقة من طرق البحث عن الحل الأمثل بالإعتماد على سلسلة من الخيارات العشوائية باستخدام قوانين الوراثة الجينية. العمليات الرئيسية هي:

  1. التهيئة(initialization)
  2. الإختيار (selection)
  3. الإستنساخ (reproduction)  من خلال التهجين او الطفرة

3. الشبكات العصبية الصناعية – (Artificial Neural Networks)

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

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

الشبكات العصبية الصناعية (ANN) يمكن وصفها بـ

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

صفاتها:

  • تبني سلوك
  • تتفاعل
  • تتنظم ذاتيا
  • تتعلم
  • تعمم
  • تتذكر
  • تنسى
  • لا تنفذ البرامج

المهام التي عليك عملها لتطبيق ال ANN

  1. عرف المشكلة
  2. حدد الدوال الناقلة (المغيرة)
  3. حدد قوانين التعلم
  4. صمم هيكل الشبكة
  5. اختر مجموعة التدريب
  6. قيم النتائج

الفرق بين البرامج التقليدية (برمجة جامدة) والشبكات العصبية الصناعية:

الشبكات العصبية الصناعية البرامج التقليدية
ذاكرة موزعة ومترابطة ذاكرة موزعة
تسامحية في وجود الأخطاء   fault tolerant عديمة الفائدة عند اي خلل في الذاكرة
المدخلات غير المكتملة تعطي حلول معقولة المدخلات غير المكتملة لا تعطي حلول
البرمجة ذات هيكلة منظمة ذاتيا البرمجة ذات هيكلة منظمة خارجيا

الفرق بين البرمجة الجامدة والناعمة:

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *