شرح خوارزميات القوة الغاشمة

خوارزميات القوة الغاشمة هي بالضبط ما تبدو عليه - طرق مباشرة لحل مشكلة تعتمد على قوة الحوسبة المطلقة وتجربة كل الاحتمالات بدلاً من التقنيات المتقدمة لتحسين الكفاءة.

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

لذا تعيد تعيين جميع الأرقام إلى 0 وتجربها واحدة تلو الأخرى: 0001 ، 0002 ، 0003 ، وهكذا حتى تفتح. في أسوأ السيناريوهات ، قد يستغرق الأمر 104 أو 10000 محاولة للعثور على مجموعتك.

من الأمثلة الكلاسيكية في علوم الكمبيوتر مشكلة البائع المتجول (TSP). افترض أن بائعًا يحتاج إلى زيارة 10 مدن في جميع أنحاء البلاد. كيف يمكن تحديد الترتيب الذي يجب أن تتم زيارة هذه المدن به بحيث يتم تقليل المسافة الإجمالية المقطوعة؟

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

التعقيد الزمني للقوة الغاشمة هو O (m n ) ، والذي يُكتب أحيانًا كـ O (n * m). لذلك ، إذا أردنا البحث عن سلسلة من الأحرف "n" في سلسلة من الأحرف "m" باستخدام القوة الغاشمة ، فسوف يتطلب الأمر منا محاولات n * m.

مزيد من المعلومات حول الخوارزميات

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

إليك كيف تحددهم ويكيبيديا:

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

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

  1. الوضوح: كل خطوة في العملية مذكورة بدقة.
  2. الحوسبة الفعالة: يمكن تنفيذ كل خطوة في العملية بواسطة جهاز كمبيوتر.
  3. المحدودية: سيتم إنهاء البرنامج بنجاح في النهاية.

تتضمن بعض أنواع الخوارزميات الشائعة ما يلي:

  • خوارزميات الفرز
  • خوارزميات البحث
  • خوارزميات الضغط.

تشمل فئات الخوارزميات

  • رسم بياني
  • البرمجة الديناميكية
  • فرز
  • يبحث
  • سلاسل
  • رياضيات
  • الهندسة الحسابية
  • الاقوي
  • متنوع.

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

كفاءة

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

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

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

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

كويكسورت

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

ترتيب دمج

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

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

كتب عن الخوارزميات في JavaScript:

هياكل البيانات في JavaScript

  • كتاب مجاني يغطي هياكل البيانات في JavaScript
  • GitBook

تعلم هياكل وخوارزميات بيانات JavaScript - الإصدار الثاني

  • يغطي البرمجة الموجهة للكائنات ، الوراثة النموذجية ، خوارزميات الفرز والبحث ، الفرز السريع ، الفرز المدمج ، أشجار البحث الثنائية ومفاهيم الخوارزمية المتقدمة
  • أمازون
  • ردمك 13: 978-1785285493

هياكل البيانات والخوارزميات باستخدام JavaScript: جلب أساليب الحوسبة الكلاسيكية إلى الويب

  • يغطي الخوارزميات العودية والفرز والبحث والقوائم المرتبطة وأشجار البحث الثنائية.
  • أمازون
  • ردمك 13: 978-1449364939