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