You are currently viewing الخوارزمية
الخوارزمية
  • كاتب المشاركة:

خوارزمية

ما هى؟

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

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

و قد أثُبت أنه لاحاجة لتراكيب إضافية، واستخدام هذه التراكيب الثلاث يسهل فهم الخوارزمية واكتشاف الأخطاء الواردة فيها وتغييرها،

تعريف رسمي

على الرغم من عدم وجود إجماع رسمي على تعريف مناسب للخوارزمية، فيمكن صياغة تعريف غير رسمي لها عن طريق اعتبارها “مجموعة من القواعد التي تعبر عن سلسلة محددة من العمليات”

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

بالنسبة للآخرين فإن البرنامج هو فقط خوارزمية إذا كان ينفذ عدد من الخطوات الحسابية،

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

لا يوجد إنسان يمكنه أن يكتب بسرعة كافية، أو لمدة طويلة بما فيه الكفاية، أو صغيرة بما يكفي ( “أصغر وأصغر من دون حد ،،،هل كنت ستجرب محاولة الكتابة على الجزيئات، على الذرات، أو حتى على الالكترونات “)أو أن تجرب أن تسرد كافة أعضاء مجموعة غير نهائية من الأعداد قابل للتعداد وتكتب أسمائهم،

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

مصطلح “قابل للتعداد بلا حدود” يعني معدود باستخدام الأعداد الصحيحة ربما تمتد لما لا نهاية”، وبالتالي، الخوارزمية تعني تعليمات لعملية “خلق” الأعداد الصحيحة الإخراج من عدد صحيح من مدخلات اعتباطية أو الأعداد الصحيحة التي من الناحية النظرية، يمكن اختيارها من 0 لما لا نهاية، وبالتالي خوارزمية يمكن أن تكون معادلة جبرية مثل ص = م + ن اثنان — إعتباطى”متغيرات المدخلات م ن والتي تنتج ناتج ذ، لكن مختلف المؤلفين حاولوا تعريف مفهوم يشير أن الكلمة تعني أكثر من ذلك بكثير، وهو أمر بناء على أمر

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

إضفاء الطابع الرسمي

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

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

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

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

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

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

ويمكن التعبير عن الخوارزميات في العديد من أنواع التدوينات، بما في ذلك اللغة الطبيعية و أشباه الكود، المخططات الانسيابية، دراكون-الرسم البياني ولغات البرمجة أو جداول التحكم (التي تتم معالجتها بالمترجمين الفوريين)،

تمثيلها

خريطة انسيابية تمثل خوارزم إقليدس لحساب القاسم الأكبر المشترك (g،c،d،) بين عددين a وb في موضعين يدعيان A وB، يتم الخوارزم عبر سلسلة من عمليات الطرح المتتالية في حلقتين: إذا كان الفحص B ≤ A ينتج عنه “نعم” (أو قضية صائبة) فإن العدد b في الموضع B أقل من أو يساوي العدد a في الموضع A)ثم يعين الخوارزم B ← B – A (بمعنى أن العدد b – a يبدل القيمة السابقة b)، بالمثل، إذا كان A > B فإن A ← A – B،حينما تصبح (محتويات) B مساوية لـ 0، وينجم عن ذلك قاسم مشترك أكبر في A،

1- خرائط الانسياب: هو تمثيل مصور للخوارزمية يوضح خطوات حل المشكلة من البداية للنهاية مع إخفاء التفاصيل لإعطاء الصورة العامة للحل، ويمكن تصنيفها لأصناف أربعة هي:

  • مخططات سير العمليات التتابعية،
  • مخططات سير العمليات ذات التفرع،
  • مخططات سير العمليات ذات التكرار والدوران،
  • مخططات سير العمليات ذات الاختيار،

2-الشفرة الوصفية: وصف الخوارزمية بلغات البشر كالإنجليزية أو الفرنسية أو العربية بطريقة مشابهه للغات البرمجة و لكن بدون أي انتماء لها، البعض يستخدم الكثير من التفاصيل (لتصبح قريبة من لغات البرمجة) والبعض الآخر يستخدم القليل (أي أقرب للغة البشر)،،، فلا قاعدة معينة لكتابة هذا النوع من الشفرات،

خوارزميات حاسوبية

في أنظمة الحاسوب, يمثل الخوارزم في الأساس صورة من منطق أعيد كتابته بواسطة (برمجيات) ليصبح أكثر فعالية يمكن استغلاله في الحواسيب والحصول على النتائج (مخرجات) من بيانات معطاة (مدخلات)،

قواعد البرمجة

هناك أربعة طرق يستعان بها في الخوارزم البرمجي هي:

  • التكرار

مثال لحساب 2 أس 50،

  • التفرع

وتمكننا من ادخال معادلات معقدة للحاسوب ليقوم بمعالجتها بطريقة آلية،

  • الاختيار

فائدة هذة الخاصية تظهر في ترتيب اعداد بطريقة تنازلية أو العكس،

  • التتابع

تتابع الاوامر حيث ينفذها جهاز الحاسوب حسب الترتيب،

خوارزمية إقليدس

تظهر خوارزمية إقليدس في المسألة الثانية من كتابه (“نظرية الأعداد الأساسية”)، يعرض إقليدس المسألة: “إذا كان لدينا عددان أوليان فيما بينهما، لإيجاد قياسهما المشترك الأكبر”، يقوم بتعريف “العدد بأنه متعدد مؤلف من وحدات”:، عدد حسابي، عدد موجب لا يتضمن الصفر، ومن أجل “القياس” فيعني أن نضع قطعة قياس طولية s بشكل متعاقب (q من المرات) على طول القطعة الأطول l حتى يتبقى الجزء r أقل من القطعة الأقصر s، في العبارات الحديثة نقول، الباقي r = l – q*s، q هي حاصل القسمة, r “باقي القسمة”, الجزء الكسري المتبقي بعد إجراء القسمة،

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

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

تسريع الإف إف تي

لإضفاء التحسينات الممكنة حتى في بعض الخوارزميات “المبنية بشكل جيد”، وهذا ابتكار هام يتعلق بخوارزميات الإف إف تي (التي تستخدم في مجال معالجة الصور)، قد تمكن من خفض عدد مرات المعالجة بمعامل يصل إلى 10000 مرة، أثر هذا التسريع إلى تمكين الأجهزة الحاسوبية المحمولة (فضلا عن غيرها من الأجهزة) من استهلاك طاقة أقل،

اترك رد