ما هي خوارزميات الكمبيوتر ، وكيف تعمل؟
ما لم تكن في الرياضيات أو البرمجة ، قد تكون كلمة "خوارزمية" كلمة يونانية بالنسبة لك ، ولكنها واحدة من اللبنات الأساسية لكل ما تستخدمه لقراءة هذه المقالة. فيما يلي شرح سريع لما هي عليه وكيف تعمل.
إخلاء المسؤولية: لست مدرسًا للرياضيات أو علوم الكمبيوتر ، لذلك ليست كل المصطلحات التي أستخدمها فنية. هذا لأنني أحاول شرح كل شيء في اللغة الإنجليزية البسيطة لأن الناس ليسوا مرتاحين تمامًا للرياضيات. ومع ذلك ، هناك بعض الرياضيات المعنية ، وهذا أمر لا مفر منه. مهووس الرياضيات ، لا تتردد في تصحيح أو شرح أفضل في التعليقات ، ولكن من فضلك ، أبق الأمر بسيطًا بالنسبة لمحبوبين رياضياً بيننا.
الصورة بواسطة ايان روتسالا
ما هي الخوارزمية?
تحتوي كلمة "خوارزمية" على أصل مشابه لـ "الجبر" ، إلا أن هذا يشير إلى عالم الرياضيات العربي نفسه ، الخوارزمي (مجرد أمر مشوق). الخوارزمية ، لغير المبرمجين بيننا ، هي مجموعة من التعليمات التي تأخذ مدخلات ، A ، وتوفر مخرجات ، B ، التي تغير البيانات المعنية بطريقة ما. الخوارزميات لديها مجموعة واسعة من التطبيقات. في الرياضيات ، يمكنهم المساعدة في حساب الوظائف من النقاط في مجموعة البيانات ، من بين أشياء أكثر تقدمًا. بالإضافة إلى استخدامها في البرمجة نفسها ، فإنها تلعب أدوارًا رئيسية في أشياء مثل ضغط الملفات وتشفير البيانات.
مجموعة أساسية من التعليمات
لنفترض أن صديقك يلتقي بك في متجر بقالة وتوجهه نحوك. أنت تقول أشياء مثل "تدخل من خلال الأبواب اليمنى" ، "مرر قسم الأسماك على اليسار" ، و "إذا رأيت الألبان ، مررتني." تعمل الخوارزميات على هذا النحو. يمكننا استخدام مخطط انسيابي لتوضيح التعليمات وفقًا للمعايير التي نعرفها مسبقًا أو معرفة ذلك أثناء العملية.
(الصورة تحت عنوان "Icebreaking Routine" EDIT: بإذن من Trigger و Freewheel)
من START ، ستتوجه إلى المسار ، واعتمادًا على ما يحدث ، ستتبع "التدفق" إلى نتيجة نهائية. تعد "مخططات الانسياب" أدوات مرئية يمكن أن تمثل بشكل مفهوم مجموعة من الإرشادات التي تستخدمها أجهزة الكمبيوتر. وبالمثل ، تساعد الخوارزميات في القيام بنفس الشيء مع المزيد من النماذج القائمة على الرياضيات.
الرسوم البيانية
دعونا نستخدم الرسم البياني لتوضيح الطرق المختلفة التي يمكننا بها إعطاء التوجيهات.
يمكننا التعبير عن هذا الرسم البياني كصلة بين جميع نقاطه. لإعادة إنتاج هذه الصورة ، يمكننا تقديم مجموعة من التعليمات لشخص آخر.
طريقة 1
يمكننا تمثيل هذا كسلسلة من النقاط ، وستتبع المعلومات النموذج القياسي للرسم البياني = (x1، y1)، (x2، y2)،…، (xn، yn).
الرسم البياني = (0،0) ، (3،0) ، (3،3) ، (5،5) ، (7،10) ، (8،7) ، (9،4) ، (10،1)
من السهل رسم كل نقطة ، واحدة تلو الأخرى ، وربطها بالنقطة السابقة. ومع ذلك ، تخيل رسمًا بيانيًا بألف نقطة أو أجزاء متعددة تسير في كل اتجاه. هذه القائمة لديها الكثير من البيانات ، أليس كذلك؟ ومن ثم فإن الحاجة إلى ربط كل واحد ، في وقت واحد ، يمكن أن يكون بمثابة ألم.
الطريقة الثانية
شيء آخر يمكننا القيام به هو إعطاء نقطة بداية ، وانحدار الخط الفاصل بينها وبين النقطة التالية ، والإشارة إلى المكان المتوقع للنقطة التالية باستخدام الشكل القياسي للرسم البياني = (نقطة البداية ، [m1 ، x1 ، h1 ] ، [، mn ، xn ، hn]. هنا ، يمثل المتغير "m" ميل الخط ، ويمثل "x" اتجاه العد (سواء x أو y) ، و "h" يخبرك كيف العديد من الاعتماد في الاتجاه المذكور ، يمكنك أيضا تذكر لرسم نقطة بعد كل حركة.
graph = (0،0)، [0، x، 3]، [0، y، 3]، [1، x، 2]، [2.5، x، 2]، [-3، x، 1]، [-3، x، 1]، [-3، x، 1]
سوف ينتهي بك الأمر مع نفس الرسم البياني. يمكنك أن ترى أن المصطلحات الثلاثة الأخيرة في هذا التعبير هي نفسها ، لذلك قد نتمكن من تقليص ذلك بقول "تكرار ذلك ثلاث مرات" بطريقة ما. لنفترض أنه في أي وقت ترى فيه المتغير "R" ، يعني ذلك تكرار آخر شيء. نستطيع فعل ذلك:
graph = (0،0)، [0، x، 3]، [0، y، 3]، [1، x، 2]، [2.5، x، 2]، [-3، x، 1]، [R = 2]
ماذا لو كانت النقاط الفردية لا تهم حقًا ، وفقط الرسم البياني نفسه؟ يمكننا دمج هذه الأقسام الثلاثة الأخيرة مثل:
graph = (0،0)، [0، x، 3]، [0، y، 3]، [1، x، 2]، [2.5، x، 2]، [-3، x، 3]
إنها تقلل الأشياء قليلاً من حيث كانت من قبل.
الطريقة الثالثة
دعونا نحاول القيام بذلك بطريقة أخرى.
y = 0، 0≤x≤3
س = 0 ، 0≤y≤3
y = x، 3≤x≤5
y = 2.5x-7.5، 5≤x≤7
y = 3x + 29، 7≤x≤8
y = 3x + 29، 8≤x≤9
y = 3x + 29 ، 9≤x≤10
هنا لدينا ذلك في شروط جبرية نقية. مرة أخرى ، إذا كانت النقاط نفسها لا تهم وفقط الرسم البياني ، يمكننا دمج العناصر الثلاثة الأخيرة.
y = 0، 0≤x≤3
س = 0 ، 0≤y≤3
y = x، 3≤x≤5
y = 2.5x-7.5، 5≤x≤7
y = 3x + 29، 7≤x≤10
الآن ، الطريقة التي تختارها تعتمد على قدراتك. ربما تكون رائعًا في الرياضيات والرسوم البيانية ، لذلك يمكنك اختيار الخيار الأخير. ربما تكون جيدًا في التنقل ، لذلك يمكنك اختيار الخيار الثاني. لكن في عالم الكمبيوتر ، أنت تقوم بالعديد من أنواع المهام المختلفة ولا تتغير قدرة الكمبيوتر. لذلك ، يتم تحسين الخوارزميات للمهام التي تكملها.
نقطة أخرى مهمة يجب ملاحظتها هي أن كل طريقة تعتمد على مفتاح. كل مجموعة من التعليمات غير مجدية ما لم تكن تعرف ماذا تفعل بها. إذا كنت لا تعرف أنه من المفترض أن تقوم بتخطيط كل نقطة وتوصيل النقاط ، فإن أول مجموعة من النقاط لا تعني شيئًا. ما لم تكن تعرف ماذا يعني كل متغير في الطريقة الثانية ، فلن تعرف كيفية تطبيقها ، تشبه إلى حد كبير مفتاح التشفير. هذا المفتاح هو أيضًا جزء لا يتجزأ من استخدام الخوارزميات ، وغالبًا ما يكون هذا المفتاح موجودًا في المجتمع أو عبر "قياسي".
ضغط الملفات
عند تنزيل ملف .zip ، يمكنك استخراج المحتويات بحيث يمكنك استخدام كل ما بداخلها. في الوقت الحاضر ، يمكن لمعظم أنظمة التشغيل الغوص في ملفات .zip كما لو كانت مجلدات عادية ، تفعل كل شيء في الخلفية. على جهاز Windows 95 الخاص بي قبل عقد من الزمن ، كان علي استخراج كل شيء يدويًا قبل أن أرى أي شيء أكثر من أسماء الملفات في الداخل. ذلك لأن ما تم تخزينه على القرص كملف .zip لم يكن في صيغة قابلة للاستخدام. فكر في أريكة قابلة للطي. عندما ترغب في استخدامه كسرير ، يجب عليك إزالة الوسائد وتطويلها ، والتي تأخذ مساحة أكبر. عندما لا تحتاجها ، أو تريد نقلها ، يمكنك طيها احتياطيًا.
يتم ضبط خوارزميات الضغط وتحسينها خصيصًا لأنواع الملفات التي تستهدفها. تستخدم تنسيقات الصوت ، على سبيل المثال ، طريقة مختلفة لتخزين البيانات التي ، عند فك ترميزها بواسطة برنامج الترميز الصوتي ، ستعطي ملف صوت مشابهًا لموجة الموجة الأصلية. لمزيد من المعلومات حول هذه الاختلافات ، راجع مقالنا السابق ، ما هي الاختلافات بين جميع تلك التنسيقات الصوتية؟ تحتوي تنسيقات الصوت غير المضغوطة وملفات .zip على شيء واحد مشترك: كلاهما ينتجان البيانات الأصلية في شكلها الدقيق بعد عملية إلغاء الضغط. تستخدم برامج الترميز الصوتية الضائعة وسائل أخرى لتوفير مساحة على القرص ، مثل تشذيب الترددات التي لا يمكن سماعها بواسطة آذان البشر وتلطيف شكل الموجة في الأقسام للتخلص من بعض التفاصيل. في النهاية ، في حين قد لا نتمكن من سماع الفرق بين مسار MP3 و CD ، هناك بالتأكيد نقص في المعلومات في السابق.
تشفير البيانات
تستخدم الخوارزميات أيضًا عند تأمين البيانات أو خطوط الاتصال. بدلاً من تخزين البيانات بحيث تستخدم مساحة أقل على القرص ، يتم تخزينها بطريقة لا يمكن اكتشافها بواسطة البرامج الأخرى. إذا قام شخص ما بسرقة محرك الأقراص الثابت الخاص بك وبدء مسحه ضوئيًا ، فيمكنه التقاط البيانات حتى عند حذف الملفات لأن البيانات نفسها لا تزال موجودة ، على الرغم من اختفاء موقع إعادة التوجيه إليه. عندما يتم تشفير البيانات ، فإن كل ما يتم تخزينه لا يبدو كما هو. عادة ما تبدو عشوائية ، كما لو أن التجزئة قد تراكمت بمرور الوقت. يمكنك أيضًا تخزين البيانات وجعلها تظهر كنوع آخر من الملفات. ملفات الصور والملفات الموسيقية جيدة لهذا ، لأنها يمكن أن تكون كبيرة جدا دون توجيه الشك ، على سبيل المثال. ويتم كل هذا باستخدام خوارزميات رياضية تأخذ نوعًا من المدخلات وتحويلها إلى نوع آخر من المخرجات. لمزيد من المعلومات حول كيفية عمل التشفير ، تحقق من HTG يوضح: ما هو التشفير وكيف يعمل?
الخوارزميات هي أدوات رياضية توفر مجموعة متنوعة من الاستخدامات في علوم الكمبيوتر. وهي تعمل على توفير مسار بين نقطة البداية ونقطة النهاية بطريقة متسقة ، وتقديم الإرشادات لمتابعتها. اعرف أكثر مما أبرزنا؟ تبادل التفسيرات الخاصة بك في التعليقات!