تصميم خوارزمية
الخوارزمية هو مصطلح يشير إلى مجموعة محدودة ومعينة من الخطوات، حيث أن كل واحدة من هذه الخطوات قد تتطلب في حد ذاتها واحد أو أكثر من العمليات الحسابية والمنطقية، وإذا ما تم إتمام وتنفيذ هذه الخطوات بشكل صحيح فإنه سوف نحصل على نتيجة أو على مجموعة من النواتج بعد فترة محدودة ومعينة من الوقت اللازم لتنفيذ ذلك .
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Imperialist-competitive-algorithm-flowchart.jpg/220px-Imperialist-competitive-algorithm-flowchart.jpg)
وهناك مجموعة وعناصر من القيود والممانعات على نوع العمليات التي يمكن أن تتضمن وتحيط الخوارزمية وهي التالي:
- الوضوح: حيث يجب للمشكلة التي تعالجها الخوارزمية أن تكون واضحة.
- الفعالية: وهذا يدل ويعني أن كل خطوة بالإمكان أن يقوم بتنفيذها وأدائها أي شخص في فترة محددة من الوقت.
- المحدودية: وهذا يعني ويشير إلى أنه يجب أن يكون للخوارزمية عدد محدود ومحدد من العمليات والخطوات.
- النواتج: يجب ومن الإلزام أن يكون للخوارزمية واحد أو أكثر من النواتج وأن يكون لها صفر أو أكثر من المدخلات.
تصميم الخوارزمية هو طريقة محددة لإنشاء عملية حسابية في عمليات حل المشكلات. التصميم الخوارزمي التطبيقي هو هندسة الخوارزميات. يتم تحديد تصميم الخوارزمية وإدماجه في العديد من نظريات الحلول الخاصة بأبحاث العمليات ، مثل البرمجة الديناميكية وفرق تسد. تقنيات تصميم وتنفيذ خوارزميات التصميمات هي أنماط تصميم خوارزمية،[1] مثل نمط أسلوب القالب و نمط الديكور ، واستخدامات هياكل البيانات، وقوائم الاسم والفرز. يمكن العثور على بعض الاستخدامات الحالية لتصميم الخوارزمية في عمليات استرجاع الإنترنت من الزحف على شبكة الإنترنت، توجيه الحزم والتخزين المؤقت.
خطوات تطوير الخوارزميات:
- تعريف المشكلة
- تطوير نموذج
- مواصفات الخوارزمية
- تصميم خوارزمية
- التحقق من صحة الخوارزمية
- تحليل الخوارزمية
- تنفيذ الخوارزمية
- اختبار البرنامج
- إعداد الوثائق
نماذج التصميم الشائعة
[عدل]مصادر
[عدل]- ^ Goodrich، Michael T.؛ Tamassia، Roberto (2002)، Algorithm Design: Foundations, Analysis, and Internet Examples، John Wiley & Sons, Inc.، ISBN:0-471-38365-1، مؤرشف من الأصل في 2019-12-10
مصادر خارجية
[عدل]- "تحليل و تصميم الخوارزميات". مؤرشف من الأصل في 2019-12-15.
- "تصميم الخوارزميات".
- Algorithm Design Paradigms - نظرة عامة من قبل Paul Dunne في جامعة ليفربول
- Stony Brook Algorithm Repository من قبل Steven S. Skiena, قسم علوم الحاسب، جامعة نيويورك
- Complete DAA notes pdfs and ppt