مقدمة في علوم الحاسوب النظرية › ماذا لو تساوت P وNP؟ 18 / 26 السابق التالي

ماذا لو كان P=NP؟ { #chappvsnp }

ماذا لو كان P=NP\mathbf{P}=\mathbf{NP}؟

  • استكشاف النتائج المترتّبة على P=NP\mathbf{P}=\mathbf{NP} \
  • اختزال من البحث إلى الحسم: تحويل الخوارزميات التي تحلّ النسخة الحاسمة إلى النسخة البحثية، لمسائل NP\mathbf{NP}-كاملة. \
  • مسائل التحسين والتعلّم \
  • إزالة الكمّيات وحلّ المسائل في تسلسل متعدد الحدود متدرّج. \
  • ما هي الأدلة المؤيّدة لـ P=NP\mathbf{P}=\mathbf{NP} في مقابل P≠NP\mathbf{P}\neq \mathbf{NP}؟

"لستَ مضطرًا إلى الإيمان بالله، لكن يجدر بك أن تصدّق «الكتاب».", بول إردوس، 1985.[1]

"لا مزيد من الإجراءات المتوسّطة يا والتر", مايك إيرمانتراوت في مسلسل "Breaking Bad"، 2010.

"الأدلة المؤيّدة لـ [P≠NP\mathbf{P}\neq \mathbf{NP}] و [ نظيره الجبري ] ساحقة إلى حدّ بعيد، ونتائج فشلهما بليدة إلى حدّ يجعل مركزهما يمكن ربّما مقارنةً بمركز القوانين الفيزيائية لا بمركز حدس رياضي عادي.", فولكر شتراسن، في تأليه ليسلي فاليانت، 1986.

"لنفترض أن كائنات من خارج الأرض تغزو الأرض وتهدّدها بالإبادة خلال سنة، ما لم يستطع البشر إيجاد [العدد الرامزي الخامس]. يمكننا أن نجمع أمهر العقول وأسرع الحواسيب في العالم، وخلال سنة من المرجّح أن نستطيع حساب القيمة. لكن إذا أصرّت الكائنات على [العدد الرامزي السادس]، فلا خيار لنا سوى إطلاق هجوم استباقي.", بول إردوس، نقلًا عن غراهام وسبنسر، 1990.[2]

لقد ذكرنا أنّ سؤال ما إذا كان P=NP\mathbf{P}=\mathbf{NP}، وهو مكافئ لسؤال وجود خوارزمية ذات زمن متعدّد الحدود لـ3SAT3SAT، هو السؤال المفتوح العظيم في علوم الحاسوب. لكن لماذا هو مهمّ إلى هذا الحدّ؟ في هذا الفصل سنحاول أن نفهم ما يترتّب على وجود خوارزمية من هذا النوع.

أولًا، لنُعمل على الخلاص من اعتراض واحد. أحيانًا يقول الناس: «ماذا لو كان P=NP\mathbf{P}=\mathbf{NP} لكن أفضل خوارزمية لـ3SAT تستغرق زمن n1000n^{1000}؟» حسنًا، n1000n^{1000} أكبر بكثير من، مثلًا، 20.001n2^{0.001\sqrt{n}} عند أيّ مدخل أصغر من 2502^{50}، وهو حجم القرص الصلب الأكبر الذي ستصادفه، ومن ثم فإنّ صياغة هذا السؤال بطريقة أخرى هي أن نقول: «ماذا لو كان تعقيد 3SAT أسّيًا لكلّ المداخل التي سنصادفها على الإطلاق، ثم ينمو بعد ذلك نموًّا أصغر كثيرًا من ذلك؟». هذا يبدو لي نظيرُ علم الحاسوب لسؤال: «ماذا لو تغيّرت قوانين الفيزياء تغييرًا تامًّا بمجرّد أن تخرج عن مدى تلسكوباتنا؟». نعم، هذا احتمال قائم، لكنّ التفكير فيه لا يبدو أفضل استثمارٍ لوقتنا.

إذن، كما يقول المثل، سنُبقي عقولنا منفتحّة، لكن ليس مفتوحةً إلى حدٍّ تسقط منه عقولنا، ونفترض من الآن فصاعدًا ما يلي:

  • هناك إلهٌ رياضيّ،

وأنّها

  • وهي لا «تلتفّ وتُلفّ» ولا تكتفي بـ«إجراءات متوسّطة».

ما نعنيه بهذا هو أنّنا سندرس سيناريوهين متطرّفين:

  • 3SAT سهل جدًا: لـ3SAT3SAT خوارزمية زمنيّة O(n)O(n) أو O(n2)O(n^2) بثابت ليس ضخمًا أكثر من اللازم (لنقل أصغر من 10610^6.)

  • 3SAT صعب جدًا: مسألة 3SAT3SAT صعبة بدرجة أسّية ولا يمكن حلّها في زمن أسرع من 2ϵn2^{\epsilon n} لمُعامل ϵ>0\epsilon>0 ليس صغيرًا أكثر من اللازم (لنقل 10−610^{-6} على الأقلّ). يمكننا حتى أن نفترض افتراضًا أقوى: أنّه لكلّ nn كبير بما يكفي، لا يمكن حساب 3SAT3SAT المقيّدة على مداخل من الطول nn بواسطة دائرة من أقلّ من 2ϵn2^{\epsilon n} بوابة.

عند وقت كتابة هذا الكتاب، تتطلّب أسرع خوارزمية معروفة لـ3SAT3SAT أكثر من 20.35n2^{0.35 n} لحلّ صيغ من nn متغيّرًا، في حين لا نعرف حتى كيف نستبعد إمكان أن نستطيع حساب 3SAT3SAT باستخدام 10n10n بوابة. ولأجل وضع النتيجة في متناول اليد: في الحالة n=1000n=1000 يفترق حدّانا الأدنى والأعلى لتكاليف الحساب بمعامل يقارب 1010010^{100}. إلى حدّ علمنا، قد يكون من الممكن حلّ 3SAT3SAT بـ 10001000 متغيّر في ميلي ثانية على أوّل جيل من هواتف iPhone، وقد يكون في الوقت نفسه من الممكن أن تحتاج هذه الحالات إلى أكثر من عمر الكون لحلّها على أسرع حاسوب فائق في العالم.

حتى الآن، تشير معظم أدلتنا إلى الاحتمال الثاني، وهو أن تكون 3SAT صعبة بدرجة أسّية، لكنّنا لم نستبعد الاحتمال الأول أيضًا. في هذا الفصل سنستكشف بعض النتائج المترتّبة على سيناريو «سهولة 3SAT3SAT».

يبيّن هذا الفصل بعض النتائج المذهلة حقًّا التي كانت ستنشأ عن خوارزمية كفؤة لمسائل NP\mathbf{NP}-كاملة. وسنرى أنّ مثل هذه الخوارزمية ستترتّب عليها خوارزميات كفؤة لمهام تشمل حلّ مسائل البحث، وإزالة الكمّيات، وإيجاد أنماط معقّدة تناسب البيانات، وأخذ العيّنات والعدّ، وغيرها. ولو أنّ الأدلة تشير بقوّة إلى أنّ مثل هذه الخوارزمية غير موجودة، فإنّ الأدوات المطوّرة في هذه النتائج قد وجدت مع ذلك تطبيقاتَ كثيرة أخرى.

الاختزال من البحث إلى الحسم

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

تبيّن أنّه إذا استطعنا حلّ مسائل الحسم هذه، أمكننا عندئذٍ حلّ مسائل البحث مقابلة لها أيضًا:

مبرهنة — البحث مقابل الحسم

لنفترض أنّ P=NP\mathbf{P}=\mathbf{NP}. عندئذٍ لكلّ خوارزمية VV ذات زمن متعدّد الحدود ولكلّ a,b∈Na,b \in \N، توجد خوارزمية FINDVFIND_V ذات زمن متعدّد الحدود بحيث لكلّ x∈{0,1}nx\in \{0,1\}^n، إذا وُجد y∈{0,1}anby\in \{0,1\}^{an^b} يحقّق V(xy)=1V(xy)=1، فإنّ FINDV(x)FIND_V(x) تجد سلسلة y′y' تحقّق هذا الشرط.

توقّف وتأمّل

لفهم ما يعنيه نصّ مبرهنة — البحث مقابل الحسم، فلننظر في الحالة الخاصّة لمسألة MAXCUTMAXCUT. ليس صعبًا أن نرى أنّ هناك خوارزمية VERIFYCUTVERIFYCUT ذات زمن متعدّد الحدود بحيث يكون VERIFYCUT(G,k,S)=1VERIFYCUT(G,k,S)=1 إذا وفقط إذا كان SS مجموعة جزئيّة من رؤوس GG تقطع على الأقلّ kk حافّة. ويقتضي مبرهنة — البحث مقابل الحسم أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} فلا بدّ من وجود خوارزمية FINDCUTFINDCUT ذات زمن متعدّد الحدود تُخرج، عند مدخل G,kG,k، مجموعة SS بحيث يكون VERIFYCUT(G,k,S)=1VERIFYCUT(G,k,S)=1 إن وُجدت مجموعة كذلك. وهذا يعني أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP}، فإنّنا بتجريب كلّ قيم kk نستطيع أن نجد في زمن متعدّد الحدود أقصى قطع في أيّ رسم بياني معطى. ويمكننا استعمال حجّة مماثلة لإظهار أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا أن نجد إسنادًا مُشبِعًا لكلّ صيغة 3CNF قابلة للإشباع، وأن نجد أطول مسار في رسم بياني، وأن نحلّ البرمجة الصحيحة، وهكذا وهكذا.

الفكرة وراء برهان مبرهنة — البحث مقابل الحسم بسيطة؛ فلنبيّنها في الحالة الخاصّة لـ 3SAT3SAT. (وفي الحقيقة، هذه الحالة ليست «خاصّة» إلى هذا الحدّ −- إذ إنّ 3SAT3SAT هي NP\mathbf{NP}-كاملة، يمكننا اختزال مسألة حلّ مسألة البحث الخاصّة بـ MAXCUTMAXCUT أو بأيّ مسألة أخرى في NP\mathbf{NP} إلى مسألة حلّها لـ 3SAT3SAT.) لنفترض أنّ P=NP\mathbf{P}=\mathbf{NP} وأُعطيت لنا صيغة 3CNF قابلة للإشباع φ\varphi، ونريد الآن أن نجد إسنادًا مُشبِعًا yy لـ φ\varphi. عرّف 3SAT0(φ)3SAT_0(\varphi) لتُخرج 11 إذا وُجد إسناد مُشبِع yy لـ φ\varphi بحيث يكون أوّل بتّ فيه 00، وعرّف على نحو مماثل 3SAT1(φ)=13SAT_1(\varphi)=1 إذا وُجد إسناد مُشبِع yy بحيث y0=1y_0=1. الملاحظة المفتاحيّة هي أنّ 3SAT03SAT_0 و3SAT13SAT_1 كلتيهما في NP\mathbf{NP}، ولذلك إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا حسابهما في زمن متعدّد الحدود أيضًا. وهكذا يمكننا استعمال هذا لإيجاد أوّل بتّ من الإسناد المُشبِع. ويمكننا المتابعة على هذا النحو لاسترجاع كلّ البتّات.

