صنف NP والاكتمال في NP ومبرهنة كوك-ليفن {#cooklevinchap }
صنف NP والاكتمال في NP ومبرهنة كوك-ليفن
- تقديم الصنف الذي يضمّ عددًا كبيرًا من المسائل الحاسوبية المهمة \
- الاكتمال في (NP-completeness): دليل على أنّ مسألة ما قد تكون باهظة الحوسبة. \
- مسألة مقابل .
"في هذه الورقة نقدّم مبرهنات تُشير، لكنّها لا تُفيد، إلى أنّ هذه المسائل،وكثير غيرها، ستظلّ باهظة الحوسبة إلى الأبد", ريتشارد كارب، 1972
"من المُحزن أن نقول، لكنّ ذلك قد يستغرق سنواتٍ كثيرة أخرى، إن وُجد أصلًا، قبل أن نفهم حقًّا «القدرة السّريّة للاثنين»... 2-SAT سهل، و3-SAT صعب، والمطابقة ثنائية الأبعاد سهلة، والمطابقة ثلاثية الأبعاد صعبة. لماذا؟ آه، لماذا؟" يوجين لوغلر
حتى الآن بيّنا أنّ 3SAT ليس أصعب من المعادلات التربيعية، ولا المجموعة المستقلّة (Independent Set)، ولا القطع الأقصى (Maximum Cut)، ولا أطول مسار (Longest Path). ولكنّ بيّان أنّ هذه المسائل متكافئة حاسوبيًّا (computationally equivalent) يتطلّب إعطاء اختزالات في الاتجاه المعاكس أيضًا، أي اختزال كلٍّ من هذه المسائل إلى 3SAT كذلك. وي تبيّن أنّه يمكن اختزال هذه المسائل كلّها إلى 3SAT في ضربة واحدة.
وفي الحقيقة تمتدّ هذه النتيجة إلى ما هو أبعد بكثير من هذه المسائل بعينها. فجميع المسائل التي ناقشناها في الاختزال في زمن متعدد الحدود، وعدد كبير جدًا من المسائل الأخرى، تتشارك صفةً مشتركة واحدة: إنّها جميعًا مسائل بحث (search)، أي أنّ الهدف هو أن نقرّر، بالنظر إلى مدخل ، ما إذا كان ثمّة حلّ (solution) يحقّق شرطًا يمكن التحقّق منه في وقت متعدد الحدود. على سبيل المثال، في 3SAT يكون المدخل صيغةً والحلّ إسنادًا (assignment) للمتغيّرات؛ وفي Max-Cut يكون المدخل رسمًا بيانيًا (graph) والحلّ قطعًا (cut) في الرسم البياني؛ وهكذا دواليك. وي تبيّن أنّ كلّ مسألة بحث من هذا النوع يمكن اختزالها إلى 3SAT.
في هذا الفصل سنرى تعريف صنف التعقيد - وهو من أهم التعريفات في هذا الكتاب، ومبرهنة كوك-ليفن - وهي من أهم البرهنات فيه. حدسيًا، يقابل الصنف صنف المسائل التي يكون فيها التحقّق من حلّ سهلًا (أي إنّ التحقّق يمكن أن يتمّ بخوارزمية تعمل في وقت متعدد الحدود). على سبيل المثال، إيجاد إسناد مُرضٍ (satisfying) لصيغة 2SAT أو 3SAT مسألة من هذا النوع، لأننا إذا أعطِينا إسنادًا لقيم المتغيّرات في صيغة 2SAT أو 3SAT أمكَنّا التحقّق بكفاءة من أنه يحقّق كل القيود. وبدقّة أكثر، هو صنف مسائل القرار (أي الدوال المنطقية أو اللغات) الموافقة لتحديد وجود حلّ من هذا النوع، وإنّنا سنرى في ماذا لو كان P=NP؟ أنّ مسائل القرار ومسائل البحث مترابطة إلى حدّ كبير.
وكما تبيّن أمثلة 2SAT و3SAT، فإنّ هناك بعض المسائل الحاسوبية (أي الدوال) الموجودة في لدينا لها خوارزمية تعمل في وقت متعدد الحدود، وبعضها الآخر لا نعرف له خوارزمية من هذا النوع. ومن الأسئلة المفتوحة الجوهرية ما إذا كانت كلّ الدوال في لها خوارزمية تعمل في وقت متعدد الحدود، أو بمعنى آخر (لنستعمل قدرًا يسيرًا من الرياضيات) ما إذا كان . في هذا الفصل سنرى أنّ هناك بعض الدوال في التي هي، بمعنى معيّن، «الأصعب ضمن كلّه»، بالمعنى أنّه إذا كانت لدى إحدى هذه الدوال خوارزمية تعمل في وقت متعدد الحدود فإنّ كلّ دوال لها خوارزمية من هذا النوع. وتُعرَف هذه الدوال بأنّها -كاملة (NP complete). وتنصّ مبرهنة كوك-ليفن على أنّ 3SAT هي -كاملة. وباستعمال شبكة معقّدة من الاختزال في وقت متعدد الحدود، استنتج الباحثون من مبرهنة كوك-ليفن أنّ آلاف المسائل الحاسوبية من مختلف مجالات الرياضيات والعلوم الطبيعية والاجتماعية والهندسة وغيرها هي -كاملة. وتوفّر هذه النتائج دليلًا قويًّا على أنّه يتعذّر على خوارزمية تعمل في وقت متعدد الحدود أن تحلّ كلّ هذه المسائل في الحالة الأسوأ.

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

تعريف — NP
نقول إنّ تنتمي إلى إذا وُجد عدد صحيح ودالة بحيث ولكلّ ،
بعبارة أخرى، كي تنتمي إلى ، يجب أن توجد دالة تحقّق قابلة للحساب في وقت متعدد الحدود، بحيث إذا كان فيجب أن توجد (بطول متعدد الحدود في ) بحيث ، وإذا كان فإنّ ذلك يعني أنّ لكلّ من هذا النوع يكون . ولأنّ وجود هذه السلسلة يشهد بأنّ ، فإنّ يُشار إليها غالبًا بأنّها شهادة (certificate) أو شاهد (witness) أو برهان (proof) على أنّ .
انظر أيضًا الشكل التوضيحي لتجد رسمًا توضيحيًّا لـ تعريف — NP. واسم اختصار لعبارة «زمن متعدد الحدود غير الحتميّ (non-deterministic polynomial time)»، وهو اسم استُعمل لأسباب تاريخية؛ انظر الملاحظات الببليوغرافية. وأحيانًا ما تُسمّى السلسلة في المعادلة حلًّا (solution) أو شهادة (certificate) أو شاهدًا (witness) للمدخل .
تمرين محلول — تعريف بديل لـ
بيّن أنّ الشرط في تعريف — NP يمكن استبداله بالشرط بالنسبة إلى متعدّدي حدود ما. أي، اثبت أنّه لكلّ ، لدينا إذا وفقط إذا كانت هناك آلة تورينج (Turing machine) تعمل في وقت متعدد الحدود ومتعدّد حدود بحيث لكلّ يكون إذا وفقط إذا وُجدت بحيث بحيث .
الحل
اتجاه «فقط إذا» (أي أنّه إذا كان فإنّ هناك خوارزمية ومتعدّد حدود كما سبق) يتبع فورًا من تعريف — NP بت اختيار . أمّا اتجاه «إذا» فالفكرة فيه أنّه إذا كانت سلسلة بحجم لا يتجاوز حيث متعدّد حدود من الدرجة ، فإنّ هناك قيمة بحيث لكلّ يكون . وعليه يمكننا ترميز بسلسلة طولها بالضبط عبر حشوها (padding) بالرمز وبعدد مناسب من الأصفار. وعليه إذا كانت هناك خوارزمية ومتعدّد حدود كما سبق، فيمكننا تعريف خوارزمية تفعل الآتي على المدخل مع و :
-
إذا كان فإنّ يتجاهل ويعدّ على كلّ التي طولها لا يتجاوز ويُخرج إذا وُجدت بحيث . (ولأنّ فإنّ هذا يستغرق عددًا ثابتًا من الخطوات فقط.)
-
إذا كان فإنّ «يزيل الحشو» (strips out) بإسقاط كلّ الأصفار الموجودة في أقصى اليمين من حتى يصل إلى أوّل (ويُسقطه هو أيضًا) فيحصل على سلسلة . إذا كان فإنّ يُخرج .
ولأنّ يعمل في وقت متعدد الحدود، فإنّ يعمل في وقت متعدد الحدود أيضًا، وبحسب التعريف، لكلّ توجد بحيث إذا وفقط إذا وُجدت بحيث بحيث .
تعريف يعني أنّه لكلّ وسلسلة ، يكون إذا وفقط إذا وُجد برهان قصير وقابل للتحقّق منه بكفاءة لهذه الحقيقة. أي يمكننا التفكير في الدالة في تعريف — NP على أنّها خوارزمية مُتحقِّقة (verifier)، على نحو ما رأينا في برنامج هيلبرت ومبرهنة غودل في عدم الاكتمال. تتحقّق المُتحقِّقة ممّا إذا كانت سلسلة معطاة برهانًا صالحًا للعبارة «». وتتضمّن كلّ أنظمة البرهنة التي تُنظر في الرياضيات عمليًا فحوصًا سطرًا بسطر يمكن إنجازها في وقت متعدد الحدود. وعليه فإنّ جوهر هو طلب العبارات التي تمتلك براهين قصيرة (أي متعدّدة الحدود في حجم العبارات). وفي الحقيقة، كما سنرى في #chappvsnp، صاغ كورت غودل (Kurt Gödel) السؤال عمّا إذا كان على أنّه السؤال عمّا إذا كان «الجهد الذهني لرياضيّ [في إثبات البرهنات] يمكن استبداله تمامًا بآلة».
ملاحظة — ليست (بالضرورة) مغلقة تحت التكامل
التعريف تعريف — NP غير متماثل (asymmetric) بالمعنى أنّ هناك فرقًا بين الخرج والخرج . وينبغي أن تتأكّد من فهمك لماذا لا يضمن هذا التعريف أنّه إذا كان فإنّ الدالة (أي التحويل ) تنتمي هي أيضًا إلى .
وفي الواقع، يُعتقد بوجود دوال بحيث ولكن . على سبيل المثال، كما هو مبيّن أدناه، لدينا ، لكنّ الدالة التي على مدخل صيغة 3CNF تُخرج إذا وفقط إذا كانت غير مرضية (not satisfiable) لا يُعرف (ولا يُعتقد) أنّها تنتمي إلى . وهذا على النقيض من الصنف الذي مستوفٍ للشرط بأنّه إذا كان فإنّ تنتمي أيضًا إلى .
أمثلة على دوال في
نقدّم الآن بعض الأمثلة على دوال تنتمي إلى الصنف . ونبدأ بالمثال النموذجي وهو الدالة .
مثال —
تنتمي إلى ، لأنّ لكلّ صيغة ذات متغيّرًا، يكون إذا وفقط إذا وُجد إسناد مُرضٍ (satisfying assignment) بحيث ، ويمكننا التحقّق من هذا الشرط في وقت متعدد الحدود.
والمنطق أعلاه يوضّح لماذا تنتمي إلى ، لكنّ هذا هو مثالنا الأول، سنُطيل في شرح هذه النقطة الآن وسنعرض بكامل الصرامة، التمثيل الدقيق للشاهد والخوارزمية اللتين تُثبتان أنّ تنتمي إلى . ولأنّ إثبات انتماء الدوال إلى أمر إلى حدّ كبير مباشر، فلن نستخدم هذا القدر من التفصيل في الحالات القادمة، كما أنّ من حقّ القارئ تخطّي بقيّة هذا المثال.
باستعمال تمرين محلول — تعريف بديل لـ NP، فإنّه من المقبول أن يكون حجم الشاهد متعدّد الحدود في طول المدخل ، بدلًا من أن يكون بالضبط بالنسبة إلى عدد صحيح . وبالتحديد، يمكننا تمثيل صيغة 3CNF ذات متغيّرًا و بندًا (clause) على هيئة سلسلة طولها ، إذ إنّ كلًّا من البنود يتضمّن ثلاثة متغيّرات ونفيها، ويمكن تمثيل هوية كلّ متغيّر باستعمال . ونفترض أنّ كلّ متغيّر يشارك في بند ما (وإلّا فيمكن تجاهله) وبالتالي ، وهو ما يعني بالتحديد أنّ طول المدخل لا يقلّ عن ولا عن .
ويمكننا تمثيل إسناد إلى المتغيّرات باستعمال سلسلة طولها . والخوارزمية التالية تتحقّق ممّا إذا كان معطى يحقّق الصيغة :
خوارزمية — Verifier for
INPUT: 3CNF formula $\varphi$ on $k$ variables and with $m$ clauses, string $w \in \{0,1\}^k$
OUTPUT: $1$ iff $w$ satisfies $\varphi$
For{$j \in [m]$}
Let $\ell_1 \vee \ell_2 \vee \ell_3$ be the $j$-th clause of $\varphi$
If{$w$ violates all three literals}
return $0$
Endif
Endfor
Return $1$
يستغرق خوارزمية — Verifier for 3SAT وقتًا قدره لِتعداد كلّ البنود، ويعيد إذا وفقط إذا كانت تحقّق كلّ البنود.
إليك المزيد من الأمثلة على مسائل في . ولكلّ واحدة من هذه المسائل سنكتفي برسم مختصر لكيفية تمثيل الشاهد ولماذا يمكن التحقّق منه بكفاءة، لكنّ اشتقاق التفاصيل قد يكون طريقة جيدة للارتياح أكثر مع تعريف — NP:
-
تنتمي إلى ، لأنّ لكلّ مدخل من المعادلات التربيعية ذي متغيّرًا، يكون إذا وفقط إذا وُجد إسناد يحقّق . ويمكننا التحقّق من الشرط بأنّ يحقّق في وقت متعدد الحدود بأن نعدّ على كلّ المعادلات في ، وأن نُدخل لكلّ معادلة قيم ونتحقّق من أنّ مُحقَّقة.
-
تنتمي إلى ، لأنّ لكلّ رسم بياني وعدد صحيح ، يكون إذا وفقط إذا وُجدت مجموعة من رأسًا لا تحتوي أيّ زوج من الجيران في . ويمكننا التحقّق من الشرط بأنّ مجموعة مستقلّة (independent set) بحجم في وقت متعدد الحدود بأن نتحقّق أولًا من ثم نعدّ على كلّ الحوافّ في ، وأن نتحقّق لكلّ حافّة من أنّ أو .
-
تنتمي إلى ، لأنّ لكلّ رسم بياني وعدد صحيح ، يكون إذا وفقط إذا وُجد مسار بسيط في طوله على الأقلّ. ويمكننا التحقّق من الشرط بأنّ مسار بسيط طوله في وقت متعدد الحدود بأن نتحقّق من أنّ له الشكل حيث كلّ رأس في ، ولا يُكرَّر أيّ ، ولكلّ تكون الحافّة موجودة في الرسم البياني.
-
تنتمي إلى ، لأنّ لكلّ رسم بياني وعدد صحيح ، يكون إذا وفقط إذا وُجد قطع في يقطع حافّة على الأقلّ. ويمكننا التحقّق من الشرط بأنّ قطع قيمته على الأقلّ في وقت متعدد الحدود بأن نتحقّق من أنّ مجموعة جزئية من رؤوس وأن نعدّ على كلّ حوافّ في ، عدًّا لتلك الحوافّ التي يكون و أو العكس.
حقائق أساسيّة عن
تعريف هو أحد أهمّ تعريفات هذا الكتاب، ويستحقّ أن نخصّص له وقتًا من أجل استيعابه وإدماجه في بنائنا المعرفي. وتضع التمارين المحلولة التالية بعض الخصائص الأساسيّة لهذا الصنف. وكالمعتاد، أوصي بشدّة بأن يحاول القارئ حلّها بنفسه.
تمرين محلول — التحقّق ليس أصعب من الحلّ
اثبت أنّ .
الحل
لنفترض أنّ . ولنعرّف الدالة التالية : إذا وفقط إذا كان وكان . (تُخرج القيمة على كلّ المداخل الأخرى.) ولأنّ ، واضح أنّ بالإمكان حساب في وقت متعدد الحدود كذلك.
لنفترض أنّ سلسلة ما. إذا كان فإنّ . ومن جهة أخرى، إذا كان فإنّ ذلك يعني أنّ لكلّ يكون . وعليه، بأخذ (أي )، نرى أنّ تُحقّق المعادلة، ممّا يُثبت أنّ .
ملاحظة — لا تعني «غير متعدّدة الحدود!»
يظنّ الناس أحيانًا أنّ اختصار لعبارة «زمن غير متعدّد الحدود» (non-polynomial time). وكما بيّن تمرين محلول — التحقّق ليس أصعب من الحلّ، فإنّ هذا بعيد كلّ البعد عن الحقيقة، وفي الواقع كلّ دالة قابلة للحساب في وقت متعدد الحدود تنتمي هي أيضًا إلى .
إذا كانت تنتمي إلى ، فإنّ هذا بالتأكيد لا يعني أنّ حساب صعب (وإنّنا لا نعرف، على قدر ما علمنا، أنّه يعني بالضرورة أنّ حسابها سهل أيضًا). بل إنّ معناه أنّ سهلة التحقّق، بالمعنى التقني لـ تعريف — NP.
تمرين محلول — تنتمي إلى الزمن الأُسّيّ
اثبت أنّ .
الحل
لنفترض أنّ ، ولتكن هي الدالة القابلة للحساب في وقت متعدد الحدود التي تُحقّق المعادلة، و هو الثابت المقابل لها. إذن لكلّ مدخل يمكننا التحقّق ممّا إذا كان في وقت قدره ، بأن نعدّ على كلّ السلاسل من النوع وأن نتحقّق ممّا إذا كان ، وفي هذه الحالة نُعيد . وإذا كان لكلّ من هذا النوع فإنّنا نُعيد . وبالبناء، ستعمل الخوارزمية أعلاه في وقت لا يتجاوز زمنًا أُسّيًّا في طول مدخلها، وبتعريف فإنّها ستُعيد لكلّ .
من تمرين محلول — التحقّق ليس أصعب من الحلّ وتمرين محلول — NP تنتمي إلى الزمن الأُسّيّ معًا نستنتج أنّ
ويُترتَّب على مبرهنة تسلسل الأوقات (مبرهنة — نظرية التسلسل الزمني) أنّ ، ومن ثمّ فعلى الأقلّ احتواءً واحدًا من الاحتوائين أو هو تأمّ أي محتوى تحتيًّا تامًّا. ويُعتقد أنّ الاحتوائين معًا هما في الواقع احتواءان تامّان. أي إنّنا نُعتقد أنّ هناك دوال في لا يمكن حسابها في وقت متعدّد الحدود (وهذه هي حجّة )، وأنّه هناك دوال في لا يمكننا حتى أن نُثبت بكفاءة أنّ لمدخل معطى. ومن الدوال التي يُعتقد أنّها تنتمي إلى الدالة المعرَّفة بأنّ لكلّ صيغة 3CNF . وتُعرف حجّة باسم حجّة «». وهي تستلزم حجّة (انظر تمرين — NP ≠ co − NP ⇒ NP ≠ P).
لقد سوينا سابقًا، على نحو غير رسمي، بين مفهوم وبين القول إنّ «لا أصعب من »، ورأينا بالتحديد في تمرين محلول — الاختزال وP أنّه إذا كان و فإنّ أيضًا. ويبيّن التمرين التالي أنّه إذا كان فإنّه أيضًا «لا أصعب في التحقّق» من . أي بغضّ النظر عمّا إذا كان في أم لا، إذا كانت تمتلك الخاصيّة أنّ الحلول (solutions) لها يمكن التحقّق منها بكفاءة، فإنّ تمتلكها أيضًا.
تمرين محلول — الاختزال و
لنفترض . بيّن أنّه إذا كان و فإنّ .
الحل
لنفترض أنّ تنتمي إلى ، وبالتالي تحديدًا يوجد و بحيث لكلّ ، لدينا . ولنفترض أيضًا أنّ ، وبالتالي تحديدًا توجد دالة قابلة للحساب في وقت بحيث لكلّ . لنعرّف على أنّها آلة تورينج (Turing machine) تُدخل عليها زوج فتحسب وتُعيد إذا وفقط إذا كان وكان . إذن تعمل في وقت متعدد الحدود، ولكلّ لدينا إذا وفقط إذا وُجدت بحجم وهو على الأكثر متعدّد الحدود في بحيث ، ممّا يُظهر أنّ .
من إلى 3SAT: مبرهنة كوك-ليفن
لقد رأينا عدّة أمثلة لمسائل لا نعرف ما إذا كانت أفضل خوارزمياتها متعدّدة الحدود أم أُسّية، لكنّنا نستطيع أن نبيّن أنّها تنتمي إلى . أي إنّنا لا نعرف ما إذا كانت سهلة الحلّ (solve)، لكنّنا نعرف تمامًا أنّه سهل التحقّق (verify) من حلّ معطى. وهناك كثير جدًّا، جدًّا جدًّا، من الأمثلة الأخرى لدوال مثيرة للاهتمام نودّ حسابها، ثبت بسهولة أنّها تنتمي إلى . والمدهش حقًّا هو أنّه إذا استطعنا حلّ 3SAT أمكِنّا عندئذٍ حلّ كلّها!
وفيما يلي إحدى أكثر البرهنات أساسيّة في علوم الحاسوب:
مبرهنة — مبرهنة كوك-ليفن
لكلّ ، لدينا .
سنُثبت قريبًا برهان مبرهنة — مبرهنة كوك-ليفن، لكنّ لاحظ أنّه يستلزم فورًا أنّ و و تختزل جميعها إلى . وإذا ما جمعناه مع الاختزالات التي رأيناها في الاختزال في زمن متعدد الحدود، فإنّه يستلزم أنّ كلّ هذه المسائل متكافئة! فمثلًا، لاختزال إلى ، يمكننا أولًا اختزال إلى باستعمال مبرهنة — مبرهنة كوك-ليفن، ثمّ استعمال الاختزال الذي رأيناه في مبرهنة — صعوبة أطول مسار من إلى . أي إنّنا بما أنّ ، فإنّ مبرهنة — مبرهنة كوك-ليفن يستلزم أنّ ، و مبرهنة — صعوبة أطول مسار يستلزم أنّ ، وهو ما يعني، بفضل تعدّادية الاختزال (transitivity of reductions) (تمرين محلول — تعدّادية الاختزال في زمن متعدد الحدود)، أنّ . وبشكل مشابه، بما أنّ ، يمكننا استعمال مبرهنة — مبرهنة كوك-ليفن و مبرهنة — صعوبة المعادلات التربيعية لبيّان أنّ ، ونتّفق على أنّ و متكافئتان حاسوبيًّا.
وبالطبع لا شيء خاصّ بـ و هنا: فبدمج مبرهنة — مبرهنة كوك-ليفن مع الاختزالات التي رأيناها، نرى أنّه كما بالضبط، كلّ يختزل إلى ، وأنّ الأمر نفسه صحيح بالنسبة إلى و . وكافة هذه المسائل هي «الأصعب في » بالمعنى هذا، إذ إنّ خوارزمية فعّالة لأيّ واحدة منها تستلزم خوارزمية فعّالة لكلّ المسائل في . وهذا يقودنا إلى التعريف التالي:
تعريف — -الصلابة والاكتمال في
لنفترض . نقول إنّ هي -صعبة (NP hard) إذا كان لكلّ ، لدينا .
ونقول إنّ هي -كاملة (NP complete) إذا كانت هي -صعبة و .
يمكن إعادة صياغة مبرهنة كوك-ليفن (مبرهنة — مبرهنة كوك-ليفن) على أنّها تقول إنّ هي -صعبة، وبما أنّها تنتمي أيضًا إلى ، فإنّ هذا يعني أنّ هي -كاملة. ومع الاختزالات في الاختزال في زمن متعدد الحدود، تُظهر مبرهنة — مبرهنة كوك-ليفن أنّه على الرغم من فروقها الظاهريّة، فإنّ 3SAT، والمعادلات التربيعية، وأطول مسار، والمجموعة المستقلّة، والقطع الأقصى، هي كلّها -كاملة. وقد ثبت أنّ آلاف المسائل الإضافيّة هي أيضًا -كاملة، آتيةً من جميع العلوم والرياضيات والاقتصاد والهندسة والميادين كثيرة أخرى. (ولأمثلة قليلة، انظر هذه صفحة ويكيبيديا و هذا الموقع.)
إذا كانت مسألة واحدة -كاملة لها خوارزمية تعمل في وقت متعدد الحدود، فإنّ هناك خوارزمية من هذا النوع لكلّ مسألة قرار موافقة لوجود حلّ قابل للتحقّق منه بكفاءة.
ماذا يعني هذا؟
وكما رأينا في تمرين محلول — التحقّق ليس أصعب من الحلّ، لدينا . و_أشهر_ حجّة في علوم الحاسوب هي أنّ هذا الاحتواء تأمّ. أي إنّ الناس يتفقون على الحجّة بأنّ . وإحدى طرائق دحض حجّة هي إعطاء خوارزمية تعمل في وقت متعدد الحدود، ولو لمسألة واحدة فقط من المسائل -كاملة مثل 3SAT أو «القطع الأقصى» (Max Cut)، أو لآلاف المسائل الأخرى التي دُرست في جميع ميادين نشاط الإنسان. وكون هذه المسائل قد دُرست من قِبل هذا العدد الكبير من الناس، ومع ذلك لم يُعثر على خوارزمية واحدة تعمل في وقت متعدد الحدود لأيّ منها، يؤيّد تلك الحجّة بأنّ بالفعل. وفي الحقيقة، بالنسبة للكثير من هذه المسائل (بما فيها كلّ ما ذكرناه أعلاه)، لا نعرف حتى خوارزمية تعمل في وقت ! غير أنّه، إلى حيرة علماء الحاسوب، لم نتمكّن بعد من إثبات أنّ ، ولا حتى من استبعاد وجود خوارزمية تعمل في وقت لـ 3SAT. والبتّ في ما إذا كان أم لا معروف بـ مسألة مقابل . وقد قُدِّمت جائزة بمليون دولار لحلّ هذه المسألة، وكُتب عنها كتاب شعبي، ويخرج كلّ عام بحثٌ جديد يدّعي برهان أو ، ليبتلعه الفحص النقدي في النهاية.

ومن أغرب الغموضات في الحساب أنّ الناس لاحظوا «قانونًا تجريبيًّا للصفر والواحد» أو «ثنائية» معيّنة في التعقيد الحاسوبي للمسائل الطبيعيّة، بالمعنى أنّ كثيرًا من المسائل الطبيعيّة إمّا تنتمي إلى (وكثيرًا ما في أو )، وإمّا أنّها -صعبة. وهذا مرتبطٌ بالواقعة أنّه بالنسبة لمعظم المسائل الطبيعيّة، أفضل خوارزمية معروفة هي إمّا أُسّية أو متعدّدة الحدود، مع وجود أمثلة ليست قليلة يكون فيها أفضل زمن تشغيل بعض التعقيد الوسيط الغريب مثل . غير أنّه يُعتقد بوجود مسائل في لا تنتمي إلى ولا هي -كاملة، وفي الحقيقة فإنّ نتيجة معروفة بـ «مبرهنة لادنر» (Ladner's Theorem) تُبيّن أنّه إذا كان فإنّ هذا هو الحال بالفعل (انظر أيضًا تمرين — مبرهنة لادنر للفقراء و الشكل التوضيحي).

مبرهنة كوك-ليفن: مخطّط البرهان
سنبرهن الآن على مبرهنة كوك-ليفن، وهي الأساس الذي تقوم عليه شبكة عظيمة من الاختزالات من 3SAT إلى آلاف المسائل في ميادين كثيرة وعظيمة. ومن المسائل التي ثبت أنّها -كاملة: طيّ البروتين بطاقة طاقة دنيا، وتهيئة الرغوة بمساحة سطح دنيا، وتلوين الخرائط، وتوازن ناش المثالي، والتشابك بين الحالات الكمّية، وأقصر تسلسل فائق لسلسلة وراثية، ومسألة أصغر كلمة شيفرة، وأقصر متجهة في شبكة، وعُقد أصغر جنس، والمعادلات ديوفانطية الموجبة، والبرمجة الصحيحة، وقريبًا من ذلك كثير جدًّا. وتعقيد الحالة الأسوأ لكلّ هذه المسائل مكافئ (حتى عوامل متعدّدة الحدود) لتعقيد 3SAT، ومن خلال مبرهنة كوك-ليفن، لكلّ المسائل في .
ولإثبات مبرهنة — مبرهنة كوك-ليفن نحتاج أن نبيّن أنّ لكلّ . وسنقوم بذلك على ثلاث مراحل. ونعرّف مسألةً وسيطة اثنتين: و . وسنبيّن قريبًا تعريفات هاتين المسألتين، لكنّ مبرهنة — مبرهنة كوك-ليفن سيترتّب على دمج النتائج الثلاث التالية:
وبتعدّادية الاختزال، سيترتّب أنّه لكلّ ،
وبالتالي نُثبت مبرهنة — مبرهنة كوك-ليفن.
سنبرهن على هذه النتائج الثلاث لمّة و لمّة و لمّة واحدةً واحدة، مع تقديم التعريفات اللازمة في أثناء ذلك.
مسألة ، ولماذا هي -صعبة
تُعرَّف الدالة على النحو التالي:
-
المدخل لـ هو سلسلة تمثّل برنامج NAND-CIRC (أو بما يعادله، رسمًا منطقيًّا من بوّابات NAND).
-
الخرج لـ على المدخل هو إذا وفقط إذا وُجدت سلسلة (حيث هو عدد مداخل ) بحيث .
تمرين محلول —
اثبت أنّ .
الحل
لقد رأينا أنّ مسألة حساب قيم الرسم المنطقي (أو البرنامج السطري) يمكن حلّها في وقت متعدد الحدود. وبالتحديد، معطى برنامج NAND-CIRC من سطرًا و مدخلًا، وسلسلة ، يمكننا حساب على المدخل في وقت متعدّد الحدود في ، وبالتالي التحقّق ممّا إذا كان أم لا.
سنبرهن الآن على أنّ هي -صعبة.
لمّة
المسألة هي -صعبة.
يتبع البرهان عن قرب برهان (مبرهنة — الحساب غير المنتظم يحتوي الحساب المنتظم، وانظر أيضًا «نشر الحلقة»: تحويل خوارزمي من آلات تورينج إلى دوائر). وبالتحديد، إذا كان فإنّ هناك آلة تورينج تعمل في وقت متعدّد الحدود وعددًا صحيحًا موجبًا بحيث لكلّ ، لدينا إذا وفقط إذا وُجدت بحيث . وقد أعطانا برهان طريقة (عن طريق «فكّ الحلقة») للحصول في وقت متعدد الحدود على رسم منطقي له مدخلًا يحسب الدالة . ويمكننا عندئذٍ ترجمة إلى رسم NAND مكافئ (أو برنامج NAND-CIRC) . ونرى أنّ هناك سلسلة بحيث إذا وفقط إذا وُجدت من هذا النوع تحقّق ، وهو ما يحدث (بحسب التعريف) إذا وفقط إذا كان . وعليه فإنّ ترجمة إلى الرسم هي اختزال يُظهر أنّ .
توقّف وتأمّل
البرهان قليل من التقنيّة، لكنّه في النهاية يتبع إلى حدّ بعيد تعريف مباشرةً، فضلًا عن القدرة على «فكّ الحلقة» (unroll the loop) في برامج NAND-TM كما نُوقش في «نشر الحلقة»: تحويل خوارزمي من آلات تورينج إلى دوائر. فإن وجدتَه محيّرًا، فحاوِل أن تتوقّف هنا وتفكّر في كيفية تنفيذك، بلغة البرمجة المفضّلة لديك، للدالة unroll التي على مدخل برنامج NAND-TM وعددين تُخرج برنامج NAND-CIRC له مدخلًا ومن سطرًا، بحيث لكلّ مدخل ، إذا توقّف عند في خطوة على الأكثر وأخرج ، فإنّ .
برهان
لنفترض . ولإثبات لمّة نحتاج إلى إعطاء دالة قابلة للحساب في وقت متعدد الحدود تُسقط كلّ على برنامج NAND-CIRC بحيث .
لنفترض سلسلة من هذا النوع، ولتكن طولها. بحسب تعريف — NP هناك و موجب بحيث إذا وفقط إذا وُجدت تحقّق .
لنفترض . وبما أنّ ، فهناك برنامج NAND-TM يحسب على المداخل من الشكل مع و في وقت لا يتجاوز بالنسبة إلى ثابت ما. وباستعمال «مصرّفنا الذي يفكّ حلقة NAND-TM إلى NAND» (unrolling the loop NAND-TM to NAND compiler) في مبرهنة — مُصرِّف من آلة تورينج إلى دائرة، يمكننا الحصول على برنامج NAND-CIRC له مدخلًا و سطرًا على الأكثر، بحيث لكلّ و .
ويمكننا عندئذٍ استعمال تقنية بسيطة اسمها «التثبيت» (hardwiring)، تُذكّر بـ ملاحظة — تقنية تثبيت المدخلات، لإسقاط على رسم/برنامج NAND-CIRC له مدخلًا بحيث لكلّ .
الادّعاء: هناك خوارزمية تعمل في وقت متعدد الحدود تُخرج، على مدخل برنامج NAND-CIRC له مدخلًا و ، برنامج NAND-CIRC بحيث لكلّ ، لدينا .
برهان الادّعاء: يمكننا ذلك بإضافة بضعة أسطر إلى للتأكّد من أنّ المتغيّرات zero و one تساوي و على الترتيب، ثمّ استبدال كلّ إشارة في إلى مدخل مع بالقيمة المقابلة لها حسب .
انظر الشكل التوضيحي لتجد تنفيذًا لهذا الاختزال بلغة Python.
ويُسقط الاختزال النهائي مدخلًا على برنامج NAND-CIRC الذي حصّلناه أعلاه. وبحسب ما سبق، يعمل هذا الاختزال في وقت متعدد الحدود. ولأنّنا نعرف أنّ إذا وفقط إذا وُجدت بحيث ، فإنّ هذا يعني أنّ إذا وفقط إذا كان ، وهو ما أردنا إثباته.

مسألة
تُعرَّف مسألة على النحو التالي:
-
المدخل هو صيغة منطقية على مجموعة متغيّرات هي عطف (AND) من قيود من الشكل .
-
الخرج هو إذا وفقط إذا وُجد مدخل يحقّق كلّ القيود.
على سبيل المثال، الصيغة التالية هي صيغة ذات متغيّرات و قيود:
في هذه الحالة يكون لأنّ الإسناد يحقّقها. ومعطى صيغة على متغيّرًا وإسناد ، يمكننا التحقّق في وقت متعدد الحدود ممّا إذا كان ، ومن ثمّ . ونبرهن الآن على أنّ هي -صعبة:
لمّة
لدينا .
لإثبات لمّة نحتاج إلى إعطاء إسقاط يعمل في وقت متعدد الحدود من كلّ برنامج NAND-CIRC إلى صيغة بحيث توجد بحيث إذا وفقط إذا وُجد يحقّق .
ولكلّ سطر من نعرّف متغيّرًا مقابلًا في .
وإذا كان السطر على الشكل foo = NAND(bar,blah) فإنّنا سنضيف البند حيث و هما آخر سطرين كُتب فيهما bar و blah. وسنضع كذلك المتغيّرات المقابلة لمتغيّرات المدخل، فضلًا عن إضافة بند يضمن أن يكون الخرج النهائي .
ويمكن تنفيذ الاختزال الناتج في نحو اثني عشر سطرًا من Python، انظر الشكل التوضيحي.

برهان
لإثبات لمّة نحتاج إلى إعطاء اختزال من إلى .
لنفترض أنّ برنامج NAND-CIRC له مدخلًا وخرج واحد و سطرًا.
ويمكننا دون فقدان من العموم أن نفترض أنّ يحتوي على المتغيّرات one و zero كالمعتاد.
نُسقط على صيغة على النحو التالي:
-
تملك المتغيّرات وعددها .
-
تقابل المتغيّرات الأولى ، أي ، مداخل . وتقابل المتغيّرات التالية ، أي ، أسطر البالغة .
-
لكلّ ، إذا كان السطر رقم من البرنامج على الشكل
foo = NAND(bar,blah)فإنّنا نضيف إلى القيد حيث يقابل و آخر سطرين كُتبت فيهما المتغيّراتbarوblah(على الترتيب). وإذا لم يكن أحدbarأوblahأو كلاهما قد كُتب من قبل، فإنّنا نستعمل بدلًا من القيمة المقابلة أو في القيد، حيث هو السطر الذي أُسندت فيهzeroقيمة. وإذا كان أحدbarأوblahأو كلاهما مدخلًاX[i]فإنّنا نستعمل في القيد. -
لتكن آخر سطر أُسندت فيه للخرج
y_0قيمة. عندئذٍ نضيف القيد حيث هو، كما سبق، آخر سطر أُسندت فيهzeroقيمة. ولاحظ أنّ هذا يعني فعليًا القيد .
ولإكمال البرهان نحتاج أن نبيّن أنّه توجد بحيث إذا وفقط إذا وُجدت تحقّق كلّ القيود في . وسنبيّن الآن طرفي هذه التكافؤ.
الجزء الأول: الاكتمال. لنفترض أنّ هناك بحيث . ولتكن معرَّفة على النحو التالي: لكلّ ، ، ولكلّ يساوي القيمة التي تُسنَد في السطر رقم من عند تنفيذه على . وعندئذٍ، بالبناء، تحقّق كلّ قيود (بما في ذلك القيد لأنّ .)
الجزء الثاني: التسليمية. لنفترض أنّ هناك تحقّق . وستتبع التسليمية بأن نبيّن أنّ (وعليه بشكل خاص توجد ، وهي ، بحيث ). ولهذا سنبرهن على الادّعاء التالي : لكلّ ، يساوي القيمة المُسنَدة في الخطوة رقم من تنفيذ البرنامج على . ولاحظ أنّه بما أنّ تحقّق قيود ، فإنّ كافية لإثبات شرط التسليمية، إذ إنّ هذه القيود تستلزم أنّ آخر قيمة تُسنَد للمتغيّر y_0 في تنفيذ على تساوي . ولإثبات لنفترض، خلافًا للمفترض، أنّها خاطئة، وليكن أصغر عدد بحيث لا تساوي القيمة المُسنَدة في الخطوة رقم من تنفيذ على . لكن، بما أنّ تحقّق قيود ، نحصل على حيث (بافتراضنا أعلاه أنّ هو أصغر رقم له هذه الخاصيّة) تقابل هذه القيم بالفعل القيم آخر ما أُسند للمتغيّرات في الطرف الأيمن من معامل الإسناد في السطر من البرنامج. لكنّ هذا يعني أنّ القيمة المُسنَدة في الخطوة رقم هي ببساطة NAND لـ و ، ممّا يناقض افتراضنا بشأن اختيار .

من إلى
الخطوة الأخيرة في برهان مبرهنة — مبرهنة كوك-ليفن هي الآتية:
لمّة
لدينا .
لإثبات لمّة نحتاج إلى إسقاط صيغة على صيغة بحيث تكون مرضية (satisfiable) إذا وفقط إذا كانت مرضية. والفكرة أنّه يمكننا تحويل كلّ قيد NAND من الشكل إلى عطف من عطفات OR تتضمّن المتغيّرات ونفيها، بحيث يحتوي كلّ OR على ثلاثة حدود على الأكثر. والبناء إلى حدٍّ كبير مباشر، والتفاصيل معطاة أدناه.
توقّف وتأمّل
إنّ من التمارين الجيدة لك أن تحاول إيجاد صيغة 3CNF على ثلاثة متغيّرات بحيث يكون صادقًا إذا وفقط إذا كان . وعندما تفعل ذلك، حاول أن ترى لماذا يستلزم هذا اختزالًا من إلى ، ومن ثمّ يُكمل برهان لمّة

برهان
القيد مُحقَّق إذا كان كلّما كان . وبمرورنا على جميع الحالات، يمكننا التحقّق من أنّ المعادلة مكافئ للقيد
فإنّ فإنّ القيد الأول في المعادلة لا يكون صادقًا إلا إذا كان . ومن جهة أخرى، إذا كان أحد أو يساوي فإنّ القيد الثاني أو الثالث سيفشل ما لم يكن . وهذا يعني أنّه، معطى أيّ صيغة على متغيّرًا ، يمكننا الحصول على صيغة على المتغيّرات نفسها باستبدال كلّ قيد في بثلاثة قيود كما في المعادلة.[1] وبسبب تكافؤ المعادلة و المعادلة، فإنّ الصيغة تحقّق أنّ لكلّ إسناد للمتغيّرات. وبشكل خاصّ، مرضية إذا وفقط إذا كانت مرضية، وعليه يكتمل البرهان.

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

خلاصة
- كثير من المسائل التي لا نعرف لها خوارزميات تعمل في وقت متعدد الحدود هي -كاملة، وهذا يعني أنّ إيجاد خوارزمية تعمل في وقت متعدد الحدود لأحدها سيستلزم خوارزمية من هذا النوع _لكلّ_ها.
- يُفترض أنّ ، وهذا يعني أنّنا نعتقد أنّ الخوارزميات التي تعمل في وقت متعدد الحدود لهذه المسائل ليست مجهولة فحسب بل غير موجودة.
- بينما تعني نتيجة -الصلابة، على سبيل المثال، أنّه على الأرجح لا يوجد حلّ «من كتاب مدرسي» كامل لمسألة مثل MAX-CUT نظيف وعامّ كخوارزمية MIN-CUT، فإنّها لا تعني أنّنا نضطرّ إلى الاستسلام كلّما رأينا مدخلًا لـ MAX-CUT. وفيما بعد من هذا المساق سنناقش عدّة استراتيجيات للتعامل مع -الصلابة، بما فيها تعقيد الحالة المتوسطة (average-case complexity) و_خوارزميات التقريب_ (approximation algorithms).
التمارين
تمرين — مبرهنة لادنر للفقراء
اثبت أنّه إذا لم تكن هناك خوارزمية تعمل في وقت لـ ، فإنّ هناك بحيث و ليست -كاملة.[2]
تمرين —
لنفترض أنّ هي الدالة التي على مدخل صيغة 3CNF تُعيد . اثبت أنّه إذا كان فإنّ . انظر التلميح في الحاشية.[3]
تمرين
عرّف على أن تكون الدالة التالية: المدخل هو صيغة CNF يكون فيها كلّ بند عطفًا من متغيّر إلى ثلاثة متغيّرات (من دون نفي)، و عدد . على سبيل المثال، يمكن استعمال الصيغة التالية كمدخل صالح لـ : . ويكون الخرج إذا وفقط إذا وُجد إسناد مُرضٍ لـ تتلقّى فيه بالضبط من المتغيّرات القيمة . على سبيل المثال، بالنسبة للصيغة أعلاه يكون لأنّ الإسناد يحقّق كلّ البنود. لكنّ لأنّه لا يوجد متغيّر واحد يظهر في كلّ البنود.
اثبت أنّ هي -كاملة.
تمرين
في مسألة توظيف الموظفين (employee recruiting problem) يُعطى لنا قائمة بموظفين محتملين، لكلٍّ منهم مجموعة جزئيّة من مهارات محتملة، وعدد . ويجب أن نُجمّع فريقًا من موظفين بحيث يوجد لكلّ مهارة عضو واحد في الفريق يملك هذه المهارة.
على سبيل المثال، إذا كانت أليس تملك المهارتان «برمجة C» و«برمجة NAND» و«حلّ المعادلات التفاضليّة»، وكان بوب يملك المهارتان «برمجة C» و«حلّ المعادلات التفاضليّة»، وكانت تشارلي تملك المهارتان «برمجة NAND» و«تحضير القهوة»، فإنّنا إذا أردنا فريقًا من شخصين يغطّي المهارات الأربع، لنتوظيف أليس وتشارلي.
عرّف الدالة بحيث تُعرَّف على أنّها، على مدخل المهارات لكلّ الموظفين المحتملين (على هيئة متتالية من قوائم ، كلّ منها تضمّ أرقامًا مميّزة بين و )، و عدد ، إذا وفقط إذا وُجدت مجموعة جزئية من موظفًا محتملين بحيث لكلّ مهارة في ، يوجد موظف في يملك المهارة .
اثبت أنّ هي -كاملة.
تمرين — القطع الأقصى المتوازن
اثبت أنّ «النسخة المتوازنة» (the "balanced variant") من مسألة القطع الأقصى هي -كاملة، حيث تُعرَّف على النحو التالي: بحيث لكلّ رسم بياني و ، يكون إذا وفقط إذا وُجد قطع في يقطع حافّة على الأقلّ بحيث .
تمرين — تقاطع التعبيرات النمطيّة
لنفترض أنّ هي الدالة التالية: على مدخل قائمة من التعبيرات النمطيّة (الممثَّلة كسلاسل بطريقة ما قياسيّة)، تُخرج إذا وفقط إذا وُجدت سلسلة واحدة تطابق كلّها. اثبت أنّ هي -صعبة.
ملاحظات ببليوغرافية
استعراض أَرونسون ([@aaronson2016p]) ذو الـ 120 صفحة هو عرضٌ جميل ومفصّل لمسألة مقابل ، ولأهميّتها وحالتها. وانظر كذلك الفصل 3 من كتاب فيغدرسون الرائع ([@wigderson2017mathematics]).
يعطي جونسون ([@johnson2012brief]) استعراضًا للتطوّر التاريخي لنظرية الاكتمال في . وتحتفظ صفحة الويب التالية بسجلّ للمحاولات الفاشلة في حسم مسألة مقابل . وحتى لحظة كتابة هذا الكتاب، تذكر نحو 110 ورقة يدّعي أصحابها حسم السؤال، منها نحو 60 تدّعي إثبات أنّ ونحو 50 تدّعي إثبات أنّ .
أُثبتت مبرهنة لادنر على يد ريتشارد لادنر سنة 1975. ولادنر، المولود لأبوين أصمّين، حوّل لاحقًا تركيز بحثه إلى الحوسبة من أجل التقنيات المساعدة، حيث قدّم كثيرًا من المساهمات. وفي سنة 2014 كتب مقالًا شخصيًّا عن طريقه من علوم الحاسوب النظرية إلى أبحاث إمكانية الوصول.
ستكون بعض عطفات OR في الصيغة الناتجة متضمّنة متغيّرين فقط. وإذا أصررنا على أن يتضمّن كلّ عطف ثلاثة متغيّرات مختلفة، فيمكننا دائمًا إضافة «متغيّر وهميّ» وإدراجه في كلّ عطفات OR المتضمّنة متغيّرين فقط، وإضافة قيد يوجب أن تكون قيمة هذا المتغيّر الوهمي صفرًا. ↩︎
تلميح: استعمل الدالة التي على مدخل صيغة وسلسلة من الشكل ، تُخرج إذا وفقط إذا كانت مرضية (satisfiable) و . ↩︎
تلميح: اثبت ثمّ استعمل الحقيقة أنّ مغلقة تحت التكامل. ↩︎