سلسلة تعلم الخوارزميات: ما هي الخوارزميات؟ وكيف تعمل؟

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

سلسلة تعلم الخوارزميات: ما هي الخوارزميات؟ تُعرف «الخوارزميات-Algorithms» بأنها مجموعة من الخطوات المحددة والمتسلسلة التي تنفذ من أجل حل مشكلةٍ ما أو من أجل تنفيذ مهمة محددة. في عصرنا الحالي يكاد لا يخلو أي علم من تطبيق مفاهيم الخوارزميات بأشكالها المختلفة ويشاع استخدام الخوارزميات في مجال علوم الحاسوب ولكن الخوارزميات ليست بمفهوم حديث النشأة بل ظهر مفهومها بشكل أو بآخر في الحضارات القديمة وسميت بهذا الاسم نسبة إلى العالم محمد بن موسى الخوارزمي الذي أوجد هذا المصطلح في القرن التاسع الميلادي.

ما هي الخوارزميات في علم الحاسوب؟

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

  • قم بإدخال عدد معين X
  • اقسم العدد المدخل على الرقم 2
  • إذا كان ناتج القسمة بدون باقٍ فإن العدد المُدخل زوجي
  • عدا ذلك فإن العدد المدخل فردي

هناك طرق أخرى للتعبير عن الخوارزمية أشهرها ما يعرف بمخططات التدفق «flow charts» التي توضح تسلسل الخوارزمية من البداية حتى النهاية وهي عبارة عن تمثيل مرئي لتسلسل الخطوات والقرارات اللازمة لأداء المهمة المحددة. تجدر الإشارة إلى أن لكل شكل هندسي في مخطط التدفق مدلول معين وسيتم تناولها بالتفصيل في المقالات القادمة. يمكن تمثيل الخوارزمية السابقة على شكل مخطط تدفق كالتالي:

مخطط التدفق لمعرفة ما إذا كان العدد زوجيًا أم فرديًا

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

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

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

  • الخوارزميات العودية البسيطة «Simple Recursive».
  • خوارزميات البرمجة الديناميكية «Dynamic Programming».
  • الخوارزميات التراجعية «Backtracking».
  • خوارزميات فرّق تسد «Divide-and-conquer».
  • خوارزميات الجشع «Greedy».
  • خوارزمية هجوم القوة العمياء «Brute Force Attack».
  • الخوارزمية العشوائية «Randomized algorithm».

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

المصادر

MIT

BBC

includehelp

.Skiena, Steven S. The algorithm design manual: Text. Vol. 1. Springer Science & Business Media, 1998

.Cormen, Thomas H., et al. Introduction to algorithms. MIT press, 2009

نُشرت بواسطة

Qaher Naji

درست تخصص هندسة كهربائية والكترونية، حاصل على درجة الماجستير في قسم التحكم الآلي، مهتم بالتكنولوجيا والهندسة.

4 تعليقات على “سلسلة تعلم الخوارزميات: ما هي الخوارزميات؟ وكيف تعمل؟”

اترك تعليقإلغاء الرد

Exit mobile version