برهان

ليكن VV خوارزميّة ما ذات زمن متعدّد الحدود، و a,b∈Na,b \in \N ثابتَين ما. عرّف الدالّة STARTSWITHVSTARTSWITH_V على النحو التالي: لكلّ x∈{0,1}∗x\in \{0,1\}^* و z∈{0,1}∗z \in \{0,1\}^* ، يكون STARTSWITHV(x,z)=1STARTSWITH_V(x,z)=1 إذا وفقط إذا وُجدت سلسلة y∈{0,1}anb−∣z∣y \in \{0,1\}^{an^b - |z|} ما (حيث n=∣x∣)n=|x|) بحيث V(xzy)=1V(xzy)=1. أي إنّ STARTSWITHV(x,z)STARTSWITH_V(x,z) تُخرج 11 إذا وُجدت سلسلة ww ما من الطول a∣x∣ba|x|^b بحيث V(x,w)=1V(x,w)=1، وأنّ أوّل ∣z∣|z| بتًّا من ww هي z0,…,zℓ−1z_0,\ldots,z_{\ell-1}. وبما أنّه، عند إعطاء x,y,zx,y,z كما سبق، نستطيع أن نتحقّق في زمن متعدّد الحدود ممّا إذا كان V(xzy)=1V(xzy)=1، فإنّ الدالّة STARTSWITHVSTARTSWITH_V في NP\mathbf{NP}، ولذلك إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا حسابها في زمن متعدّد الحدود.

الآن، لكلّ VV ذات زمن متعدّد الحدود من هذا النوع ولكلّ a,b∈Na,b\in\N، يمكننا تنفيذ FINDV(x)FIND_V(x) على النحو التالي:

خوارزمية — FINDVFIND_V: اختزال من البحث إلى الحسم

INPUT: $x\in \{0,1\}^n$
OUTPUT: $z\in \{0,1\}^{an^b}$ s.t. $V(xz)=1$, -if such $z$ exists. Otherwise -output the empty string.

Initially $z_0=z_1=\cdots=z_{an^b-1}=0$.
For{$\ell=0,\ldots,an^b-1$}
Let $b_0 \leftarrow STARTSWITH_V(xz_{0}\cdots z_{\ell-1}0)$.
Let   $b_1  \leftarrow STARTSWITH_V(xz_{0}\cdots z_{\ell-1}1)$.
If{$b_0=b_1=0$} 
Return ""  
# Can't extend $xz_0\ldots z_{\ell-1}$ to -input  $V$ accepts
Endif
If{$b_0=1$}
 $z_\ell \leftarrow 0$ 
 # Can extend $xz_0\ldots x_{\ell-1}$ with $0$ to accepting -input
Else
 $z_\ell \leftarrow 1$ 
 # Can extend $xz_0\ldots x_{\ell-1}$ with $1$ to accepting -input
Endif
Endfor
Return $z_0,\ldots,z_{an^b-1}$

لتحليل خوارزمية — FINDV​: اختزال من البحث إلى الحسم، لاحظ أنّه يُجري 2anb2an^{b} استدعاءً لـSTARTSWITHVSTARTSWITH_V، ولذلك إذا كانت الأخيرة ذات زمن متعدّد الحدود فكذلك خوارزمية — FINDV​: اختزال من البحث إلى الحسم. لنفترض الآن أنّ xx بحيث وُجد yy بعضها يحقّق V(xy)=1V(xy)=1. ونطالب بأنّه في كلّ خطوة ℓ=0,…,anb−1\ell=0,\ldots,an^b-1 نحافظ على الثابت القائل بأنّه يوجد y∈{0,1}anby\in \{0,1\}^{an^b} أوّل ℓ\ell بتًّا منها هي zz بحيث V(xy)=1V(xy)=1. لاحظ أنّ هذا الادّعاء يقتضي المبرهنة، إذ إنّنا على وجه الخصوص نملك أنّه من أجل ℓ=anb−1\ell = an^b-1 فإنّ zz تحقّق V(xz)=1V(xz)=1.

نبرهن الادّعاء بالاستدلال. من أجل ℓ=0\ell=0، هذا صحيح بداهةً. الآن، من أجل كلّ ℓ>0\ell > 0، إذا أعاد الاستدعاء STARTSWITHV(xz0⋯zℓ−10)STARTSWITH_V(xz_0\cdots z_{\ell-1}0) القيمة 11، فإنّ تعريف STARTSWITHVSTARTSWITH_V يضمن لنا الثابت. الآن، بمقتضى فرضيّة الاستدلال لدينا، هناك yℓ,…,yanb−1y_\ell,\ldots,y_{an^b-1} بحيث P(xz0,…,zℓ−1yℓ,…,yanb−1)=1P(xz_0,\ldots,z_{\ell-1}y_\ell,\ldots,y_{an^b-1})=1. إذا أعاد الاستدعاء إلى STARTSWITHV(xz0⋯zℓ−10)STARTSWITH_V(xz_0\cdots z_{\ell-1}0) القيمة 00، فلا بدّ من أنّ yℓ=1y_\ell=1، ومن ثمّ حين نضع zℓ=1z_\ell=1 نحافظ على الثابت.

التحسين

يتيح لنا مبرهنة — البحث مقابل الحسم أن نجد حلولًا لمسائل NP\mathbf{NP} إذا كان P=NP\mathbf{P}=\mathbf{NP}، لكنّه ليس واضحًا فورًا أنّنا نستطيع أن نجد الحلّ الأمثل. مثلًا، لنفترض أنّ P=NP\mathbf{P}=\mathbf{NP}، وأُعطيت رسمًا بيانيًا GG. هل تستطيع أن تجد أطول مسار بسيط في GG في زمن متعدّد الحدود؟

توقّف وتأمّل

هذا في الحقيقة سؤال ممتاز لك أن تحاول حلّه بنفسك. بمعنى آخر، بافتراض P=NP\mathbf{P}=\mathbf{NP}، أعطِ خوارزمية ذات زمن متعدّد الحدود تُخرج، عند مدخلها رسمًا بيانيًا GG، مسارًا بسيطًا أطول ما يكون في الرسم GG.

الجواب هو نعم. الفكرة بسيطة: إذا كان P=NP\mathbf{P}=\mathbf{NP} نستطيع أن نعرف في زمن متعدّد الحدود ما إذا كان الرسم البياني GG ذو nn رأسًا يحتوي على مسار بسيط من الطول nn، فضلًا عن ذلك، وبموجب مبرهنة — البحث مقابل الحسم، إذا كان GG يحتوي فعلًا على مثل هذا المسار، أمكننا أن نجده. (هل ترى لماذا؟) إذا لم يكن GG يحتوي على مسار بسيط من الطول nn، فإنّنا سنتحقّق ما إذا كان يحتوي على مسار بسيط من الطول n−1n-1، وهكذا نستمرّ على هذا النحو لنجد أكبر kk بحيث يحتوي GG على مسار بسيط من الطول kk.

لم يكن الاستدلال أعلاه مصمَّمًا خصيصًا لإيجاد المسارات في الرسوم البيانية. في الحقيقة، يمكن تعميمه إلى حدٍّ بعيد لإثبات النتيجة التالية:

مبرهنة — التحسين انطلاقًا من P=NP\mathbf{P}=\mathbf{NP}

لنفترض أنّ P=NP\mathbf{P}=\mathbf{NP}. عندئذٍ لكلّ دالّة f:{0,1}∗→Nf:\{0,1\}^* \rightarrow \N قابلة للحساب بزمن متعدّد الحدود (مع التعرّف على f(x)f(x) مع الأعداد الطبيعية عبر التمثيل الثنائي) توجد خوارزمية OPTOPT ذات زمن متعدّد الحدود بحيث عند مدخل x∈{0,1}∗x\in \{0,1\}^*، OPT(x,1m)=max⁡y∈{0,1}mf(x,y)  .OPT(x,1^m) = \max_{y\in \{0,1\}^m} f(x,y) \;.

فضلا عن ذلك، وبمقتضى الافتراض نفسه، توجد خوارزمية FINDOPTFINDOPT ذات زمن متعدّد الحدود بحيث لكلّ x∈{0,1}∗x\in \{0,1\}^* تُخرج FINDOPT(x,1m)FINDOPT(x,1^m) سلسلة y∗∈{0,1}∗y^* \in \{0,1\}^* بحيث f(x,y∗)=max⁡y∈{0,1}mf(x,y)f(x,y^*)=\max_{y\in \{0,1\}^m} f(x,y).

توقّف وتأمّل

نصّ مبرهنة — التحسين انطلاقًا من P=NP معقّد بعض الشيء. لفهمه، فكّر في كيف يستوعب المثال أعلاه عن خوارزمية ذات زمن متعدّد الحدود لإيجاد أطول مسار في رسم بياني. في هذه الحالة تكون الدالّة ff هي الخريطة التي، عند مدخلها زوج x,yx,y، تُخرج 00 إذا لم يكن الزوج (x,y)(x,y) يمثّل رسمًا بيانيًا ومسارًا بسيطًا داخله على التوالي؛ وإلاّ فإنّ f(x,y)f(x,y) يساوي طول المسار yy في الرسم البياني xx. وبما أنّه يمكن تمثيل مسار في رسم بياني ذو nn رأسًا بـ nlog⁡nn \log n بتًّا على الأكثر، فإنّ إيجاد max⁡y∈{0,1}nlog⁡nf(x,y)\max_{y\in \{0,1\}^{n \log n}}f(x,y) لكلّ xx يمثّل رسمًا بيانيًا بـ nn رأسًا يقابل إيجاد طول أطول مسار بسيط في الرسم البياني المقابل لـ xx، وأيجاد السلسلة y∗y^* التي تحقّق هذا الحدّ الأقصى يقابل في الواقع إيجاد المسار.

