رياضة

الخوارزميات

الخوارزميات

خصائص الخوارزميات

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

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

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

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

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

الجدول التالي يبين الأشكال الرمزية الاصطلاحية المستعملة لرسم المخطط البرمجي:

الخوارزميات في علوم الحاسب

  • هل للخوارزميات علاقة بعلوم الحاسب : هل تحس الآن أن بعض الأفكار تكونت برأسك عن أهمية الخوارزميات بعلوم الحاسب؟ أحب إخبارك أن من أهم أماكن تطبيق علم الخوارزميات هي نظم التشغيل (الويندوز و اللينكس و غيرهما) و المعالجات، كما يتم تطبيق الخوارزميات أيضاً بذواكر الوصول العشوائي ( RAM). فكر قليلا و ستعلم أن كل هذه الكائنات تحتاج أن تختار أفضل طريقة حتى تنفذ أمراً ما.
  • هل تعلم أنك عندما تستخدم محرك البحث قووقل، تكتب ما تريد و تضغط على بحث تقوم بتنفيذ خورازمية أو خوارزميات بحث تبحث لك عن ما تريد خلال أجزاء من الثانية؟؟ نعم إنّهُ علم الخوارزميات.
  • هل سمعت أحد الموظفين يتذمر من بطئ نظام ما عند إجراء عملية البحث؟ غالباً ما تحل المشكلة بتحليل خوارزمية البحث، و هكذا نرى أنه كلما كان حجم البيانات أكبر و كلما كان التطبيق أو البرنامج أكبر و زاد عدد المستخدمين، كانت حوجتك إلى علم الخوارزميات أشد.
  • فإذا كنت تسعى إلى الفوز بالمسابقات البرمجية أو تسعى إلى إصدار برنامج مميز يؤدي مهامة بفعالية فإننا في مدونة علوم نؤكد لك أن علم الخوارزميات سيكون عوناً كبيراً لك في طريق النجاح.

امثلة على الخوارزميات

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

مثال على الخوارزميات بالكود التوضيحي
اكتب خوارزمية للعثور على أكبرها بين ثلاثة أرقام مختلفة تم إدخالها من قبل المستخدم.

Step 1: Start
.Step 2: Declare variables a,b and c
.Step 3: Read variables a,b and c
Step 4: If a>b
If a>c
.Display a is the largest number
Else
.Display c is the largest number
Else
If b>c
.Display b is the largest number
Else
.Display c is the greatest number
Step 5: Stop

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

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

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

مثال: خوارزمية الاستيقاظ التي تبين الخطوات من لحظة الاستيقاظ من النوم إلى حين الذهاب إلى العمل:

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

يُلاحَظ في هذا المثال أنّ ترتيب الخطوات وعدم الاستغناء عن أي خطوة أمر مهمّ لتنفيذ الخوارزمية وإتمامها. صياغة الخوارزمية بلغة رمزية خاصة: تُبنى هذه الطريقة على أسس ومفاهيم رياضية، ومن أهم الطرق الرمزية التي تمثّل الخوارزميات هي لغات البرمجة سي++ (بالإنجليزيّة: ++C)، والترميز الرياضي للمفاهيم بعدة أساليب كالأسلوب البياني.

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

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

مجموعة الخوارزميات في جافا ( Java Algorithms Collections )

الكلاس Collections يحتوي على دوال ثابتة نوعها static. هذه الدوال تساعد كثيراً في الوصول إلى العناصر و التلاعب بها سواء كنت تتعامل مع الكلاسات التي ترث من الإنترفيس Collections أو مع الكلاسات التي ترث من الإنترفيس Map.إذاً هذه الدوال تغنيك عن كتابة خوارزميات صعبة و معقدة, لذلك سميت مجموعة الخوارزميات ( Algorithms Collection ).ميزة أخرى يقدمها لك الكلاس Collections هي المزامنة ( Synchronization), ستعرف أهمية المزامنة لاحقاً في هذا الدرس.

أخطاء محتملة

  • بعض الدوال التي يملكها ترمي الإستثناء UnsupportedOperationException إذا تم استخدامهم بطريقة خاطئة.
  • يرمى الإستثناء ClassCastException في حال كان لا يمكن تحويل نوع الكائن إلى نوع آخر.

طريقة التعامل مع مجموعة الخوارزميات
للتعامل مع الدوال الموجودة في مجموعة الخوارزميات عليك إتباع الخطوات التالية:

  • إستدعاء الكلاس Collections, أي يجب أن تفعل له import.
  • إستدعاء أي دالة تريد منه بشكل مباشر, أي ضع الكلمة Collections تليها نقطة, تليها إسم الدالة التي تريد.

ما هي الخوارزميات في الرياضيات

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

 

 

 

السابق
الرفق بالحيوان
التالي
المصباح الكهربائي

اترك تعليقاً