مجلة عالم التكنولوجيا
مجلة تكنولوجية شاملة

خوارزميات البرمجة.. مفهومها وأهم أدوارها

Algorithms in Programming

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

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

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

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

مفهوم خوارزميات البرمجة في علوم الحاسوب Algorithms in Programming

تُعرّف خوارزميات البرمجة Algorithms Programming  في علم الحاسوب بأنها مجموعة من التعليمات Instruction  البرمجية التي ينفذها الحاسب الآلي لتحقيق مهمة معينة، وتُنفذ هذه التعليمات على مجموعة من البيانات تعرف باسم المدخلات Input؛ نتيجة لذلك نحصل على حل للمشكلة المحددة ويعبر عنه بالمخرجات Output.

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

-إدخال عدد معين X

-قسمة العدد المدخل على الرقم 2

-إذا كان ناتج القسمة بدون باقٍ فإن العدد المُدخل زوجي

-عدا ذلك فإن العدد المدخل فردي.

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

وهناك طرق أخرى للتعبير في خوارزميات البرمجة وأشهرها ما يعرف بـ “مخططات التدفق” Flow Charts التي توضح تسلسل الخوارزمية من البداية حتى النهاية، وهي عبارة عن تمثيل مرئي لتسلسل الخطوات والقرارات اللازمة لأداء المهمة المحددة.

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

 

خصائص خوارزميات البرمجة

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

وذلك إضافة إلى العاملين الأساسيين في أي عملية معالجة: مدخلات Input ومخرجات Output؛ إذ تستقبل الخوارزمية المدخلات وتنتج المخرجات بعد عملية المعالجة المطلوبة، وبعد أن نتأكد من عمومية الخوارزمية ومطابقتها للعمل على مجموعة المدخلات الواردة.

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

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

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

-خوارزميات البرمجة العودية البسيطة Simple Recursive.

-خوارزميات البرمجة الديناميكية Dynamic Programming.

-خوارزميات البرمجة التراجعية Backtracking.

-خوارزميات فرّق تسد Divide-and-conquer.

-خوارزميات الجشع Greedy.

-خوارزمي هجوم القوة العمياء Brute Force Attack.

-الخوارزمية العشوائية Randomized algorithm.

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

الرابط المختصر :
close

مرحبا 👋

سعداء بالتواصل معكم
قم بالتسجيل ليصلك كل جديد

نحن لا نرسل البريد العشوائي! اقرأ سياسة الخصوصية الخاصة بنا لمزيد من المعلومات.

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.