يتّبع البرهان بتعميم أفكارنا من مثال أطول مسار أعلاه. لتكن ff كما في نصّ المبرهنة. إذا كان P=NP\mathbf{P}=\mathbf{NP}، فإنّه لكلّ سلسلة x∈{0,1}∗x\in \{0,1\}^* ولكلّ عدد kk، نستطيع أن نختبر في زمن poly(∣x∣,m)poly(|x|,m) ما إذا وُجد yy بحيث f(x,y)≥kf(x,y) \geq k، أو بمعنى آخر نختبر ما إذا كان max⁡y∈{0,1}mf(x,y)≥k\max_{y \in \{0,1\}^m} f(x,y) \geq k. إذا كان f(x,y)f(x,y) عددًا صحيحًا بين 00 وpoly(∣x∣+∣y∣)poly(|x|+|y|) (كما في مثال أطول مسار)، فإنّنا نستطيع ببساطة أن نجرّب كلّ الاحتمالات الممكنة لـ kk لنجد أكبر عدد kk بحيث max⁡yf(x,y)≥k\max_y f(x,y) \geq k. وإلّا، يمكننا استعمال البحث الثنائي (binary search) لنضيّق النطاق على القيمة الصحيحة. ومتى فعلنا ذلك، يمكننا استعمال الاختزال من البحث إلى الحسم لنجد فعلًا السلسلة y∗y^* التي تحقّق الحدّ الأقصى.

برهان

لكلّ ff كما في نصّ المبرهنة، يمكننا تعريف الدالّة البوليانيّة F:{0,1}∗→{0,1}F:\{0,1\}^* \rightarrow \{0,1\} على النحو التالي.

F(x,1m,k)={1∃y∈{0,1}mf(x,y)≥k0otherwiseF(x,1^m,k)= \begin{cases} 1 & \exists_{y\in \{0,1\}^m} f(x,y) \geq k \\ 0 & \text{otherwise} \end{cases}

وبما أنّ ff قابلة للحساب بزمن متعدّد الحدود، فإنّ FF في NP\mathbf{NP}، ولذلك بمقتضى افتراضنا P=NP\mathbf{P}=\mathbf{NP}، فإنّ FF نفسها يمكن حسابها بزمن متعدّد الحدود. الآن، لكلّ xx وmm، يمكننا أن نحسب أكبر kk بحيث F(x,1m,k)=1F(x,1^m,k)=1 عبر بحث ثنائي. بالتحديد، سنقوم بما يلي:

  1. نحافظ على عدديتن a,ba,b بحيث نضمن أنّ a≤max⁡y∈{0,1}mf(x,y)<ba \leq \max_{y\in \{0,1\}^m} f(x,y) < b.

  2. في البداية نضع a=0a=0 و b=2T(n)b=2^{T(n)} حيث T(n)T(n) هو زمن تشغيل ff. (والدالّة ذات زمن تشغيل T(n)T(n) لا تستطيع أن تُخرج أكثر من T(n)T(n) بتًّا، ولذلك لا تستطيع أن تُخرج عددًا أكبر من 2T(n)2^{T(n)}.)

  3. في كلّ لحظة، نحسب النقطة الوسطى c=⌊(a+b)/2⌋)c = \floor{(a+b)/2}) ونضع y=F(1n,c)y=F(1^n,c).

    a. إذا كان y=1y=1 فإنّنا نضع a=ca=c ونترك bb كما هو.

    b. إذا كان y=0y=0 فإنّنا نضع b=cb=c ونترك aa كما هو.

  4. ثمّ نعود إلى الخطوة 3، حتى تتحقّق b≤a+1b \leq a+1.

بما أنّ ∣b−a∣|b-a| ينكمش بمعامل 22، فإنّنا خلال log⁡22T(n)=T(n)\log_2 2^{T(n)}= T(n) خطوة سنصل إلى الحالة التي تتحقّق فيها b≤a+1b\leq a+1، وعندها نستطيع ببساطة أن نُخرج aa. ومتى وجدنا القيمة القصوى لـ kk بحيث F(x,1m,k)=1F(x,1^m,k)=1، يمكننا استعمال الاختزال من البحث إلى الحسم لـ مبرهنة — البحث مقابل الحسم للحصول على القيمة الفعليّة y∗∈{0,1}my^* \in \{0,1\}^m بحيث f(x,y∗)=kf(x,y^*)=k.

مثال — البرمجة الصحيحة

أحد تطبيقات مبرهنة — التحسين انطلاقًا من P=NP هو في حلّ مسائل التحسين. مثلًا، مهمّة البرمجة الخطّية (linear programming) هي إيجاد y∈Rny \in \R^n تُعظِّم هدفًا خطّيًا ∑i=0n−1ciyi\sum_{i=0}^{n-1}c_i y_i مع القيد أنّ yy تُحقّق متراجحات خطّية من الشكل ∑i=0n−1aiyi≤c\sum_{i=0}^{n-1} a_i y_i \leq c. وكما ناقشنا في إيجاد أصغر قطع في رسم بياني، هناك خوارزمية معروفة ذات زمن متعدّد الحدود للبرمجة الخطّية. لكن إذا أردنا فرض قيود إضافيّة على yy، مثل اشتراط أن تكون إحداثيّات yy أعدادًا صحيحة أو قيمًا 0/10/1، فإنّ أفضل الخوارزميات المعروفة تعمل بزمن أسّي في الحالة الأسوأ. لكن إذا كان P=NP\mathbf{P}=\mathbf{NP} فإنّ مبرهنة — التحسين انطلاقًا من P=NP تخبرنا بأنّنا سنكون قادرين على حلّ كلّ المسائل من هذا الشكل في زمن متعدّد الحدود. لكلّ سلسلة xx تصف مجموعة قيود وهدفًا، سنعرّف دالّة ff بحيث إذا كان yy يُحقّق قيود xx فإنّ f(x,y)f(x,y) هي قيمة الهدف، وإلّا نضع f(x,y)=−Mf(x,y) = -M حيث MM عدد كبير ما. يمكننا عندئذٍ استعمال مبرهنة — التحسين انطلاقًا من P=NP لحساب الـ yy التي تُعظِّم f(x,y)f(x,y)، وستعطي تلك الإسنادات للمتغيّرات التي تُحقّق قيودنا وتُعظِّم الهدف. (إذا انتهى الحساب إلى yy بحيث f(x,y)=−Mf(x,y)=-M، فيمكننا مضاعفة MM والمحاولة من جديد؛ فإذا كان الحدّ الأقصى الحقيقيّ للهدف محقَّقًا بواسطة سلسلة ما y∗y^*، فإنّ MM سيصبح في النهاية كبيرًا بما يكفي بحيث يكون −M-M أصغر من الهدف المحقَّق بواسطة y∗y^*، ومن ثمّ حين نشغّل إجراء مبرهنة — التحسين انطلاقًا من P=NP سنحصل على قيمة أكبر من −M-M.)

ملاحظة — الحاجة إلى البحث الثنائي

في عدّة أمثلة، مثل حالة إيجاد أطول مسار، لا نحتاج إلى استعمال خطوة البحث الثنائي في مبرهنة — التحسين انطلاقًا من P=NP، ويمكننا ببساطة أن نُعدّد كلّ القيم الممكنة لـ kk حتى نجد الصحيحة. والمثال الواحد الذي نحتاج فيه فعلًا إلى هذه الخطوة هو مسألة إيجاد أطول مسار في رسم بياني مُوزون. فالمسألة هي أنّ GG رسم بياني مُوزون، ويُعطى كلّ ضلع في GG وزنًا هو عدد بين 00 و2k2^k. ويبيّن مبرهنة — التحسين انطلاقًا من P=NP أنّنا نستطيع أن نجد المسار البسيط ذو الوزن الأقصى في GG (أي المسار البسيط الذي يُعظِّم مجموع أوزان أضلاعه) في زمن متعدّد الحدود في عدد الرؤوس وفي kk.

وفوق هذا المثال الواحد هناك ميدان واسع من التحسين الرياضي يدرس مسائل من الشكل نفسه القائم في مبرهنة — التحسين انطلاقًا من P=NP. في سياق التحسين، تشير xx عادةً إلى مجموعة قيود على بعض المتغيّرات (التي قد تكون بوليانيّة أو صحيحة أو حقيقية القيمة)، و yy يرمّز لإسنادٍ لهذه المتغيّرات، و f(x,y)f(x,y) هي قيمة دالّة هدف (objective function) نريد تعظيمها. وبما أنّنا لا نعرف خوارزميات كفؤة للمسائل NP\mathbf{NP} الكاملة، فإنّ الباحثين في التحسين يدرسون حالات خاصّة من الدوال ff (مثل البرمجة الخطّية والبرمجة شبه المحدّبة) حيث من الممكن تحسين القيمة بكفاءة. والتحسين مستعمل على نطاق واسع في عدد كبير من المجالات العلميّة منها: تعلّم الآلات، والهندسة، والاقتصاد، وبحث العمليات.

مثال: التعلّم الخاضع للإشراف

