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

0 102

 


تعريف الخوارزميات

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

هي مجموعة من الخطوات والإجراءات المنطقية المتسلسلة التي تقوم بعملها لحل مشكلة ما أو عمل حسبة معينة ويمكن أيضا أن نقول انها خطة مكونة من خطوات منطقية لحل مشكلة أو عمل فكرة ما. وهي ليس لها علاقة بلغة برمجة معينة أنما هي خطوات فقط للتنفيذ ومن ثم الحصول على نتائج محددة ( Output ) من المعطيات المدخلة ( Inputs ). فمثلا عندما يطلب منك شخص عمل تطبيق معين أو حل مشكلة معينة فأول ما تفكر به هو كتابة استراتيجية معينة لعمل هذا الحل قبل البدأ بتنفيذها بواسطة ( لغة برمجة ) وهذه الاستراتيجية تسمى Algorithm

وجاءت تسمية “خوارزمية” من اسم عالم الرياضيات العربي محمد بن موسى الخوارزمي، الذي كان جزءًا من الأسرة الملكية في بغداد وعاش بين 780- 850 م.


تستخدم الخوارزميات على نطاق واسع في كل مجالات الـ IT أو (تقنية المعلومات). فمثلًا خوارزمية محرك البحث تقبل سلاسل بحث من الكلمات المفتاحية كمدخلات، وتبحث في قواعد بياناتها عن صفحات ويب ذات صلة، ثم تعيد النتائج.


وتقوم خوارزمية التشفير بتحويل البيانات بالاعتماد على أفعال محددة لحمايتها. فمثلًا خوارزمية سرية رئيسية مثل قاعدة تشفير بيانات وزارة الدفاع الأمريكية تستخدم المفتاح نفسه لتشفير البيانات وفك تشفيرها. وطالما أن الخوارزمية معقدة بشكل كاف فلا يقدر أي شخص لا يملك المفتاح على فك تشفيرها.

التسلسل: الخوارزمية عبارة عن مجموعة من المعلومات المتتابعة والتي قد تكون تلك التعليمات إما بسيطة وغير معقدة أو من النوعين التاليين. 

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

التكرار: عند حل بعض المشكلات، يجب تكرار نفس تسلسل الخطوات عدة مرات، هذا يسمى التكرار.


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

صنفت الخوارزميات حسب بنائها إلى  3 أنواع:

  • التسلسل Sequence:
  •  يمتاز هذا النوع بوجود سلسلة من الخطوات، وينبغي إنجاز كل خطوة بالكامل واحدة بعد الأخرى.
  • التفرع Branching: 
  • يتمثل هذا النوع بمشكلات من نوع (إذا كان الشرط صحيحًا سيكون الناتج A، وإذا كان الشرط غير صحيح، فإن الناتج سيكون B). ويعرف هذا النوع أيضًا باسم “نوع الاختيار selection”.
  • الحلقة Loop: 
  • ويعرف أيضًا باسم “نوع التكرار repetition” وفيه قد يتكرر إنجاز العملية باستمرار تحت شروط معينة. لكن ينبغي التأكد من إنهاء العملية بعد عدد من التكرارات تحت الشروط.
  • يوجد أنواعاً تكون عديدة من أعداد الخوارزميات، البعض يقوم بوصف الطريقة التي تُظهر بها تلك المهمة، والبعض الآخر منها تصف المهمة الخاصة بها، وتختلف اللغة التي تعبر عنها. هناك خوارزمية تدعى أو يتم تسميتها بالخوارزمية مماثلة أو مطابقة السلسلة وتكون على سبيل المثال، وإن هذه السلسلة تجد ظهور المدخلات في متسلسلات تكون أجزاء أو أكبر من النص. هناك نوع من أنواع الخوارزميات تكون موجودة وتعبر عن طريقة لكي يتم حل المسائل وهي تكون (divide and conquer algorithm وهي سلسلة تجد ظهور المدخلات في متسلسلات تكون أجزاء او أكبر من النص، ويكون البحث الثنائي هو مثال على هذه الخوارزمية. والبحث الثنائي يقوم بالبحث عن هدفٍ يكون به مدخلات مفرزة تكون من خلال تقسيم المدخلات لأجزاء صغيرة من أجل إيجاد الهدف، من الممكن امتداد واحد من أنواعها لكلا النوعين السابقين

نصائح قبل كتابة الخوارزميات

قبل تصميم الخوارزميات يجب أن تتأكد أنك فهمت المشكلة تماما وجميع أبعادها قبل التفكير في كتابة الخوارزميات وفيما يلي أهم الخطوات التي تتبعها لعمل ذلك.
ما هي مدخلات المستخدم ؟ Inputs مثلا يقوم المستخدم بإدخال كلمة المرور
ما هي المخرجات من المشكلة ؟ Outputs مثلا تظهر للشخص رسالة أنه تم تسجيل الدخول
الترتيب المناسب للإجراءات الخاصة بحل المشكلة
القرارات التي يتم إتخاذها لحل المشكلة Conditions
هل هناك أجزاء داخل المشكلة يمكن أن تظهر مرة أخرى

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

هناك العشرات من أنواع ال Algorithms المشهورة التي يتم عمل الكثير بها ولا تكفي 10 دورات تعليمية لسرد هذه الخوارزميات ولكن سوف نعطي مثال عليها لتعرف الفكرة العامة فقط ومن أشهر أنواع ال Algorithms هو Sorting Algorithms وفكرتهم تعتمد على ترتيب عناصر معينة داخل قائمة بطريقة معينة حسب نوع ال Algorithm المستخدم ومن أشهر ال Sorting Algorithms ما يلي ويمكنك زيارة الصفحة الخاصة به لترى مثال على طريقة عمل ال Algorithm

التحليل الخوارزمي 

من المهم جدًا معرفة المقدار المطلوب نظريًا من مورد معين (مثل الوقت أو التخزين) لخوارزمية معينة. تم تطوير أساليب تحليل الخوارزميات من أجل الحصول على هذه الإجابات الكمية (التقديرات)، ومثال على ذلك: تحتوي خوارزمية الخاصة بالفرز من أعلاها على حالة وقتية (O) (n)، عن طريق إستخدام كتابة O كبيرة مع n بالاعتماد على طول القائمة.
 في جميع الحالات يكون هناك إحتياج للخوارزمية فقط إلى معرفة قيمتين: العثورعلى أكبر رقم حتى الآن، مكانه الحالي في قائمة الإدخال، لذلك يجب أن يكون لها مطلب وهو (1) O، إذا كانت المساحة المطلوبة لتخزين أرقام الإدخال لا تعد ولا تحصى. 
قد تستمر الخوارزميات في نفس المهمة عن طريق مجموعة مختلفة من التعليمات في وقت أقل أو أكثر أو مساحة أو جهد أكثر أو أقل من غيرها، ومثال على ذلك: عادةً ما توفر خوارزمية البحث ذات ثنائي قوة بحث متسلسلة عند استخدامها لعمليات البحث في جدول القائمة المصنف


0%
Leave A Reply

Your email address will not be published.