المحتويات
مفهوم العملية الحسابية
في الماضي، كانت جداول الضرب والقسمة تُعرف بالعمليات الحسابية. ومع تطور الحضارات وظهور الحواسيب، أصبح مفهوم العمليات الحسابية مرتبطًا بها بشكل وثيق. يمكن تعريف العملية الحسابية بأنها مجموعة من الخطوات المحددة التي تساعد الفرد في الوصول إلى حل لمشكلة معينة. تقوم العملية الحسابية بمعالجة المعطيات والبيانات، ولا تقتصر هذه البيانات على الأرقام والأعداد فقط، بل تشمل أيضًا الرسومات، النصوص، الأصوات، والصور.
بمعنى آخر، العملية الحسابية هي قائمة من القواعد والتعليمات التي يجب اتباعها لحل مشكلة معينة. الترتيب والتنسيق في هذه القائمة مهم جدًا، حيث لا يمكن الوصول إلى الحل المطلوب إلا باتباع الخطوات والتعليمات بالترتيب المحدد، مع عدم تكرار أي خطوة أو تجاهلها.
يعود الفضل في ابتكار مفهوم العمليات الحسابية إلى العالم الرياضي المسلم الشهير محمد بن موسى الخوارزمي. عاش الخوارزمي في بغداد بين عامي 780 و 847 ميلادي، خلال فترة حكم الخليفة المأمون. برع الخوارزمي في الرياضيات والفلك، وكان من أهم إنجازاته وضع مبادئ علم الجبر وتأليف كتابه الشهير “الجبر والمقابلة”، الذي أُخذت منه كلمة “الجبر” وترجمت إلى مختلف لغات العالم. كما قدم كتابًا آخر في الحساب نُقل إلى اللغة اللاتينية بعنوان “(Algoritmi de numero Indorum)”.
معايير أساسية للعملية الحسابية
لكي تكون العملية الحسابية فعالة، يجب أن تستوفي مجموعة من المعايير الأساسية:
- المدخلات (Input): يجب أن يكون هناك صفر أو أكثر من المدخلات.
- المخرجات (Output): يجب أن تكون هناك قيمة مخرجة واحدة على الأقل.
- الوضوح (Definiteness): يجب أن تكون الخطوات واضحة وغير مبهمة لتسهيل فهمها وتنفيذها. على سبيل المثال، العبارة “(Add 6 or 7 to x)” غير واضحة ولا تستوفي هذا الشرط.
- المحدودية (Finiteness): يجب أن تُحل كل خطوة في العملية الحسابية خلال فترة زمنية محددة. على سبيل المثال، العبارة “(قسمة الرقم 10 على الرقم 3 بدقة عالية)” غير محدودة ولا تستوفي هذا الشرط.
- المحلولية (Effectiveness): يجب أن تكون كل خطوة قابلة للحل. على سبيل المثال، العبارة “(3/0)” مستحيلة الحل لأنها قيمة غير معرفة.
كيفية تقييم العملية الحسابية
تقييم العملية الحسابية (Algorithm Analysis) هو عملية تحديد كفاءة وجودة العملية، بهدف تطويرها وتحسينها. تقاس جودة العملية الحسابية بمقياسين رئيسيين:
-
مقياس تعقيدات الفراغ (Space Complexity): هو مقدار الذاكرة التي يحتاجها البرنامج من بداية التشغيل حتى النهاية. يتكون هذا المقياس من قسمين:
- القسم الثابت: مخصص للمتغيرات البسيطة والمركبة، الثوابت، والتعليمات.
- القسم المتغير: يتكون من المساحة التي يحتاجها البرنامج من المتغيرات المركبة التي يعتمد حجمها على طبيعة المشكلة المراد حلها.
- تعقيدات الوقت (Time complexity): هي مقدار الوقت اللازم لتكوين وتشغيل البرنامج حتى الانتهاء. يمكن تمثيلها بالمعادلة: (T(P) = Const + tp)، حيث (tp) يمثل وقت تشغيل البرنامج، و (Const) ثابت يمثل وقت التأليف.
تطوير العملية الحسابية
الرسوم البيانية
الرسم البياني (Graph) هو مجموعة من العناصر التي تمثل الرؤوس (Vertices) والتي ترتبط ببعضها البعض من خلال علاقات تسمى الحواف (Edges). تقسم الرسوم البيانية إلى ثلاثة أنواع:
- المخطط غير المتجه: هو المخطط الذي ترتبط عناصره مع بعضها البعض بطريقة غير مرتبة، حيث لا يُعتد بالاتجاهات.
- المخطط المتجه: هو المخطط الذي ترتبط عناصره مع بعضها البعض ضمن نمط وترتيب معين، حيث تكون الاتجاهات (الأسهم) ضرورية ومهمة.
- المخطط المشترك: هو المخطط الذي يجمع بين النوعين السابقين، حيث ترتبط بعض العناصر بعلاقات متجهة والبعض الآخر بعلاقات غير متجهة.
المسار
المسار هو عبارة عن سلسلة من الخطوط المستقيمة التي تربط بين نقطتين في المخطط. يجب ملاحظة أن المسار لا يُكتب ضمن أقواس المجموعة. طول المسار هو عدد الخطوط التي تربط بين كل نقطتين في المخطط، ويُحسب عن طريق حساب عدد الأزواج أو عدد المستقيمات في المخطط، مع الأخذ في الاعتبار وجود أكثر من مسار بين النقاط في المخططات المتجهة.
المخطط المتصل وغير المتصل
المخطط المتصل هو المخطط الذي يحتوي على مسارات بين كل نقطتين فيه. أما المخطط غير المتصل فهو المخطط الذي يحتوي على بعض العناصر غير المتصلة (المنفصلة).
منهجية الجشع
تعتمد هذه المنهجية على حل مسائل الأمثلة التي غالبًا ما تقوم بتكبيرها لشيء معين أو تصغيرها لنفس الشيء، كما هو الحال في الفوز والخسارة. تحتوي هذه المسائل على العناصر الآتية:
- دالة الهدف (Objective Function): يجب أن يكون الحل ضمن شروط وقيود معينة للمسألة، وأفضل الحلول المقترحة والممكنة يسمى الحل الأفضل.
- مجموعة القيود (Constraints)، والحل الذي يوصل إلى أحسن دالة هدف بالحل الأمثل.
طرق تدوين العملية الحسابية
توجد عدة طرق لتدوين العملية الحسابية، تختلف في بساطة الفهم والدقة. من أهم هذه الطرق:
-
تدوين العملية الحسابية باللغة الطبيعية المستخدمة يوميًا: يتم ترتيب خطوات الحل باللغة المستخدمة يوميًا، سواء كانت العربية أو الإنجليزية. مثال:
خوارزمية الاستيقاظ:- البداية.
- النهوض من الفراش.
- خلع ملابس النوم.
- الاستحمام.
- تجفيف الجسم من الماء.
- ارتداء ملابس نظيفة.
- تناول وجبة الفطور.
- الذهاب إلى العمل.
- النهاية.
يلاحظ في هذا المثال أن ترتيب الخطوات وعدم الاستغناء عن أي خطوة أمر مهم لتنفيذ العملية الحسابية وإتمامها.
- تدوين العملية الحسابية بلغة رمزية خاصة: تعتمد هذه الطريقة على أسس ومفاهيم رياضية. من أهم اللغات الرمزية المستخدمة لتمثيل العمليات الحسابية لغات البرمجة مثل ++C، والترميز الرياضي للمفاهيم بأساليب مختلفة كالأسلوب البياني.
- تدوين العملية الحسابية بطريقة بيانية: تعتمد هذه الطريقة على أسس هندسية، حيث يتم تنفيذها عن طريق الأشكال الهندسية. تعد المخططات الانسيابية من أكثر المخططات استخدامًا في تنفيذ العمليات الحسابية.
التمييز بين العملية الحسابية والبرنامج
هناك فرق بين البرنامج والعملية الحسابية من حيث النظرية الاحتسابية. تحقق العملية الحسابية جميع الشروط المذكورة سابقًا، ويمكن وصفها بعدة طرق مثل لغة العملية الحسابية والمخططات الانسيابية. أما البرنامج فلا يحقق الشرط الثالث، ويوصف بلغة الحاسوب.
إذن: البرنامج = العملية الحسابية + هيكل بياني يوضح طريقة تنظيم البيانات.
يتطور البرنامج بعدة خطوات ومراحل:
- توصيف المتطلبات: تحديد المدخلات والمخرجات.
- التصميم: تحديد العمليات الرئيسية التي تنطبق على كل هيكل بياني، مع افتراض وجود أجهزة تعالج العمليات.
- التحليل: مقارنة العمليات الحسابية التي توصل إلى الحل نفسه، وفقًا لمعايير معينة لاختيار الأفضل والأجود، مع التركيز على تصحيح الأخطاء بناءً على تعقيدات التخزين. التحسين يعالج المشاكل ويصلح الأخطاء بناءً على النتائج التي تظهر في نهاية البرنامج.
- التشفير: تحديد التمثيل البياني والإجراءات، وكتابتها لكل عملية، ثم تكوين نسخة كاملة متكاملة للبرنامج.
-
التأكد من الصلاحية: يتضمن ثلاثة أمور:
- البرهنة على الصحة: إثبات صحة البرنامج قبل استخدامه.
- الاختبار: توليد نماذج بيانية، وفي حال وجود خطأ، يجب وجود إشارة تنبه لذلك.
- تشخيص الأخطاء: تعيين مواقع الأخطاء البرمجية وتصحيحها بالطرق المناسبة.
المراجع
- علي سليمان، مبادئ العمليات الحسابية، جامعة الأندلس للعلوم الطبية: سوريا، صفحة: 73-78. بتصرّف.
- “What is an algorithm?”, www.bbc.co.uk, Retrieved 16-5-2018. Edited.
- حسن طعمة، أ.م هند شعبان، الباحث حسن كرماشة، تحليل وتصميم العمليات الحسابية، صفحة: 5-10، 95-101. بتصرّف.








