أنواع الخوارزميات البرمجية بالترتيب

كتابة: duaa mohe آخر تحديث: 14 سبتمبر 2021 , 01:36

ما هي الخوارزميات

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

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

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

أنواع الخوارزميات في البرمجة

إن خوارزميات البرمجة تساعد على حل المشكلات، وإن أنواع الخوارزميات في البرمجة عديدة وتتجلى في:

الخوارزمية العودية

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

وهي تعتبر من أبسط الخوارزميات لأنها لا تتطلب التفكير على وجه التحديد في كل مشكلة فرعية، وهذا يعني أننا فقط نحتاج إلى التفكير وإيجاد حل لمشكلة فرعية واحدة، وسيتم التعامل مع كل التعقيدات الأخرى بشكل تلقائي، فالعودية ببساطة تعني بأنها استدعاء نفسها لحل مشاكلها الفرعية.[2]

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

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

  • البنية التحتية المثلى والتي تحتوي على الحل الأحسن والأفضل لحل المشاكل الفرعية لمشكلة ما .
  • المشاكل الفرعية التي تكون متداخلة حيث أن الحل العودي يحتوي على عدد صغير من المشكلات الفرعية.

خوارزمية التراجع

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

خوارزميات فرق تسد

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

خوارزمية القوة الغاشمة

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

خوارزمية الجشع

ففي هذه الخوارزمية يتم اتخاذ قرار محدد في مرحلة دون التفكير في المستقبل، وإن هناك خصائص محددة لهذه الخوارزمية تتجلى في:

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

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

أمثلة على الخوارزميات

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

-أمثلة عن الخوارزميات في الرياضيات الأساسية

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

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

-أمثلة عن الخوارزميات في الحياة اليومية

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

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

أمثلة عن الخوارزميات في البرمجة

  • مثال عن الخوارزمية العودية

  • مثال عن الخوارزمية الديناميكية.

  • مثال عن خوارزمية التراجع.

  • مثال عن خوارزمية فرق تسد.

  • مثال عن خوارزمية القوة الغاشمة.

استخدامات الخوارزميات البرمجية

إن لكل خوارزمية لها استخداماتها الخاصة وتتجلى في:

إن الخوارزمية العودية تستخدم في:

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

إن الخوارزمية العودية تستخدم في:

  • أطول تتابع مشترك.
  • أطول زيادة في التتابع.
  • أطول سلسلة فرعية شائعة.
  • مجموع المجموعة الفرعية.
  • ضرب مصفوفة السلسلة.
  • خوارزمية بيلمان فورد.[3]

إن خوارزمية التراجع تستخدم في:

  • مشكلة ن كوينز.
  • لعبة الأشجار.
  • تجزئة النص.
  • أشجار البحث الثنائية.
  • مشكلة تلوين الرسم البياني.

إن خوارزمية فرق تسد تستخدم في:

  • البحث الثنائي.
  • دمج الفرز والفرز السريع.
  • إيجاد الوسيط.
  • ضرب المصفوفة.

إن خوارزمية الجشع تستخدم في:

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

اترك تعليقاً

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

زر الذهاب إلى الأعلى
إغلاق