العودة إلى الدورة

الدرس السابع والخمسون: مقدمة إلى فئات التعقيد: P مقابل NP

الخوارزميات: من الصفر إلى الاحتراف (دليل المبتدئين)

57. مقدمة إلى فئات التعقيد: P مقابل NP

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

فئة P (Polynomial Time)

P تعني 'وقت حدودي (Polynomial time)'. تتضمن هذه الفئة جميع مشاكل القرار (المشاكل ذات الإجابة بنعم/لا) التي يمكن حلها بواسطة آلة تورينج حتمية (أي، جهاز كمبيوتر قياسي) في وقت حدودي، مما يعني O(N^k) لبعض الثابت k.

  • أمثلة: الفرز، البحث، إيجاد شجرة MST.

فئة NP (Non-deterministic Polynomial Time)

تتضمن NP جميع مشاكل القرار التي يمكن التحقق من حلها في وقت حدودي. ملاحظة: NP لا تعني 'Non-Polynomial'.

  • إذا سلمك شخص ما حلاً محتملاً لمشكلة NP، يمكنك التحقق بسرعة مما إذا كان صحيحاً.
  • مثال: مشكلة البائع المتجول (TSP). إيجاد أقصر طريق صعب، لكن التحقق من أن مساراً مقترحاً أقصر من X سهل.

مشكلة P مقابل NP (سؤال المليون دولار)

هل P = NP؟ هل يمكن أيضاً حل كل مشكلة يكون حلها سريع التحقق بسرعة؟ يعتقد معظم علماء الحاسوب أن P ≠ NP، لكن هذا يظل غير مثبت. مشكلات NP-Complete هي المشكلات 'الأصعب' في NP.