إحدى مهامّ التحسين الكلاسيكيّة هي التعلّم الخاضع للإشراف (supervised learning). في التعلّم الخاضع للإشراف تُعطى لنا قائمة أمثلة x0,x1,…,xm−1x_0,x_1,\ldots,x_{m-1} (يمكننا أن نرى كلّ xix_i على أنّها سلسلة في {0,1}n\{0,1\}^n لبعض nn) و تسميات (labels) لها y0,…,ym−1y_0,\ldots,y_{m-1} (سنعتبرها مجرّد بتّات، أي yi∈{0,1}y_i\in \{0,1\}). مثلًا، يمكننا أن نرى الـ xix_i على أنّها صور لكلاب أو قطط، حيث يكون yi=1y_i=1 في الحالة الأولى و yi=0y_i=0 في الحالة الثانية. هدفنا أن نأتي بـ فرضيّة (hypothesis) أو مُتنبّئ (predictor) h:{0,1}n→{0,1}h:\{0,1\}^n \rightarrow \{0,1\} بحيث إذا أُعطينا مثالًا جديدًا xx له تسمية yy (غير معروفة لنا)، فإنّ hh ستُتنبّئ بالتسمية ب احتمالٍ كبير. أي أنّه باحتمالٍ كبير سيتحقّق h(x)=yh(x)=y. والفكرة في التعلّم الخاضع للإشراف هي استعمال مبدأ موس الحلاقة (Occam's Razor principle): الفرضيّة الأبسط التي تفسّر البيانات هي المرجّحة أن تكون صحيحة. وهناك عدّة طرق لنمذجة ذلك، لكن أحد المناهج الشائعة هو اختيار دالّة إلى حدٍّ ما بسيطة H:{0,1}k+n→{0,1}H:\{0,1\}^{k+n} \rightarrow \{0,1\}. ونرى أوّل kk مدخلات على أنّها المعاملات (parameters) وآخر nn مدخلات على أنّها بيانات المثال. (مثلًا، يمكننا أن نرى أوّل kk مدخلات من HH على أنّها تحدّد الأوزان والوصلات لشبكة عصبيّة ما تُطبَّق بعد ذلك على nn المدخلات الأخيرة.) وعندئذٍ يمكننا صياغة مسألة التعلّم الخاضع للإشراف على أنّها إيجاد، عند إعطاء مجموعة أمثلة موسومة S={(x0,y0),…,(xm−1,ym−1)}S=\{ (x_0,y_0),\ldots,(x_{m-1},y_{m-1}) \}، المعاملات θ0,…,θk−1∈{0,1}\theta_0,\ldots,\theta_{k-1} \in \{0,1\} التي تُقلّل عدد الأخطاء التي يرتكبها المتنبّئ x↦H(θ,x)x \mapsto H(\theta,x) (وهذا ما يُعرف عادةً بـتصغير الخطر التجريبي (Empirical Risk Minimization).)

بمعنى آخر، يمكننا تعريف الدالّة FS:{0,1}k→[m]F_S:\{0,1\}^k \rightarrow [m] لكلّ مجموعة SS كما سبق بحيث FS(θ)=∑(x,y)∈S∣H(θ,x)−y∣F_S(\theta) = \sum_{(x,y)\in S} |H(\theta,x)-y|. والآن، إيجاد القيمة θ\theta التي تُقلّل FS(θ)F_S(\theta) معادل لحلّ مسألة التعلّم الخاضع للإشراف بالنسبة إلى HH. ولكلّ H:{0,1}k+n→{0,1}H:\{0,1\}^{k+n} \rightarrow \{0,1\} قابلة للحساب بزمن متعدّد الحدود، يمكن «تشكيل» مهمّة تصغير FS(θ)F_S(\theta) لتأخذ شكل مبرهنة — التحسين انطلاقًا من P=NP، ومن ثمّ إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا حلّ مسألة التعلّم الخاضع للإشراف في عموميّة واسعة. وفي الحقيقة، تمتدّ هذه الملاحظة إلى أيّ نموذج تعلّم تقريبًا، وتتيح إيجاد المتنبّئات الأمثلّية عند إعطاء أصغر عدد من الأمثلة. (وهذا على النقيض من خوارزميات التعلّم الحالية العديدة، التي تعتمد غالبًا على توفّر وصولٍ إلى عددٍ هائل من الأمثلة −- بعيد كلّ البعد عن الحدّ الأدنى اللازم، وعلى وجه الخصوص بعيدًا كلّ البعد عن عدد الأمثلة الذي يستعمله البشر في المهمّات نفسها.)

مثال: كسر الأنظمة المشفّرة

سنتناول التشفير (cryptography) لاحقًا في هذه الدورة، لكنّه تبيّن أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} فيمكن كسر كلّ نظام تشفير تقريبًا بكفاءة. أحد المناهج هو اعتبار إيجاد مفتاح التشفير بوصفه حالةً من مسألة تعلّم خاضع للإشراف. فإذا وُجد نظام تشفير يحوّل رسالة «نصًّا صريحًا» (plaintext) pp ومفتاحًا θ\theta إلى «نصٍّ مشفّر» (ciphertext) cc، فإنّ هدفنا، عند إعطاء أمثلة من أزواج النصّ المشفّر/النصّ الصريح من الشكل (c0,p0),…,(cm−1,pm−1)(c_0,p_0),\ldots,(c_{m-1},p_{m-1})، هو إيجاد المفتاح θ\theta بحيث E(θ,pi)=ciE(\theta,p_i)=c_i حيث EE هي خوارزمية التشفير. ولو بدا لك أنّ الحصول على مثل هذه «الأمثلة الموسومة» غير واقعيّ، فإنّ الأمر تبيّن — كما تعلّم ببطء كثيرٌ من مصمّمي التشفير الهواة الذين يصمّمون في بيوتهم — أنّ هذا في الواقع شائع جدًّا في مواقف الحياة الحقيقيّة، وأنّه من الممكن أيضًا تخفيف الافتراض بأن يكون لدينا أقلّ قدر ممكن من المعلومات المسبقة عن النصّ الصريح (مثلًا، أنّه نصّ إنجليزي). ونؤجّل المعالجة الأكثر رسمية إلى التشفير.

إيجاد البراهين الرياضية

في سياق مبرهنة غودل، ناقشنا مفهوم نظام البرهنة (انظر برنامج هيلبرت ومبرهنة غودل في عدم الاكتمال). وبعبارة عامّة، يمكن أن نرى نظام برهنة على أنّه خوارزمية V:{0,1}∗→{0,1}V:\{0,1\}^* \rightarrow \{0,1\} (تُعرف بـ_المُتحقّق_ (verifier)) بحيث إذا أُعطيت عبارة (statement) x∈{0,1}∗x\in \{0,1\}^* و_برهان مُرشَّح_ (candidate proof) w∈{0,1}∗w\in \{0,1\}^*, فإنّ V(x,w)=1V(x,w)=1 إذا وفقط إذا كان ww يرمّز برهانًا صحيحًا للعبارة xx. وأي نوع من أنظمة البراهين المستعملة في الرياضيات للهندسة أو نظرية الأعداد أو التحليل أو ما سواها هو حالة من هذه الصورة. وفي الحقيقة، لأنظمة البراهين الرياضية القياسيّة صورةً أبسطُ من ذلك، إذ إنّ البرهان ww يرمّز تتابعًا (sequence) من السطور w0,…,wmw^0,\ldots,w^m (كلّ سطر منها في حدّ ذاته سلسلة ثنائيّة) بحيث كلّ سطر wiw^i إمّا بديهية (axiom) وإمّا ينتج عن بعض السطور السابقة بتطبيق قاعدة استنتاج ما (inference rule). مثلًا، بديهيات بيانو (Peano's axioms) ترمّز مجموعة من البديهيات والقواعد للأعداد الطبيعيّة، ويمكن استعمالها لصياغة البراهين في نظرية الأعداد. وهناك أيضًا أنظمة بديهيّة أقوى، وأشهرها زيرملو-فرانكل مع بديّة الاختيار (Zermelo–Fraenkel with the Axiom of Choice) أو ZFC اختصارًا. وعليه، فمع أنّ الرياضيين يكتبون أوراقهم عادةً بلغة طبيعيّة، فإنّ براهين نظريّة الأعداد يمكن عادةً ترجمتها إلى ZFC أو إلى أنظمة مماثلة، ومن ثمّ وعلى وجه الخصوص فإنّ وجود برهان من nn صفحة لعبارة xx يقتضي وجود سلسلة ww من الطول poly(n)poly(n) (وفي الحقيقة غالبًا O(n)O(n) أو O(n2)O(n^2)) ترمّز البرهان في مثل هذا النظام. فضلا عن ذلك، بما أنّ التحقّق من برهان يقتصر على المرور على كلّ سطر والتأكّد من أنّه ينتج فعلًا عن السطور السابقة، فإنّ من السهل إلى حدٍّ معقول إنجاز ذلك في O(∣w∣)O(|w|) أو O(∣w∣2)O(|w|^2) (حيث ∣w∣|w| كما جرت العادة تدلّ على طول البرهان ww). وهذا يعني أنّ لكلّ نظام براهنة معقول VV تكون الدالّة التالية SHORTPROOFV:{0,1}∗→{0,1}SHORTPROOF_V:\{0,1\}^* \rightarrow \{0,1\} في NP\mathbf{NP}، حيث لكلّ مدخل من الشكل x1mx1^m، يكون SHORTPROOFV(x,1m)=1SHORTPROOF_V(x,1^m)=1 إذا وفقط إذا وُجد w∈{0,1}∗w\in \{0,1\}^* مع ∣w∣≤m|w|\leq m بحيث V(xw)=1V(xw)=1. أي إنّ SHORTPROOFV(x,1m)=1SHORTPROOF_V(x,1^m)=1 إذا وُجد برهان (في النظام VV) من الطول mm بتًّا على الأكثر يُثبت أنّ xx صادقة. وعليه، إذا كان P=NP\mathbf{P}=\mathbf{NP}، فإنّه رغم مبرهنتَي غودل في عدم الاكتمال، لا يزال بإمكاننا أتمتة الرياضيات بالمعنى إيجاد براهين ليست طويلة جدًّا لكلّ عبارة لها برهان. (وبصراحة، إذا كان أقصر برهان لعبارة ما يتطلّب تيرابايت، فالرياضيّون البشر لن يجدوه أبدًا أيضًا.) ولهذا السبب شعر غودل نفسه أنّ مسألة ما إذا كانت SHORTPROOFVSHORTPROOF_V لها خوارزمية ذات زمن متعدّد الحدود مسألة مهمّة جدًّا. وكما كتب غودل في رسالة إلى جون فون نيومان عام 1956 (قبل أن يُعرَّف رسميًا مفهوم NP\mathbf{NP} أو حتى «الزمن متعدّد الحدود»):

.بوسعنا وبسهولة أن نُنشئ آلة تورينج، تمكّننا، لكلّ صيغة FF في منطق الكمّيات من الرتبة الأولى ولكلّ عدد طبيعي nn، من تحديد ما إذا وُجد برهان لـFF من الطول nn (الطول = عدد الرموز). وليكن ψ(F,n)\psi(F,n) عدد الخطوات التي تحتاجها الآلة لهذا، وليكن φ(n)=max⁡Fψ(F,n)\varphi(n) = \max_F \psi(F,n). والسؤال هو كم ينمو φ(n)\varphi(n) بسرعة بالنسبة إلى آلة مثلى. ويمكن إظهار أنّ φ≥k⋅n\varphi \geq k \cdot n [لبعض الثابت k>0k>0]. فإذا وُجد فعلًا آلة ذات φ(n)∼k⋅n\varphi(n) \sim k \cdot n (أو حتى ∼k⋅n2\sim k\cdot n^2)، فإنّ ذلك كان له نتائج ذات بالغة الأهمية. أي أنّه من الواضح أنّه رغم عدم قابلية حلّ مسألة Entscheidungsproblem،[3] يمكن استبدال العمل الذهني للرياضيّ بشأن أسئلة «نعم-أو-لا» استبدالًا تامًّا بآلة. وفي الواقع، ما على المرء سوى اختيار العدد الطبيعي nn كبيرًا إلى حدٍّ بحيث إن لم تُعطِ الآلة نتيجةً، فلا معنى للتفكير أكثر في المسألة.

للعدّة من أنظمة البراهنة المعقولة (بما فيها النظام الذي أشار إليه غودل)، تكون SHORTPROOFVSHORTPROOF_V في الواقع NP\mathbf{NP}-كاملة، ومن ثمّ يمكن اعتبار غودل أوّل من صاغ سؤال P مقابل NP. وللأسف، لم تُكتشَف الرسالة إلا في عام 1988.

إزالة الكمّيات (متقدّم)

إذا كان P=NP\mathbf{P}=\mathbf{NP} نستطيع أن نحلّ كلّ مسائل NP\mathbf{NP} البحثية و_التحسينية_ في زمن متعدّد الحدود. لكنّ ألسنا نستطيع فعل المزيد؟ تبيّن أنّ الجواب هو نعم، نستطيع!

يمكن أن نرى مسألة قرار في NP\mathbf{NP} على أنّها مهمّة تحديد، عند إعطاء سلسلة ما x∈{0,1}∗x\in \{0,1\}^*، صحّة عبارة من الشكل ∃y∈{0,1}p(∣x∣)V(xy)=1 \exists_{y\in \{0,1\}^{p(|x|)}} V(xy)=1 لبعض خوارزمية VV ذات زمن متعدّد الحدود وبعض متعدّد حدود p:N→Np:\N \rightarrow \N. أي إنّنا نحاول أن نحدّد، عند إعطاء سلسلة ما xx، ما إذا كان يوجد سلسلة yy بحيث تُحقّق xx و yy شرطًا ما VV يمكن التحقّق منه في زمن متعدّد الحدود. مثلًا، في مسألة المجموعة المستقلّة (independent set)، تمثّل السلسلة xx رسمًا بيانيًا GG وعددًا kk، وتمثّل السلسلة yy مجموعة جزئية SS من رؤوس GG، والشرط الذي نتحقّق منه هو ما إذا كان ∣S∣≥k|S| \geq k ولا توجد حافة {u,v}\{u,v\} في GG بحيث يكون u∈Su\in S و v∈Sv\in S معًا.

ويمكننا أن نعتبر عبارات أكثر عمومًا، مثل التحقّق، عند إعطاء سلسلة x∈{0,1}∗x\in \{0,1\}^* من صحّة عبارة من الشكل ∃y∈{0,1}p0(∣x∣)∀z∈{0,1}p1(∣x∣)V(xyz)=1  , \exists_{y \in \{0,1\}^{p_0(|x|)}} \forall_{z \in \{0,1\}^{p_1(|x|)}} V(xyz)=1 \;, والتي تُقابل بالكلمات التحقّق، عند إعطاء سلسلة ما xx، ممّا إذا كان يوجد سلسلة yy بحيث لكلّ سلسلة zz، الثلاثيّة (x,y,z)(x,y,z) تُحقّق شرطًا ما يمكن التحقّق منه في زمن متعدّد الحدود. ويمكننا كذلك أن نعتبر مستويات أكثر من الكمّيات، مثل التحقّق من صحّة العبارة ∃y∈{0,1}p0(∣x∣)∀z∈{0,1}p1(∣x∣)∃w∈{0,1}p2(∣x∣)V(xyzw)=1 \exists_{y \in \{0,1\}^{p_0(|x|)}} \forall_{z\in \{0,1\}^{p_1(|x|)}}\exists_{w\in \{0,1\}^{p_2(|x|)}} V(xyzw)=1 وهكذا وهكذا.

مثلًا، إذا أُعطينا برنامج NAND-CIRC PP بـ nn مدخلًا، فقد نرغب في إيجاد أصغر برنامج NAND-CIRC P′P' يحسب الدالّة نفسها التي يحسبها PP. ويمكن صياغة سؤال ما إذا وُجد مثل هذا P′P' الذي يمكن وصفه بسلسلة من ss بتًّا على الأكثر على النحو التالي:

∃P′∈{0,1}s∀x∈{0,1}nP(x)=P′(x) \exists_{P' \in \{0,1\}^{s}} \forall_{x\in \{0,1\}^n} P(x)=P'(x)

والتي لها الشكل المعادلة. (وبما أنّ برامج NAND-CIRC تكافئ الدوائر البوليانيّة، فإنّ مسألة البحث المقابلة لـ المعادلة، المعروفة بـمسألة تصغير الدوائر (circuit minimization problem)، تُدرَس على نطاق واسع في الهندسة. يمكنك القفز إلى تطبيق: خوارزمية ذات تحسّن ذاتي لـ 3SAT لترى تطبيقًا مقنعًا بشكل خاص لهذا.)

ومثال آخر على عبارة تتضمّن aa مستويات من الكمّيات هو التحقّق، عند إعطاء وضعيّة شطرنج xx، ممّا إذا وُجدت استراتيجية تضمن فوز الأبيض خلال aa خطوة. فمثلًا، إذا كان a=3a=3 فإنّنا نرغب في التحقّق ممّا إذا كان، عند إعطاء وضعيّة اللوح xx، يوجد نقلة yy للأبيض بحيث لكلّ نقلة zz للسواد يوجد نقلة ww للأبيض تنتهي بالمات.

تبيّن أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا حلّ هذه الأنواع من المسائل أيضًا:

مبرهنة — انهيار تسلسل متعدّد الحدود المتدرّج

إذا كان P=NP\mathbf{P}=\mathbf{NP} فإنّه لكلّ a∈Na\in \N ولكلّ متعدّد حدود p:N→Np:\N \rightarrow \N ولكلّ خوارزمية VV ذات زمن متعدّد الحدود، توجد خوارزمية SOLVEV,aSOLVE_{V,a} ذات زمن متعدّد تُخرج، عند مدخل x∈{0,1}nx\in \{0,1\}^n، القيمة 11 إذا وفقط إذا ∃y0∈{0,1}m∀y1∈{0,1}m⋯Qya−1∈{0,1}mV(xy0y1⋯ya−1)=1 \exists_{y_0\in \{0,1\}^m} \forall_{y_1\in \{0,1\}^m} \cdots \mathcal{Q}_{y_{a-1}\in \{0,1\}^m} V(xy_0y_1 \cdots y_{a-1})=1 حيث m=p(n)m=p(n) و Q\mathcal{Q} إمّا ∃\exists وإمّا ∀\forall بحسب ما إذا كان aa فرديًّا أم زوجيًّا، على التوالي. (لتسهيل التدوين، نفترض أنّ كلّ السلاسل التي نطبّق عليها الكمّيات لها الطول نفسه m=p(n)m=p(n)، لكن باستعمال حشوٍّ (padding) بسيط يمكن إظهار أنّ هذا يغطّي الحالة العامّة ذات الأطوال المتعدّدة الحدود المختلفة.)

لفهم الفكرة وراء البرهان، لننظر في الحالة الخاصّة التي نريد فيها أن نحدّد، عند إعطاء x∈{0,1}nx\in \{0,1\}^n، ما إذا كان لكلّ y∈{0,1}ny \in \{0,1\}^n يوجد z∈{0,1}nz\in \{0,1\}^n بحيث V(xyz)=1V(xyz)=1. ولنفترض الدالّة FF بحيث يكون F(xy)=1F(xy)=1 إذا وُجد z∈{0,1}nz\in \{0,1\}^n بحيث V(xyz)=1V(xyz)=1. وبما أنّ VV تعمل بزمن متعدّد الحدود فإنّ F∈NPF\in \mathbf{NP}، ومن ثمّ إذا كان P=NP\mathbf{P}=\mathbf{NP} فلا بدّ من وجود خوارزمية V′V' تُخرج، عند مدخل x,yx,y، القيمة 11 إذا وفقط إذا وُجد z∈{0,1}nz\in \{0,1\}^n بحيث V(xyz)=1V(xyz)=1. والآن يمكننا أن نرى أنّ العبارة الأصليّة التي ندرسها صادقة إذا وفقط إذا كان لكلّ y∈{0,1}ny\in \{0,1\}^n، V′(xy)=1V'(xy)=1، أي أنّها خاطئة إذا وفقط إذا تحقّق الشرط التالي (∗)(*): وُجد سلسلة ما y∈{0,1}ny\in \{0,1\}^n بحيث V′(xy)=0V'(xy)=0. لكن من أجل كلّ x∈{0,1}nx\in \{0,1\}^n، فإنّ مسألة ما إذا كان الشرط (∗)(*) نفسه في NP\mathbf{NP} (بافتراض أنّه يمكن حساب V′V' في زمن متعدّد الحدود) هي بدورها مسألة في NP\mathbf{NP}، ومن ثمّ تحت افتراض P=NP\mathbf{P}=\mathbf{NP} يمكننا تحديد في زمن متعدّد الحدود ما إذا كان الشرط (∗)(*)، وبالتالي عبارتنا الأصليّة، صادقًا.

برهان

نبرهن المبرهنة بالاستدلال. نفترض أنّ هناك خوارزمية SOLVEV,a−1SOLVE_{V,a-1} ذات زمن متعدّد الحدود تستطيع حلّ مسألة المعادلة من أجل a−1a-1، ونستعملها لحلّ المسألة من أجل aa. ومن أجل a=1a=1، يكون SOLVEV,a−1(x)=1SOLVE_{V,a-1}(x)=1 إذا وفقط إذا كان V(x)=1V(x)=1، وهذا حساب بزمن متعدّد الحدود لأنّ VV تعمل بزمن متعدّد الحدود. لكلّ x,y0x,y_0، عرّف العبارة φx,y0\varphi_{x,y_0} على النحو التالي:

φx,y0=∀y1∈{0,1}m∃y2∈{0,1}m⋯Qya−1∈{0,1}mV(xy0y1⋯ya−1)=1 \varphi_{x,y_0} = \forall_{y_1\in \{0,1\}^m} \exists_{y_2 \in \{0,1\}^m} \cdots \mathcal{Q}_{y_{a-1}\in \{0,1\}^m} V(xy_0y_1 \cdots y_{a-1})=1

بحسب تعريف SOLVEV,aSOLVE_{V,a}، فإنّ هدفنا من أجل كلّ x∈{0,1}nx\in \{0,1\}^n هو أن يكون SOLVEV,a(x)=1SOLVE_{V,a}(x)=1 إذا وفقط إذا وُجد y0∈{0,1}my_0 \in \{0,1\}^m بحيث φx,y0\varphi_{x,y_0} صادقة.

نفي φx,y0\varphi_{x,y_0} هو العبارة

φ‾x,y0=∃y1∈{0,1}m∀y2∈{0,1}m⋯Q‾ya−1∈{0,1}mV(xy0y1⋯ya−1)=0 \overline{\varphi}_{x,y_0} = \exists_{y_1\in \{0,1\}^m} \forall_{y_2 \in \{0,1\}^m}\cdots \overline{\mathcal{Q}}_{y_{a-1}\in \{0,1\}^m} V(xy_0y_1 \cdots y_{a-1})=0

حيث Q‾\overline{\mathcal{Q}} هي ∃\exists إذا كان Q\mathcal{Q} هو ∀\forall، و Q‾\overline{\mathcal{Q}} هي ∀\forall فيما عدا ذلك. (من فضلك توقّف وتأكّد من أنّك تفهم لماذا هذا صحيح، فهذا تعميم لحقيقة أنّه إذا كان Ψ\Psi شرطًا منطقيًّا ما فإنّ نفي ∃y∀zΨ(y,z)\exists_y \forall_z \Psi(y,z) هو ∀y∃z¬Ψ(y,z)\forall_y \exists_z \neg \Psi(y,z).)

الملاحظة الحاسمة هي أنّ φ‾x,y0\overline{\varphi}_{x,y_0} هو بالضبط عبارة من الشكل الذي ندرسه مع a−1a-1 كمّية بدلًا من aa، ومن ثمّ بمقتضى فرضيّة الاستدلال لدينا وُجدت خوارزمية ما S‾\overline{S} ذات زمن متعدّد الحدود تُخرج، عند مدخل xy0xy_0، القيمة 11 إذا وفقط إذا كانت φ‾x,y0\overline{\varphi}_{x,y_0} صادقة. إذا كانت SS هي الخوارزمية التي تُخرج عند مدخل x,y0x,y_0 القيمة 1−S‾(xy0)1-\overline{S}(xy_0)، فإنّنا نرى أنّ SS تُخرج 11 إذا وفقط إذا كانت φx,y0\varphi_{x,y_0} صادقة. ومن ثمّ يمكننا إعادة صياغة العبارة الأصليّة المعادلة على النحو التالي:

∃y0∈{0,1}mS(xy0)=1\exists_{y_0 \in \{0,1\}^m} S(xy_0)=1

لكن بما أنّ SS خوارزمية ذات زمن متعدّد الحدود، فإنّ المعادلة عبارة واضحة في NP\mathbf{NP}، ومن ثمّ تحت افتراضنا P=NP\mathbf{P}=\mathbf{NP} توجد خوارزمية ذات زمن متعدّد الحدود تحدّد، عند مدخل x∈{0,1}nx\in \{0,1\}^n، ما إذا كانت المعادلة صادقة، وبالتالي أيضًا ما إذا كانت العبارة الأصليّة المعادلة صادقة.

ويمكن لخوارزمية مبرهنة — انهيار تسلسل متعدّد الحدود المتدرّج أن تحلّ مسألة البحث أيضًا: أن تجد القيمة y0y_0 التي تُثبت صحّة المعادلة. ولنلاحظ أنّه رغم أنّ هذه الخوارزمية تعمل بزمن متعدّد الحدود، فإنّ أُسّ هذا المتعدّد يكبر إلى حدٍّ سريع جدًّا. فإذا كانت خوارزمية NANDSAT الأصليّة تتطلّب زمن Ω(n2)\Omega(n^2)، فإنّ حلّ aa مستويات من الكمّيات يتطلّب زمن Ω(n2a)\Omega(n^{2^a}).[4]

تطبيق: خوارزمية ذات تحسّن ذاتي لـ 3SAT3SAT

لنفترض أنّنا وجدنا خوارزمية AA ذات زمن متعدّد الحدود لـ 3SAT3SAT تكون «جيدة لكن ليست عظيمة». مثلًا، ربما تعمل خوارزميتنا في زمن cn2cn^2 لثابت cc ليس صغيرًا أكثر من اللازم. لكنّه من المحتمل أن تكون خوارزمية SAT الأفضل الممكنة أكثر كفاءةً بكثير من ذلك. وربما، كما خمّنا من قبل، هناك دائرة C∗C^* من 106n10^6 n بوابة على الأكثر تحسب 3SAT على nn متغيّرًا، ونحن لم نكتشفها بعد. ويمكننا استعمال مبرهنة — انهيار تسلسل متعدّد الحدود المتدرّج لـ«انطلاق» (bootstrap) خوارزمية 3SAT الأصليّة «الجيدة لكن ليست العظيمة» من أجل اكتشاف الخوارزمية المثلى. والفكرة هي أنّنا يمكننا صياغة سؤال ما إذا كانت هناك دائرة من الحجم ss تحسب 3SAT لكلّ المداخل من الطول nn على النحو التالي: يوجد دائرة CC من الحجم ≤s\leq s بحيث لكلّ صيغة φ\varphi يصفها سلسلة من الطول nn على الأكثر، إذا كان C(φ)=1C(\varphi)=1 فإنّ يوجد إسناد xx لمتغيّرات φ\varphi يُشبعها. ويمكننا أن نرى أنّ هذا عبارة من الشكل المعادلة، ومن ثمّ إذا كان P=NP\mathbf{P}=\mathbf{NP} أمكننا حلّها في زمن متعدّد الحدود أيضًا. ومن ثمّ يمكننا أن نتخيّل استثمار موارد حوسبة هائلة في تشغيل AA مرّة واحدة لاكتشاف الدائرة C∗C^*، ثمّ استعمال C∗C^* في كلّ الحوسبات اللاحقة.

تقريب مسائل العدّ وأخذ عيّنات من التوزيع اللاحِق (متقدّم، اختياري)

إذا أعطينا دائرة بوليانيّة CC، وكان P=NP\mathbf{P}=\mathbf{NP}، أمكننا أن نجد مدخلًا xx (إن وُجد) بحيث C(x)=1C(x)=1. لكن ماذا إن كان هناك أكثر من xx واحد من هذا النوع؟ من الواضح أنّنا لا نستطيع أن نُخرج بكفاءة كلّ هذه xx's، فقد يكون عددها أسّيًا. لكن يمكننا الحصول على تقريب ضربي جيّد إلى حدٍّ اعتباطي (أي معامل 1±ϵ1\pm \epsilon من أجل ϵ>0\epsilon>0 صغير إلى حدٍّ اعتباطي) لعدد هذه xx، فضلًا عن إخراج عنصر (شبه) منتظم من هذه المجموعة. التفاصيل خارج نطاق هذا الكتاب، لكنّ هذه النتيجة مُصاغة رسميًا في المبرهنة التالية (مع إغفال برهانها).

مبرهنة — العدّ التقريبي إذا كان P=NP\mathbf{P}=\mathbf{NP}

ليكن V:{0,1}∗→{0,1}V:\{0,1\}^* \rightarrow \{0,1\} خوارزميّة ما ذات زمن متعدّد الحدود، ولنفترض أنّ P=NP\mathbf{P}=\mathbf{NP}. عندئذٍ وُجدت خوارزمية COUNTVCOUNT_V التي، عند مدخل x,1m,ϵx,1^m,\epsilon، تعمل في زمن متعدّد الحدود في ∣x∣,m,1/ϵ|x|,m,1/\epsilon وتُخرج عددًا في [2m+1][2^m+1] يحقّق

(1−ϵ)COUNTV(x,m,ϵ)≤∣{y∈{0,1}m  :  V(xy)=1}∣≤(1+ϵ)COUNTV(x,m,ϵ)  .(1-\epsilon)COUNT_V(x,m,\epsilon) \leq \Bigl|\{ y \in \{0,1\}^m \;:\; V(xy)=1 \} \Bigr| \leq (1+\epsilon)COUNT_V(x,m,\epsilon) \;.

بمعنى آخر، تُقدّم الخوارزمية COUNTVCOUNT_V تقريبًا بمعامل 1±ϵ1 \pm \epsilon لعدد الشهادات (witnesses) على xx بالنسبة إلى خوارزمية التحقّق VV. ومرّة أخرى، لفهم هذه المبرهنة من المفيد أن نرى كيف تقتضي أنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} فلا بدّ من وجود خوارزمية ذات زمن متعدّد الحدود تحسب، عند إعطاء رسم بياني GG وعدد kk، عددًا KK يوافق عدد المسارات البسيطة في GG من الطول kk ضمن معامل 1±0.011 \pm 0.01. (أي إنّ KK يكون بين 0.990.99 و 1.011.01 ضعفًا لعدد تلك المسارات.)

أخذ عيّنات من التوزيع اللاحِق والبرمجة الاحتماليّة. كما يمكن تمديد خوارزمية العدّ لتُستعمل في أخذ عيّنات من التوزيع اللاحِق المعطى. أي إنّ، إذا كانت C:{0,1}n→{0,1}mC:\{0,1\}^n \rightarrow \{0,1\}^m دائرة بوليانيّة و y∈{0,1}my\in \{0,1\}^m، فإنّه إذا كان P=NP\mathbf{P}=\mathbf{NP} استطعنا أن نأخذ عيّنة من (تقريب قريب لـ) توزيع x∈{0,1}nx\in \{0,1\}^n المنتظم المشروط بـC(x)=yC(x)=y. وتُعرف هذه المهمّة بـ_أخذ عيّنات التوزيع اللاحِق_ (posterior sampling) وهي بالغة الأهمّيّة في تحليل البيانات البايزي. وفي هذه الأيام لا تُعرف طريقة لتحقيق ذلك إلا لدوائر CC ذات شكل خاص جدًّا، وحتى في هذه الحالات فإنّنا في أغلب الأحوال لا نملك ضماناتٍ بشأن جودة خوارزمية أخذ العيّنات. ويُعرف ميدان إجراء الاستدلالات بأخذ عيّنات من التوزيع اللاحق الذي تحدّده الدوائر أو البرامج بـالبرمجة الاحتماليّة.

ماذا يعني كلّ هذا؟

إذن، ماذا سيحدث إذا كانت لدينا خوارزمية 106n10^6n لـ 3SAT3SAT؟ لقد ذكرنا أنّ مسائل NP\mathbf{NP}-الصعبة تظهر في سياقات كثيرة، وأنّ العلماء والمهندسين والمبرمجين وغيرهم يصادفون هذه المسائل في عملهم اليومي بانتظام. ومن المحتمل أن تسهّل خوارزمية 3SAT3SAT أفضل حياتهم، لكنّ هذا ليس المكان الصحيح للبحث عن أكثر النتائج تأسيسية. وفعلًا، بينما جعل اختراع الحاسوب الإلكترونيّ بالطبع أسهل إجراء الحسابات التي كان الناس يجرونها بأجهزة ميكانيكيّة وبالقلم والورق، فإنّ أهمّ التطبيقات التي يُستعمل الحاسوب من أجلها اليوم لم تكن متخيَّلة قبل اختراعه.

وخوارزمية أسرع أُسّيًا لكلّ مسائل NP\mathbf{NP} ستكون تحسّنًا لا يقلّ عن جوهريّة الحاسوب نفسه بل هو في بعض النواحي أكثر جوهريّة، ومن الصعب علينا بقدر ما كان على بابيج أن يتخيّل ما يترتّب عليها أن نتخيّلها اليوم. ولنبدأ بذلك، فإنّ مثل هذه الخوارزمية تغيّر تمامًا الطريقة التي نبرمج بها الحاسوب. وبما أننا نستطيع أن نجد آليًا «أفضل» برنامج (بأيّ مقياس نختاره) يحقّق مهمّة ما، فلن نحتاج إلى تعريف كيف نحقّق المهمّة، بل يكفي أن نحدّد اختبارات لما يُعدّ حلًّا جيدًا، بل نتمكّن أيضًا من التأكّد من أنّ برنامجًا ما يُحقّق عددًا أسّيًا من الاختبارات دون تشغيلها فعليًا.

