في هذا الموضوع ناقشنا مقدمة الخوارزمية (algorithm) والتي تمثل طريقة حل أي مشكلة. من الضروري أن نفهم كيف يقوم الرجل العادي بتطبيق الخوارزمية في كل مكان لإكمال أي عمل في الحياة اليومية؛ إنه شائع جدًا. إنه إلزامي للغاية لإكمال العمل بشكل فعال. لنفترض أن مزارعًا يبيع محصولًا في السوق ويكسب بعض المال؛ تحدث العديد من الحالات حيث يفكر المزارع في أفضل طريقة لتحقيق ربح ضخم.

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

قبل كتابة أي منطق بأي لغة برمجة، يجب أن نفكر في الأشياء التالية.

صحة البرنامج: يجب أن تكون مخرجاتك صحيحة بأي حال من الأحوال؛ قبل تطبيق أي خوارزمية، تأكد من أن الناتج الخاص بك صحيح بنسبة مئوية؛ خلاف ذلك، لا يوجد معنى للخوارزمية أو البرنامج الخاص بك.

الوقت  (time): الوقت ضروري في كل مكان؛ عليك فقط الاهتمام بالوقت الذي تستغرقه الخوارزمية لإكمال العمل.

التعقيد (complexity): ما مقدار تعقيد الخوارزمية الخاصة بك من حيث المنطق، والوقت المستغرق، والذاكرة المستخدمة لإكمال العمل؟

مكونات الخوارزمية

كما ناقشنا سابقًا في مقدمة للخوارزميات أن لها مكونات مختلفة، والتي تختلف عن بعضها البعض في مواقف مختلفة. بشكل عام، تتكون الخوارزميات من أربعة مكونات:

1. المدخلات أو التغذية الراجعة

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

2. سلسلة من الخوارزميات

بعد الحصول على مدخلات ومقدمة للخوارزميات، فإن الخطوة التالية التي يجب اتباعها هي تسلسل الخطوات الموجودة في الخوارزمية؛ وفقًا للإخراج الذي نريده، يتعين علينا ترتيب الخطوات الموجودة في الخوارزمية.

3. شرط  الخوارزمية (condition)

في بعض الأحيان يتعين علينا التحقق من الشروط وفقًا للإدخال؛ على سبيل المثال، يتحقق  ) IRCTC تطبيق حجز تذاكر السكك الحديدية الهندية) مما إذا كان الشخص مؤهلاً للحصول على خصم على أساس العمر عن طريق استخدام Age كشيكات خوارزمية إدخال إذا كان الشخص أكبر من 65 أم لا. إذا كان الشخص أكبر من 65 عامًا، فسيكون مؤهلاً للحصول على خصم. وإلا لا.

 4. تكرار الخوارزمية (repetition)

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

تطبيقات الخوارزمية  (applications of algorithm)

إذا كان الموظف قادمًا من المكتب، فسوف يفكر في الوصول إلى المنزل في أقرب وقت ممكن، وسيحاول اتخاذ أقصر طريق لتغطية المسافة.

فيما يلي بعض حالات الاستخدام المهمة جدًا حيث تم استخدام الخوارزمية.

إذا كنت تبحث عن أي عنصر على أي موقع تسوق في المرة القادمة، فستحصل على نوع عنصر مشابه لاقتراح.

إذا كنت تشاهد أي مقطع فيديو على YouTube في المرة القادمة، فستحصل على اقتراحات لأنواع مماثلة لمقاطع الفيديو الموصى بها لك.

هل فكرت في كيفية عمل محرك بحث Google ولماذا تظهر النتائج خلال ثوانٍ؟

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

نظام التوصية  (recommender system)

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

خصائص الخوارزمية  Characteristics of Algorithm

خصائص الخوارزمية (Characteristics of Algorithm

فيما يلي الخصائص المذكورة:

المحدودية: يجب أن تكتمل الخوارزمية في وقت واحد معين، وهذا مهم جدًا لأي خوارزمية؛ خلاف ذلك، ستذهب الخوارزمية الخاصة بك في حالة لانهائية، ولن تكتمل أبدًا.

الوضوح: يجب أن تكون كل algorithm واضحة ولا لبس فيها.

الفعالية: يجب أن يكون كل سطر من الخوارزمية ضروريًا. يجب أن نحاول الكتابة بطريقة بسيطة حتى تكون أساسية.

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

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

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

إيجابيات وسلبيات الخوارزميات

إيجابيات وسلبيات الخوارزميات

فيما يلي المزايا والعيوب:

الإيجابيات

المزايا المختلفة لاستخدام مذكورة أدناه:

من السهل جدًا فهم الخوارزميات ويمكن كتابتها بلغة بسيطة يمكن لأي شخص فهمها.

يمكن تقسيم الخوارزميات إلى أجزاء مختلفة، والتي سيكون من السهل تنفيذها عمليًا.

باستخدام الخوارزميات، يمكننا بسهولة فهم التسلسل الذي يجب اتباعه في المعالجة.

السلبيات

فيما يلي بعض العيوب الرئيسية:

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

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

من المعقد إظهار الوظائف لكل خطوة من خطوات مقدمة الخوارزميات، ومن الصعب فهم كل تدفق في مصطلح الحلقة والفرع.

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

الالغوريتم1: أضف رقمين أدخلهما المستخدم

Step 1: Start

Step 2: Declare variables num1, num2 and sum.

Step 3: Read values num1 and num2.

Step 4: Add num1 and num2 and assign the result to sum.

        sum←num1+num2

Step 5: Display sum

Step 6: Stop

الالغوريتم 2: ابحث عن أكبر رقم بين ثلاثة أرقام

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

منشور ذات صلة
frameworks 2 Minutes

أفضل فریم وركات

فردوس مزرعاوي

الفریم ورك منصة لتطویر البرمجیات. مثلا كل frame work، یشمل عدة فانكشن، كلس، وما شابه بشكل افتراضی، وبإمكان المبرمج استخدمها للبرمجة بطرق أسهل. أي باستخدام الفریم وركات المختلفة، يتجنب كتابة كود متكرر.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة