مقالاتمواضيع العدد ٧

مدخل إلى الخوارزميات

أشكركم بامتنان على تبرعكم

الخوارزميات

ما هي الخوارزمية؟ لماذا تعد دراسة الخوارزميات عملية هامة في تعلم البرمجة؟ ما هو دور الخوارزمية بالنسبة للتقنيات الأخرى المستخدمة في مجال الحواسيب؟

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

اعلانات جوجل

الخوارزميةبشكل عام، يمكننا تعريف الخوارزمية بأنّها أي سلسلة من الخطوات الحسابية المعرفة بشكل جيد، والتي تأخذ قيمة أو أكثر كـدخل Input، وتعطي قيمة أو أكثر كـخرج Output.

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

لتوضيح المفاهيم السابقة نأخذ المثال التالي:

لنفترض أنه لدينا سلسلة من الأعداد الصحيحة ونريد ترتيبها تنازلياً فعندئذ:

اعلانات جوجل

المسألة: ترتيب تنازلي للأعداد الصحيحة.

الدخل: سلسلةمن الأعداد عددها n.

الخرج: سلسلة الدخل مرتبة تنازلياً.

Insatnce بفرض سلسلة الدخل هي <10،5،30،15،40> فإن سلسلة الخرج هي <5،10،15،30،40>.

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

اعلانات جوجل

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

يتم الاختيار بحيث نحقق استغلالاً أمثلياًّ لموارد الحاسوب، فما هي هذه الموارد؟

أهم هذه الموارد هي: زمن المعالجة وحجم الذاكرة اللازمة لتنفيذ الخوارزمية.

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

اعلانات جوجل

تدخل الخوارزميات في تطبيقات كثيرة متنوعة وغاية في الأهمية، نسرد فيما يلي بعضها:

* الخارطة الجينية للإنسان Human Genome Project: يهدف هذا المشروع إلى تحديد أكثر من 100000 جين وراثي تُشكل الحمض النووي DNA، بالإضافة إلى تحديد ما يقارب 3 مليارات من الأزواج الكيميائية التي تكوِّن السلسلة الوراثية. إذاً، لدينا كم هائل من البيانات نحتاج لتخزينها ومعالجتها، وهنا يأتي دور الخوارزميات في تطوير تطبيقات وأدوات تحليل تُمكِّن العلماء من إجراء دراسات معمقة في زمن قصير نسبياً.

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

التجارة الإلكترونية Electronic Commerce: تؤمِّن مجموعة من الخدمات الجيدة القابلة للتفاوض والتبادل بشكل إلكتروني، فرضت هذه الخدمات تأمين حماية بعض المعلومات الشخصية مثل: اسم المستخدم، كلمة المرور، رقم بطاقة الائتمان، الحسابات المصرفية وغيرها… مما أدى إلى تطوير خوارزميات التشفير والتوقيع الرقمي Digital Signature.

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

بقلم LORD منتدى عالم الإلكترون

أشكركم بامتنان على تبرعكم

مقالات ذات صلة

اترك تعليقاً

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

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

شاهد أيضاً
إغلاق
زر الذهاب إلى الأعلى