محتويات المقال :
سلسلة تعلم الخوارزميات: ما هي الخوارزميات؟ تُعرف «الخوارزميات-Algorithms» بأنها مجموعة من الخطوات المحددة والمتسلسلة التي تنفذ من أجل حل مشكلةٍ ما أو من أجل تنفيذ مهمة محددة. في عصرنا الحالي يكاد لا يخلو أي علم من تطبيق مفاهيم الخوارزميات بأشكالها المختلفة ويشاع استخدام الخوارزميات في مجال علوم الحاسوب ولكن الخوارزميات ليست بمفهوم حديث النشأة بل ظهر مفهومها بشكل أو بآخر في الحضارات القديمة وسميت بهذا الاسم نسبة إلى العالم محمد بن موسى الخوارزمي الذي أوجد هذا المصطلح في القرن التاسع الميلادي.
تعرف الخوارزميات في علم الحاسوب بأنها مجموعة من التعليمات البرمجية التي ينفذها الحاسب الالي لتحقيق مهمة معينة. تُنفذ هذه التعليمات على مجموعة من البيانات تعرف باسم المدخلات ونتيجة لذلك نحصل على حل للمشكلة المحددة ويعبر عنه بالمخرجات. تتباين الخوارزميات من حيث درجة الصعوبة وطريقة البحث عن الحل فقد تكون سهلة كمثال معرفة ما إذا كان الرقم زوجيًا أم فرديًا أو قد تكون بالغة الصعوبة مثل خوارزمية معرفة أقصر الطرق مسافة للوصول إلى مدينة معينة عبر المئات من الطرق المتاحة. بداية تكتب الخوارزمية بصيغة الكود الزائف «اpseudo code» وهي طريقة منطقية لكتابة الأوامر ولكن ليست شفرة برمجية حقيقية فعلى سبيل المثال يمكن كتابة خوارزمية تحديد ما إذا كان العدد زوجيًا أم فرديًا بصيغة كود زائف بالطريقة التالية:
هناك طرق أخرى للتعبير عن الخوارزمية أشهرها ما يعرف بمخططات التدفق «flow charts» التي توضح تسلسل الخوارزمية من البداية حتى النهاية وهي عبارة عن تمثيل مرئي لتسلسل الخطوات والقرارات اللازمة لأداء المهمة المحددة. تجدر الإشارة إلى أن لكل شكل هندسي في مخطط التدفق مدلول معين وسيتم تناولها بالتفصيل في المقالات القادمة. يمكن تمثيل الخوارزمية السابقة على شكل مخطط تدفق كالتالي:
مخطط التدفق لمعرفة ما إذا كان العدد زوجيًا أم فرديًا
نتيجةً للتقدم المتسارع للعلم والتقنية في عصرنا وصعوبة المسائل التي تحتاج إلى حل، يلجأ العلماء والباحثين إلى تصميم خوارزميات تمتاز بالكفاءة والسرعة. فعلى سبيل المثال تنظيم ومراقبة السير في الطرق السريعة، وتحليل الجينيوم البشري، و شبكات التواصل الاجتماعي التي يتجاوز مستخدميها مئات الملائيين، تحتاج كل تلك المواضيع إلى خوارزميات فائقة السرعة لمعالجتها وتحليلها إذ أن الحواسيب العادية حتى وإن كانت قدرتها الحاسوبية فائقة فإنها لا تستطيع التعامل مع المسائل المعقدة بكفاءة. لذا عند تصميم خوارزمية ما ينبغي التركيز على كفاءتها في التعامل مع المدخلات الضخمة وسرعتها في الحصول على المخرجات المطلوبة.
نظرًا لتنوع المجالات العلمية ولخصوصية كل قسم فيها، فإن كل قسم على حدا لديه مشاكله الخاصة وبالتالي يحتاج لخوارزميات معينة لحل تلك المشاكل. بشكل عام هناك مجموعة من الخوارزميات تُعتبر الأساس وأما البقية فيتم اشتقاقهن بشكل أو بآخر من تلك الخوارزميات الأساسية وهي:
بالإضافة إلى ذلك، هناك العديد من الخوارزميات المتعلقة بالذكاء الاصطناعي وعلم التشفير وخوارزميات التحسين وخوارزميات تنقيب البيانات. سيتم تغطية أهم الخوارزميات بالتفصيل في المقالات القادمة.
.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
عندما يتعلق الأمر بحماية بشرتنا من التأثيرات القاسية لأشعة الشمس، فإن استخدام واقي الشمس أمر…
اكتشف فريق من علماء الآثار 13 مومياء قديمة. وتتميز هذه المومياوات بألسنة وأظافر ذهبية،وتم العثور…
ركز العلماء على الخرسانة الرومانية القديمة كمصدر غير متوقع للإلهام في سعيهم لإنشاء منازل صالحة…
من المعروف أن الجاذبية الصغرى تغير العضلات والعظام وجهاز المناعة والإدراك، ولكن لا يُعرف سوى…
الويب 3.0، الذي يشار إليه غالبًا باسم "الويب اللامركزي"، هو الإصدار التالي للإنترنت. وهو يقوم…
لطالما فتنت المستعرات العظمى علماء الفلك بانفجاراتها القوية التي تضيء الكون. ولكن ما الذي يسبب…
View Comments
كيف أتواصل معكم أنا مبتدأ وأحب هذا العلم كثيراً