المعلوماتية > معجم المعلوماتية
الخوارزمية Algorithm
تُعدّ الخوارزمية (Algorithm) أحد أهم المفهومات التي شاع استخدامها في مجال الحوسبة، لكنّها لا تقتصر عليه (7-3)، وتعود هذه التسمية إلى عالم الرياضيات والفلك الفارسي "محمد بن موسى الخوارزمي" الذي أوجد هذا المصطلح في القرن التاسع الميلادي (7-5).
التعريف العام
الخوارزمية: مجموعة محدودة ومتسلسلة من الخطوات أو الإجراءات المنطقية التي يؤدّي تنفيذها على نحو صحيح إلى حل مشكلة معينة؛ كوصفة إعداد وجبة ما (5،8).
التعريف في مجال الحوسبة
مجموعة محدودة من التعليمات البرمجية المفصّلة التي يُزوَّد بها الحاسب بهدف تحقيق مهمة معينة (1،4)، ويجب أن تستوفي المعايير الآتية (4):
- الدخل Input: يغذّي المبرمجُ الخوارزمية بقيمة واحدة أو أكثر
- الخرج Output: تُنتِج الخوارزمية قيمة واحدة على الأقل لتكون نتيجةً لعملها
- الوضوح Definiteness: يجب أن تكون كل تعليمة واضحة لا غموض فيها
- محدودية التعليمات Finiteness (أن تكون منتهية): إذا تتبّعنا تعليمات الخوارزمية نجد أنها تنتهي بعد عدد محدود من الخطوات
- الفعالية Effectiveness: يجب أن تكون كل التعليمات أساسية بما يكفي لتنفّذ باستخدام قلم وورقة فقط.
طرائق تمثيل الخوارزميات (7)
- اللغات الطبيعية Natural Languages.
- المخططات التدفقية Flowchart: هي تمثيل مرئي لتسلسل الخطوات والقرارات اللازمة لأداء العملية.
- أشباه الأكواد Pseudocode: وصف مُفصَّل قابل للقراءة لما يجب أن يفعله برنامج الحاسب أو الخوارزمية، ويُعبّر عنه بلغة طبيعية مصممة على نحو رسمي بدلًا من لغة البرمجة.
- اللغات البرمجية Programming Language: طريقة لتوصيف الخوارزميات بطريقة قابلة للفهم والتنفيذ من قبل الحاسب على شكل برامج.
أشهر الخوارزميات (2،8)
هناك العديد من أنواع الخوارزميات وفق طرائق تصنيف مختلفة، نذكر منها:
- الخوارزميات العودية البسيطة Simple recursive.
- خوارزميات التراجع Backtracking.
- خوارزميات فرّق تسد Divide-and-conquer.
- خوارزميات البرمجة الديناميكية Dynamic programming.
- خوارزميات الجشع Greedy.
2- Kamara S، Woos D. Introduction to Algorithms and Data Structures [Internet]. Cs.brown.edu. 2020 [cited 6 July 2020]. Available from: هنا
3- [Internet]. Csie.ntu.edu.tw. [cited 6 July 2020]. Available from: هنا
4- ALGORITHM | meaning in the Cambridge English Dictionary [Internet]. Dictionary.cambridge.org. [cited 6 July 2020]. Available from: هنا
5- How Algorithm Got Its Name [Internet]. Earthobservatory.nasa.gov. 2017 [cited 6 July 2020]. Available from: هنا
6- Schnhart S، Podlipnig S. History of Algorithms [Internet]. Cs-exhibitions.uni-klu.ac.at. [cited 6 July 2020]. Available from: هنا
7- Data Structures and Algorithms، Introduction to Algorithms Lecture [Internet]. Dl.sumdu.edu.ua. 2018 [cited 6 July 2020]. Available from: هنا
8- Concept: Types of algorithms [Internet]. 2010 [cited 18 October 2010]. Available from: هنا