غالبًا ما توصَف إمكانيةُ P=NP\mathbf{P}=\mathbf{NP} بأنّها «أتمتة الإبداع». وهناك شيء في هذا التشبيه، إذ إنّنا نرى كثيرًا أنّ الحلّ الإبداعيّ هو حلّ يصعب اكتشافه لكنّه، ما إن تلمع «الشرارة»، يصبح سهل التحقّق. لكنّ في هذه العبارة عنصر من الغرور أيضًا، إذ إنّها توحي بأنّ أكثر النتائج إثارةً لهذا الاختراق الخوارزميّ ستكون أنّ الحاسوب سينجح في فعل شيء يفعله البشر اليوم أصلًا. ومع ذلك، فإنّ الذكاء الاصطناعيّ، مثله كمثل حقول كثيرة أخرى، سيتأثّر تأثّرًا كبيرًا بخوارزمية 3SAT كفؤة. مثلًا، من الواضح أنّه أسهل بكثير إيجاد خوارزمية أفضل للشطرنج عندما، لأيّ خوارزمية PP، تستطيع أن تجد أصغر خوارزمية P′P' تلعب الشطرنج أفضل من PP. فضلا عن ذلك، كما ذكرنا أعلاه، فإنّ جوهر تعلّم الآلات (والاستدلال الإحصائيّ على وجه العموم) هو إيجاد مفاهيم «بسيطة» تفسّر البيانات المرصودة، وإذا كان NP=P\mathbf{NP}=\mathbf{P} أمكننا البحث عن هذه المفاهيم آليًّا بالنسبة إلى أيّ مفهوم لـ«البساطة» نراه مناسبًا. وفي الحقيقة، يمكننا حتى أن «نتخطّى الوسيط» ونجري بحثًا آليًّا عن خوارزمية التعلّم ذات أصغر خطأ تعميم. وفي نهاية المطاف، فإنّ ميدان الذكاء الاصطناعيّ هو محاولة «اختصار» مليارات السنين من التطوّر للحصول على برامج اصطناعيّة تُطابق (أو تتفوّق على) أداء البرامج الطبيعيّة، وخوارزمية سريعة لـ NP\mathbf{NP} ستوفّر الاختصار الأمثَل. (وتُعدّ من النظريّات المثيرة للاهتمام أنّ P=NP\mathbf{P}=\mathbf{NP} وأنّ التطوّر قد اكتشف هذه الخوارزمية بالفعل، ونحن نستعملها من غير أن ندري. وفي الوقت الحالي يبدو أنّ الأدلّة على هذا السيناريو ضئيلة جدًّا. وفي الحقيقة لدينا بعض النتائج الجزئيّة في الاتجاه المعاكس تُبيّن أنّه، بصرف النظر عمّا إذا كان P=NP\mathbf{P}=\mathbf{NP}، فإنّ أنواعًا كثيرة من خوارزميات «البحث المحلّي» أو «التطوّريّة» تتطلّب زمنًا أسّيًا لحلّ 3SAT ومسائل NP\mathbf{NP}-صعبة أخرى.)

والأهمّ من ذلك عمومًا، فإنّ خوارزمية أسرع لمسائل NP\mathbf{NP} ستكون نافعة إلى حدٍّ بعيد في أيّ مجال نواجه فيه مسائل حوسبية أو كمّية −- وهو في الحقيقة كلّ مجالات العلوم والرياضيات والهندسة. وهذا لن يساعدنا ليس فقط في مسائل ملموسة مثل تصميم جسر أفضل أو إيجاد دواء أفضل، بل أيضًا في معالجة ألغاز أساسيّة مثل محاولة إيجاد نظريّات علميّة أو «قوانين طبيعة». وفي حديث مثير للدهشة، يتحدّث الفيزيائي نيمما أركاني-حامد عن الجهد المبذول لإيجاد النظريّات العلميّة بالعبارات نفسها التي لوصفنا بها حلّ مسألة NP\mathbf{NP}، حلّ يسهل التحقّق منه أو يبدو «حتميًّا» متى وُجد، لكنّه يتطلّب البحث في فضاء هائل من الاحتمالات للوصول إليه، وكثيرًا ما يتعثّر عند نمطيّات محلّية:

"لقوانين الطبيعة هذا الإحساس المذهل بالحتميّة... وهو مرتبط بالكمال المحلّي."

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

إيجاد خوارزمية كفؤة لـ NP\mathbf{NP} يعني القدرة دائمًا على البحث في فضاء أسّي وإيجاد ليس الجبل «المحلّي» فحسب بل أيضًا أعلى قمّة.

لكنّ خوارزمية سريعة لمسائل NP\mathbf{NP} قد تُحدِث نوعًا جديدًا من الفهم، أكثر بكثير من أيّ تسريع للحوسبة. في كثير من المجالات التي يظهر فيها NP\mathbf{NP}-الاكتمال، لا يشكّل NP\mathbf{NP}-الاكتمال حاجزًا أمام حلّ المسائل الحوسبية بقدر ما يشكّل حاجزًا أمام الحصول على «صيغ مغلقة» أو أنواع أخرى من الأوصاف الإنشائيّة الأكثر لسلوك الأنظمة الطبيعيّة والبيولوجيّة والاجتماعية وغيرها. وخوارزمية أفضل لـ NP\mathbf{NP}، حتى لو كانت بزمن 2n2^{\sqrt{n}} فحسب، يبدو أنّها تتطلّب طريقة جديدة لفهم هذه الأنواع من الأنظمة، سواء أكان ذلك توصيف توازنات ناش، أم تشكيلات زجاج السبّن، أم الحالات الكمّية المتشابكة، أم أيّ من الأسئلة الأخرى التي يشكّل فيها NP\mathbf{NP} اليوم حاجزًا أمام الفهم التحليليّ. وستكون هذه الرؤى الجديدة مثمرًا إلى حدٍّ بعيد بغضّ النظر عن فائدتها الحوسبية.

إذا كان P=NP\mathbf{P}=\mathbf{NP}، أمكننا حلّ عدد هائل من مسائل الحسم والبحث والتحسين والعدّ وأخذ العيّنات، من كلّ مجالات نوشاط الإنسان، بكفاءة.

هل يمكن ألّا يكون P≠NP\mathbf{P} \neq \mathbf{NP} لا صادقًا ولا خاطئًا؟

فرضية الاستمرار (Continuum Hypothesis) هي حدس قدّمه جورج كانتور عام 1878، يقرّ عدم وجود نوع معيّن من الأعداد اللانهائية. (وإحدى صياغاته أنّه لكلّ مجموعة جزئية لا نهائية SS من الأعداد الحقيقيّة R\R، إمّا أن وُجدت دالّة f:S→Rf:S \rightarrow \R تناظر ثنائيًّا (bijection)، وإمّا أن وُجدت دالّة f:S→Nf:S \rightarrow \N تناظر ثنائيًّا.) لُعمِّر هذا المسألة آنذاك من أهمّ المسائل المفتوحة في نظريّة المجموعات، وكان حسم صحّتها أو خطئها أوّل مسألة طرحها هيلبرت في محاضرة عام 1900 التي ذكرناها من قبل. غير أنّه باستعمال النظرَيّات التي طوّرها غودل وتورينج، برهن بول كوهين عام 1963 أنّ فرضية الاستمرار ونفيها كلاهما متّسقان مع بديهيات نظريّة المجموعات القياسيّة (أي بديهيات زيرملو-فرانكل + بديّة الاختيار، أو «ZFC» اختصارًا). وبشكل رسميّ، ما برهنه هو أنّه إذا كان ZFC متّسقًا، فإنّ ZFC يبقى متّسقًا حين نفرض إمّا فرضية الاستمرار أو نفيها.

اليوم، يفسّر كثير من الرياضيين (لكن ليس كلّهم) هذه النتيجة على أنّها تقول إنّ فرضية الاستمرار ليست صادقة ولا خاطئة، وإنّما هي اختيار بديهيّ نُحَرّ في اتّجاهه أو في اتّجاهه المضادّ. هل يمكن أن ينطبق الشيء نفسه على P≠NP\mathbf{P} \neq \mathbf{NP}؟

باختصار، الجواب هو لا. مثلًا، لنفترض أنّنا نحاول الحسم بين فرضية «3SAT سهل» (هناك خوارزمية زمنها 106n10^6n لـ 3SAT) وفرضية «3SAT صعب» (من أجل كلّ nn، أيّ برنامج NAND-CIRC يحلّ 3SAT على nn متغيّرًا يتطلّب 210−6n2^{10^{-6}n} سطرًا). عندئذٍ، بما أنّه من أجل n=108n = 10^8 لدينا 210−6n>106n2^{10^{-6}n} > 10^6 n، فإنّ الأمر ينحصر في سؤال منتهي عمّا إذا وُجد برنامج NAND-CIRC بطول 101310^{13} سطرًا يحسم مسألة 3SAT على الصيغ ذات 10810^8 متغيّرًا أم لا. فإذا وُجد مثل هذا البرنامج فإنّ هناك برهانًا منتهيًا على وجوده، وهو الملفّ ذو الحجم التقريبي 1TB الذي يصف البرنامج، أمّا التحقّق منه فهو عملية التأكّد من نجاحه على كلّ المداخل (منتهية من حيث المبدأ وإن كانت غير عمليّة في الممارسة).[5] فإذا لم يوجد مثل هذا البرنامج، فإنّ هناك أيضًا برهانًا منتهيًا على ذلك، وإنّ كان أيّ مثل هذا البرهان سيستغرق وقتًا أطول إذ سنحتاج إلى تعداد كلّ البرامج أيضًا. وفي نهاية المطاف، بما أنّ الأمر ينحصر في عبارة منتهية حول البتّات والأعداد؛ إمّا أن العبارة أو نفيها يجب أن يتبع من البديهيات القياسيّة للحساب في عدد منتهٍ من خطوات الحساب. ولذلك لا يمكننا تبرير جهلنا في التمييز بين حالتي «3SAT سهل» و«3SAT صعب» بدعوى أنّ هذا قد يكون سؤالًا غير معرَّف بحكم طبيعته. وينطبق استدلال مشابه (بأعداد مختلفة) على صيغ أخرى من سؤال P مقابل NP. ولنلاحظ أنّه في حالة 3SAT الصعب، قد لا يوجد برهان قصير لهذه الحقيقة باستخدام البديهيات القياسيّة، وهذه مسألة يدرسها الناس في صيغ مقيّدة مختلفة من أنظمة البراهين.

هل P=NP\mathbf{P}=\mathbf{NP} صحيح «في الممارسة»؟

إنّ كون مسألة ما NP\mathbf{NP}-صعبة يعني أنّنا نعتقد لا وجود خوارزمية كفؤة تحلّها في الحالة الأسوأ. لكنّ هذا لا يعني أنّ كلّ حالة على حدة من حالات المسألة صعبة. مثلًا، إذا احتوى كلّ مُثابِت في حالة 3SAT φ\varphi على المتغيّر نفسه xix_i (ربما في صورته المنفيّة)، فإنّنا بتخمين قيمة لـ xix_i نستطيع أن نختزل φ\varphi إلى حالة 2SAT التي يمكن بعد ذلك حلّها بكفاءة. وتُستعمل تعميمات هذه الفكرة البسيطة في «حلالّات SAT» (SAT solvers)، وهي خوارزميات نجحت في حلّ صيغ SAT محدّدة ومثيرة للاهتمام بآلاف المتغيّرات، رغم اعتقادنا بأنّ SAT صعب أُسّيًا في الحالة الأسوأ. وعلى نحو مماثل، فإنّ كثيرًا من المسائل الناشئة في الاقتصاد وفي تعلّم الآلات NP\mathbf{NP}-صعبة.[6] ومع ذلك فإنّ البائعين والمشترين يتمكّنون من إيجاد أسعارٍ تُصفّي السوق (وكما يحبّ الاقتصاديّون أن يذكّروا، فهناك حليبٌ على الرفوف)، كما أنّ الفأر ينجح في التمييز بين القطط والكلاب. ولذلك يبدو أنّ الناس (والآلات) ينجحون بانتظام في حلّ حالاتٍ مثيرّة من مسائل NP\mathbf{NP}-صعبة، عادةً عبر استعمال مزيجٍ ما من التخمين مع إجراء تحسينات محلّية.

ومن الصحيح أيضًا أنّ هناك حالاتًا مثيرة كثيرة من مسائل NP\mathbf{NP}-صعبة لا نعرف حاليًا كيف نحلّها. وفي كلّ مجالات التطبيق، سواء كانت الحوسبة العلميّة أو التحسين أو التحكّم أو ما سواها، يصادف الناس غالبًا حالات صعبة من مسائل NP\mathbf{NP} تفشل فيها خوارزمياتنا الحالية. وفي الحقيقة، كما سنرى، تعتمد كلّ بنية أمن المعلومات الرقميّة لدينا على أنّ بعض الحالات الملموسة سهلة التوليد من 3SAT (أو بما يكافئها، من أيّ مسألة NP\mathbf{NP}-صعبة أخرى) صعبة أُسّيًا في حلّها.

ولذلك من الخطأ القول إنّ NP\mathbf{NP} سهل «في الممارسة»، كما من غير الصحيح اعتبار صعوبة NP\mathbf{NP} «الكلمة الأخيرة» في تعقيد مسألة، وعلى وجه الخصوص حين تتوفّر لدينا معلومات أكثر عن كيفية توليد أيّ حالة بعينها. وفهم «التعقيد النمطيّ» لمسائل NP\mathbf{NP}، فضلًا عن القدرات والقيود لبعض الاستدلالات (heuristics) مثل خوارزميات البحث المحلّي المختلفة، ميدان بحث نشط جدًّا. وسنرى المزيد عن هذه المواضيع لاحقًا في هذه الدورة.

وماذا لو كان P≠NP\mathbf{P} \neq \mathbf{NP}؟

إذن، فإنّ P=NP\mathbf{P}=\mathbf{NP} سيمنحنا كلّ أنواع النتائج الخياليّة. لكنّنا نشكّ بقوّة في أنّ P≠NP\mathbf{P} \neq \mathbf{NP}، بل إنّنا نشكّ في وجود خوارزمية لـ 3SAT أفضل بكثير من القوة الغاشمة. وإذا كان الأمر كذلك حقًّا، فهل هو كلّه أخبار سيّئة؟

قد يظنّ المرء أنّ نتائج الاستحالة، التي تخبرك بأنّك لا تستطيع فعل شيء ما، هي من ذلك النوع من الغيوم الذي لا وجه مُضيئًا له. لكنّ الواقع، كما ألمحنا من قبل، أنّه يملكه. يمكن استعمال مسألة صعبة في NP\mathbf{NP} (بمعنًى قويّ بما يكفي) لإنشاء شيفرة لا يمكن كسرها، وهي مهمّة ظلّت آلاف السنين حلماً ليس للجواسيس وحدهم بل لكثير من العلماء والرياضيين عبر الأجيال. لكنّ منظور التعقيد تبيّن أنّه يُقدّم أكثر بكثير من الشيفرات البسيطة، إذ يحقّق مهمّات لم يجرؤ الناس على حلم بها من قبل. ومن ذلك مفهوم التشفير بمفتاح عام (public key cryptography) الذي يسمح لشخصين بالتواصل بأمان دون أن يكونا قد تبادلا مفتاحًا سريًّا قطّ؛ و_النقد الإلكترونيّ_ (electronic cash) الذي يسمح بمعاملات خاصّة وآمنة دون سلطة مركزيّة؛ و_الحساب الآمن متعدّد الأطراف_ (secure multiparty computation) الذي يمكّن الأطراف من حساب دالّة مشتركة على مدخلات خاصّة دون كشف أيّ معلومات إضافية عنها. كذلك، كما سنرى، يمكن استعمال الصعوبة الحوسبية لتحلّ محلّ دور العشوائية في سياقات كثيرة.

فضلا عن ذلك، رغم أنّه من المريح أحيانًا أن نتظاهر بأنّ المسائل الحوسبية تُسلَّم إلينا ببساطة وأنّ مهمّتنا كعلماء حاسوب هي إيجاد الخوارزمية الأكثر كفاءة لها، فإنّ هذا ليس ما يجري في معظم تطبيقات الحوسبة. وعادةً فإنّ صياغة المسألة التي نريد حلّها بحدّ ذاتها مهمّة بالغة التعقيد. وحين نكتشف أنّ المسألة التي نريد حلّها NP\mathbf{NP}-صعبة، فقد يكون ذلك إشارة مفيدة على أنّنا استعملنا صياغة خاطئة لها.

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

خلاصة

  • سؤال ما إذا كان P=NP\mathbf{P}=\mathbf{NP} إحدى أهمّ المسائل وأكثرها إثارةً في علوم الحاسوب وفي العلم على عمومه، إذ تمسّ كلّ حقول العلوم الطبيعيّة والاجتماعية، فضلًا عن الرياضيات والهندسة.

  • إنّ أدلّتنا وفهمنا الحاليّين يؤيّدان سيناريو «SAT صعب» القائل إنّ لا وجود خوارزمية لـ 3SAT أو لكثير من مسائل NP\mathbf{NP}-صعبة أخرى أفضل بكثير من القوة الغاشمة.

  • غير أنّنا بعيدون جدًّا عن إثبات ذلك. فقد درس الباحثون إثبات حدود دنيا لعدد البوابات اللازمة لحساب دوالّ صريحة في صور مقيّدة من الدوائر، وأحرزوا بعض التقدّم في هذا الجهد، وولّدوا في الطريق أدوات رياضيّة وجدت استعمالات أخرى. لكنّنا لم نحصل في جوهر الأمر على أيّ تقدّم في إثبات حدود دنيا للنماذج العامة للحوسبة مثل الدوائر البوليانيّة وآلات تورينج. وفي الحقيقة لا نعرف حاليًا حتى كيف نستبعد إمكان أنّه لكلّ n∈Nn\in \N، مسألة SAT المقيّدة على مداخل من الطول nn دائرة بوليانيّة من أقلّ من 10n10n بوابة (مع أنّه يوجد دوالّ بـ nn مدخلًا تتطلّب 2n/(10n)2^n/(10n) بوابة على الأقلّ لحسابها).

  • إنّ فهم كيفية التعامل مع هذه الاستحالة الحوسبية بل حتى الاستفادة منها يشكّل جزءًا كبيرًا من البحث في علوم الحاسوب النظرية.

التمارين

ملاحظات مرجعيّة

كما ذكرنا من قبل، فإنّ استعراض أَرونسون [@aaronson2016p] هو عرضٌ ممتاز لمشكلة P مقابل NP. ومن الاستعراضات الأخرى الموصى بها لأَرونسون [@aaronson2005physicalreality]، الذي يناقش ما إذا كانت يمكن حساب مسائل NP\mathbf{NP} الكاملة بأيّ وسيلة فيزيائية.

تناقش الورقة [@buchfuhrer2011complexity] بعض النتائج حول المسائل في تسلسل متعدّد الحدود المتدرّج.


  1. كان بول إردوس (1913-1996) أحد أكثر الرياضيين غزارةً في الإنتاج في كلّ العصور. وبرغم أنّه كان ملحدًا، فإنّ إردوس كان كثيرًا ما يشير إلى «الكتاب» الذي يحتفظ فيه الله بأجمل برهان لكلّ مبرهنة رياضية. ↩︎

  2. العدد الرامزي kk-ث، ويُرمَز إليه بـR(k,k)R(k,k)، هو أصغر عدد nn بحيث لكل رسم بياني GG على nn رأسًا، يحتوي كلٌّ من GG و متمّمه على مجموعة مستقلّة من الحجم kk. فإذا كان P=NP\mathbf{P}=\mathbf{NP} نستطيع حساب R(k,k)R(k,k) في زمن متعدّد الحدود في 2k2^k، في حين قد يستغرق في الحالة الأخرى ما يقارب 222k2^{2^{2k}} خطوة. ↩︎

  3. عدم قابلية حلّ مسألة القرار (Entscheidungsproblem) تشير إلى عدم قابلية حساب الدالّة التي تُسقط عبارة في منطق من الرتبة الأولى إلى 11 إذا وفقط إذا كانت تلك العبارة لها برهان. ↩︎

  4. لا نعرف ما إذا كان هذا النقص جوهريًّا. وعلى حدّ علمنا، من المحتمل أن تكون مسألة الصيغة البوليانيّة الكمّيّة (quantified boolean formula) لها خوارزمية بزمن خطّي. غير أنّنا سنرى لاحقًا في هذه الدورة أنّها تستوفي مفهوم صعوبة PSPACE\mathbf{PSPACE} الذي هو أقوى حتى من صعوبة NP\mathbf{NP}. ↩︎

  5. قد لا يكون هذا النقص في الكفاءة جوهريًّا. فنتائج فحص البرامج (program-checking) و_البراهين التفاعليّة_ (interactive proofs) و_تعقيد الحالة المتوسطة_ (average-case complexity) يمكن أن تُستعمل للتحقّق الكفؤ من براهين عبارات ذات صلة. وعلى النقيض من ذلك، قد يكون النقص في الكفاءة في التحقّق من فشل كلّ البرامج جوهريًّا. ↩︎

  6. الصعوبة الحوسبية لمسائل الاقتصاد مثل إيجاد التوازنات المثلى (أو أيّ توازنات) مسألة دقيقة جدًّا. فبعض صيغ هذه المسائل NP\mathbf{NP}-صعبة، بينما لغيرها تعقيد «وسيط» معيّن. ↩︎