الاختزال في زمن متعدد الحدود {#reductionchap }
الاختزال في زمن متعدد الحدود
- إدخال مفهوم الاختزال في زمن متعدد الحدود بوصفه وسيلةً لربط تعقيد المسائل ببعضها. \
- رؤية عدة أمثلة على هذا النوع من الاختزالات. \
- 3SAT بوصفه نقطة انطلاق أساسية للاختزال.
لننظر في بعض المسائل التي صادفناها في الحساب الكفؤ: مقدمة غير رسمية:
-
مسألة 3SAT: اتخاذ قرار ما إذا كانت لصيغة 3CNF معطاة إسناد مُشبِع.
-
إيجاد أطول مسار في رسم بياني.
-
إيجاد أكبر قطع في رسم بياني.
-
حلّ المعادلات التربيعية (quadratic equations) في متغيّرًا .
لدى جميع هذه المسائل الصفات التالية:
-
هذه مسائل مهمّة، وقد بذل الناس جهدًا كبيرًا في محاولة إيجاد خوارزميات أفضل لها.
-
كل واحدة منها مسألة بحث (search)، أي أنّنا نبحث عن حلّ «جيد» بمعنى يسهل تعريفه (مثل: مسار طويل، أو إسناد مُشبِع، إلخ).
-
لكلٍّ من هذه المسائل خوارزمية تافهة بزمن أسّي تتضمّن تعداد كل الحلول الممكنة.
-
في الوقت الحالي، فإنّ أفضل خوارزمية معروفة لجميع هذه المسائل ليست أسرع بكثير من الخوارزمية التافهة في الحالة الأسوأ.
في هذا الفصل وفي صنف NP والاكتمال في NP ومبرهنة كوك-ليفن سنرى أنّه، على رغم اختلافاتها الظاهرية، يمكننا ربط التعقيد الحاسوبي لهذه المسائل ولعشرات غيرها. وفي الحقيقة، اتّضح أنّ المسائل أعلاه متكافئة حاسوبيًا (computationally equivalent)، بمعنى أنّ حلّ أيٍّ منها يعني فورًا حلّ البقية. وهذه الظاهرة، المعروفة بـ_اكتمال _ (NP completeness)، هي أحد الاكتشافات المفاجئة في نظريّة الحاسوب، وسنرى أنّ لها آثارًا بعيدة المدى.
يقدّم هذا الفصل مفهوم الاختزال في زمن متعدد الحدود (polynomial time reduction)، وهو مفهوم مركزي في التعقيد الحاسوبي وفي هذا الكتاب خصوصًا. الاختزال في زمن متعدد الحدود هو طريقة لـ_اختزال_ (reduce) مهمّة حلّ مسألة إلى مسألة أخرى. والطريقة التي نستعمل بها الاختزالات في التعقيد هي أن نبرهن على أنّه إذا كانت المسألة الأولى صعبة الحلّ بكفاءة، فإنّ الثانية يجب أن تكون صعبة أيضًا. سنرى في هذا الفصل عدة أمثلة على الاختزالات، وستكون الاختزالات أساسًا لنظرية اكتمال التي سنطوّرها في صنف NP والاكتمال في NP ومبرهنة كوك-ليفن.
كل الشيفرة الخاصّة بالاختزالات الموصوفة في هذا الفصل متاحة على دفتر Jupyter التالي.

سنرى في هذا الفصل أنّه لكل واحدة من مسائل إيجاد أطول مسار في رسم بياني، وحلّ المعادلات التربيعية، وإيجاد أكبر قطع، فإنّ وجود خوارزمية زمن متعدد الحدود لهذه المسألة يعني وجود خوارزمية زمن متعدد الحدود لمسألة 3SAT أيضًا. بعبارة أخرى، سنقوم بـ_اختزال_ (reduce) مهمّة حلّ 3SAT إلى كل واحدة من المهمّات أعلاه. ومن طرائق تفسير هذه النتائج أنّه إذا لم تكن هناك خوارزمية زمن متعدد الحدود لـ 3SAT، فإنّه لا توجد خوارزمية زمن متعدد الحدود لهذه المسائل الأخرى أيضًا. وسنرى في صنف NP والاكتمال في NP ومبرهنة كوك-ليفن أدلّة (لكنّه ليس برهانًا!) على أنّ جميع المسائل أعلاه ليس لها خوارزميات زمن متعدد الحدود، وبالتالي فهي غير قابلة للحلّ الجوهري (inherently intractable).
تعريفات رسمية للمسائل
لأسباب من الراحة التقنية أكثر من أيّ سبب جوهري، فإنّنا نهتم بـ_مسائل القرار_ (decision problems) (أي أسئلة بنعم/لا) أو بما يكافئها من دوال بوليانية (Boolean) (أي ذات خرج ببت واحد). نمذجة المسائل أعلاه بوصفها دوالًا تربط بـ على النحو التالي:
3SAT. يمكن صياغة مسألة 3SAT على هيئة الدالة التي تأخذ كمدخل صيغة 3CNF (أي صيغة من الشكل حيث كل هو OR لثلاثة متغيّرات أو نفيها) وتربط بـ إذا وُجد إسناد للمتغيّرات في يجعلها تُقيَّم إلى صحيح (true)، وإلّا فإلى . مثلًا
بما أنّ الإسناد يُرضي صيغة المدخل. في ما سبق نفترض تمثيلًا ما للصيغ بوصفه سلاسل نصّية، ونعرّف الدالة بحيث تُخرج إذا لم يكن مدخلها تمثيلًا صالحًا؛ ونستعمل العرف نفسه لجميع الدوال الأُخرَى أدناه.
المعادلات التربيعية. تقابل مسألة المعادلات التربيعية (quadratic equations problem) الدالة التي تربط مجموعة معادلات تربيعية بـ إذا وُجد إسناد يُرضي كل المعادلات، وإلّا فبـ .
أطول مسار. تقابل مسألة أطول مسار الدالة التي تربط رسمًا بيانيًا وعددًا بـ إذا وُجد في مسار بسيط طوله على الأقل، وتربط بـ وإلّا. مسألة أطول مسار هي تعميم لـمسألة مسار هاملتوني (Hamiltonian Path Problem) المعروفة جيدًا، والتي تحدّد ما إذا كان في رسم بياني معطى من رأسًا مسار بطول .
أكبر قطع. تقابل مسألة أكبر قطع الدالة التي تربط رسمًا بيانيًا وعددًا بـ إذا وُجد قطع في يقطع حافة على الأقل، وتربط بـ وإلّا.
جميع المسائل أعلاه في ، لكن لا نعرف ما إذا كانت في أم لا. على أيّ حال، سنرى في هذا الفصل أنّه إذا كان أيٌّ من أو أو في فإنّ كذلك في .
الاختزال في زمن متعدد الحدود
لنفترض أنّ دالتان بوليانيتان. الاختزال في زمن متعدد الحدود (polynomial-time reduction) (أو أحيانًا "اختزال" (reduction) اختصارًا) من إلى هو طريقة لإظهار أنّ «لا أصعب» من ، بمعنى أنّ وجود خوارزمية زمن متعدد الحدود لـ يعني وجود خوارزمية زمن متعدد الحدود لـ .
تعريف — الاختزال في زمن متعدد الحدود
ليكن . نقول إنّ تختزل إلى ، ويُرمز لذلك بـ، إذا وُجدت قابلة للحساب في زمن متعدد الحدود بحيث إنّ لكل ، نقول إنّ لـ و تعقيدًا متكافئًا (equivalent complexity) إذا كان و .

التمرين التالي يبرّر حدسنا بأنّ تعني أنّ « لا أصعب من ».
تمرين محلول — الاختزال و
برهن أنّه إذا كان و فإنّ .
توقّف وتأمّل
وكالمعتاد، فإنّ حلّ هذا التمرين بنفسك طريقة ممتازة للتأكّد من فهمك لـتعريف — الاختزال في زمن متعدد الحدود.
الحل
لنفترض أنّ هناك خوارزمية تحسب في زمن حيث هو حجم مدخلها. عندئذٍ يعطي المعادلة مباشرةً خوارزمية لحساب (انظر الشكل التوضيحي). بالفعل، على المدخل ، تقوم الخوارزمية بتنفيذ الاختزال في زمن متعدد الحدود للحصول على ثمّ تُعيد . وحسب المعادلة، لدينا ، وبالتالي فإنّ الخوارزمية تحسب فعلًا .
سنبيّن الآن أنّ تعمل في زمن متعدد الحدود. حسب الافتراض، يمكن حساب في زمن لمتعدد حدود ما . وبخاصة، فإنّ هذا يعني (بما أنّ مجرد كتابة تستغرق خطوة). وحساب يستغرق خطوة على الأكثر. وعليه فإنّ زمن تشغيل الإجمالي على المدخلات ذات الطول لا يتجاوز زمن حساب ، المحدود بـ ، وزمن حساب ، المحدود بـ ، وبما أنّ تركيب متعددَي حدود هو متعدد حدود، فإنّ تعمل في زمن متعدد الحدود.
الاختزال (reduction) يُظهر أنّ «لا أصعب من »، أو بما يكافئ ذلك أنّ «لا أسهل من ».
الخنازير الصفّارة والخيول الطايرة
يمكن استعمال اختزال من إلى لغرضين:
-
إذا كنّا نعرف خوارزمية لـ وكان ، فيمكننا استعمال الاختزال للحصول على خوارزمية لـ . وهذه أداة مستعملة على نطاق واسع في تصميم الخوارزميات. فمثلًا في أصغر قطع وأقصى تدفّق والبرمجة الخطّية رأينا كيف تتيح لنا نظريّة Min-Cut Max-Flow (القطع الأدنى–التدفّق الأقصى) اختزال مهمّة حساب أصغر قطع في رسم بياني إلى مهمّة حساب أكبر تدفّق فيه.
-
إذا برهنّا (أو كانت لدينا أدلّة) على أنّه لا يوجد خوارزمية زمن متعدد الحدود لـ وكان ، فإنّ وجود هذا الاختزال يتيح لنا أن نستنتج أنّه لا يوجد خوارزمية زمن متعدد الحدود لـ . وهذا هو تفسير «لو كانت الخنازير تصفّر لطارت الخيول» (if pigs could whistle then horses could fly) الذي رأيناه في الاختزال. نبيّن أنّه لو كانت هناك خوارزمية كفؤة افتراضية لـ (أي «خنزيرة صفّارة») فإنّنا بما أنّ كانت هناك خوارزمية كفؤة لـ (أي «حصان طائر»). في هذا الكتاب نستعمل الاختزالات كثيرًا لهذا الغرض الثاني، وإن كان الحدّ الفاصل بين الغرضين أحيانًا غير واضح (انظر الملاحظات الببليوغرافية في ملاحظات ببليوغرافية).
أهمّ فرق بين المفهوم في تعريف — الاختزال في زمن متعدد الحدود وبين الاختزالات التي رأيناها في سياق عدم القابلية للحساب (uncomputability) (مثلًا في الاختزال) هو أنّه، من أجل ربط التعقيد الزمني للمسائل، نحتاج أن يكون الاختزال قابلًا للحساب في زمن متعدد الحدود، لا أن يكون قابلًا للحساب فحسب. كما أنّ تعريف — الاختزال في زمن متعدد الحدود يقصر الاختزالات على صيغة محدّدة جدًّا. أي أنّنا لإظهار ، بدلًا من السماح بخوارزمية عامّة لـ تستعمل «صندوقًا سحريًا» يحسب ، لا نسمح إلا بخوارزمية تحسب بإخراج . وهذه الصيغة المقيّدة مريحة لنا، لكنّ الناس عرّفوا واستعملوا اختزالات أكثر عمومية أيضًا (انظر ملاحظات ببليوغرافية).
في هذا الفصل نستعمل الاختزالات لربط التعقيد الحاسوبي للمسائل المذكورة أعلاه: 3SAT، والمعادلات التربيعية، وأكبر قطع، وأطول مسار، إضافة إلى غيرها قليلًا. سنختزل 3SAT إلى المسائل الأخيرة، برهنًا على أنّ حلّ أيٍّ منها بكفاءة يؤدّي إلى خوارزمية كفؤة لـ 3SAT. وفي صنف NP والاكتمال في NP ومبرهنة كوك-ليفن نبيّن الاتجاه المعاكس: اختزال كل واحدة من هذه المسائل إلى 3SAT دفعةً واحدة.
تعدّادية الاختزالات. بما أنّنا ننظر إلى على أنّها تعني (على قدر ما يخصّ الحساب في زمن متعدد الحدود) أنّ «أسهل أو مساوية في الصعوبة» لـ ، فإنّنا نتوقّع أنّه إذا كان و فإنّ . بالفعل، هذا هو الحال:
تمرين محلول — تعدّادية الاختزال في زمن متعدد الحدود
لكل ، إذا كان و فإنّ .
الحل
إذا كان و فإنّ هناك دالتين و قابلتين للحساب في زمن متعدد الحدود تربطان بـ بحيث إنّ لكل ، لدينا ، ولكل ، لدينا . وبدمج هاتين المساواتين نرى أنّه لكل لدينا ، وبالتالي فإثبات أنّ يكفي أن نُثبت أنّ الإسناد قابل للحساب في زمن متعدد الحدود. لكن إذا كان هناك ثابطان بحيث يُحسب في زمن ويُحسب في زمن ، فإنّ يُحسب في زمن وهو متعدد حدود.
اختزال 3SAT إلى المعادلات الخطّية ذات القيم 0/1 والمعادلات التربيعية
سنعرض الآن أول مثال على اختزال. تقابل مسألة معادلات 0/1 الخطّية (Zero-One Linear Equations) الدالة التي يكون مدخلها مجموعة من معادلات خطّية في المتغيّرات ، وخرجها هو إذا وفقط إذا وُجد إسناد بقيم للمتغيّرات يُرضي كل المعادلات. مثلًا، إذا كان المدخل سلسلة تُرمِّز مجموعة المعادلات
فإنّ لأنّ الإسناد يُرضي المعادلات الثلاث. ونركّز بعيننا على المعادلات الخطّية في المتغيّرات التي كلّ معادلة فيها على الشكل حيث و .[1]
لو طرحنا السؤال عمّا إذا كان له حلّ من أعداد حقيقية، فإنّ هذا يمكن حلّه باستعمال خوارزمية الإزالة الغاوسية (Gaussian elimination) المشهورة في زمن متعدد الحدود. على أيّ حال، لا توجد خوارزمية كفؤة معروفة لحلّ . وفي الحقيقة، إنّ مثل هذه الخوارزمية تترتّب عليها خوارزمية لـ كما تبيّن النظريّة التالية:
مبرهنة — صعوبة
يمكن كتابة القيد على الصورة . وهذا متراجح خطّي (inequality)، لكن بما أنّ المجموع في الطرف الأيسر لا يتجاوز ثلاثة، يمكننا أيضًا تحويله إلى مساواة (equality) بإضافة متغيّرين جديدين وكتابته على الصورة . (سنستعمل متغيّرات جديدة لكل قيد.) وأخيرًا، لكل متغيّر يمكننا إضافة متغيّر يقابل نفيه بإضافة المعادلة ، وبذلك نُربط القيد الأصلي إلى . وال__تقنية المستفادة__ (takeaway technique) من هذا الاختزال هي فكرة إضافة متغيّرات مساعِدة (auxiliary variables) لاستبدال معادلة مثل التي ليست تمامًا على الصورة التي نريدها بالمعادلة المكافئة لها (بالنسبة إلى المتغيّرات ذات القيم ) وهي التي هي على الصورة التي نريدها.

برهان
لإثبات النظريّة نحتاج إلى:
-
وصف خوارزمية تربط مدخلًا لـ بمدخل لـ .
-
إثبات أنّ الخوارزمية تعمل في زمن متعدد الحدود.
-
إثبات أنّ لكل صيغة 3CNF .
وهذا ما سنفعله الآن. وبما أنّ هذا هو الاختزال الأول لنا، فسنفصّل هذا البرهان. لكنّه يتبع فكرة البرهان بوضوح تام.
خوارزمية — إلى
INPUT: 3CNF formula $\varphi$ with $n$ variables $x_0,\ldots,x_{n-1}$ and $m$ clauses.
OUTPUT: Set $E$ of linear equations over $0/1$ such that $3SAT(\varphi)=1$ iff $01EQ(E)=1$.
Let $E$'s variables be $x_0,\ldots,x_{n-1}$, $x'_0,\ldots,x'_{n-1}$, $y_0,\ldots,y_{m-1}$, $z_0,\ldots,z_{m-1}$.
For{$i \in [n]$}
add to $E$ the equation $x_i + x'_i = 1$
endfor
For{$j\in [m]$}
Let $j$-th clause be $w_0 \vee w_1 \vee w_2$ where $w_0,w_1,w_2$ are literals.
For{$a\in[3]$}
If{$w_a$ is variable $x_i$}
set $t_a \leftarrow x_i$
endif
If{$w_a$ is negation $\neg x_i$}
set $t_a \leftarrow x'_i$
endif
endfor
Add to $E$ the equation $t_0 + t_1 + t_2 + y_j + z_j = 3$.
endfor
return $E$
الاختزال موصوف في خوارزمية — 3SAT إلى 01EQ، وانظر أيضًا الشكل التوضيحي. إذا كانت صيغة المدخل فيها متغيّرًا و بندًا (clause)، فإنّ خوارزمية — 3SAT إلى 01EQ ينشئ مجموعة من معادلة على متغيّرًا. ويُجري خوارزمية — 3SAT إلى 01EQ حلقة أوّلى من خطوة (كلّ منها تأخذ زمنًا ثابتًا) ثمّ حلقة أخرى من خطوة (كلّ منها تأخذ زمنًا ثابتًا) لإنشاء المعادلات، وبالتالي فهو يعمل في زمن متعدد الحدود.
ولنجعل هي الدالة التي يحسبها خوارزمية — 3SAT إلى 01EQ. وقلب البرهان هو إظهار أنّه لكل 3CNF ، لدينا . ونقسم البرهان إلى قسمين. القسم الأوّل، المعروف تقليديًا بخاصية اكتمال (completeness)، هو إظهار أنّه إذا كان فإنّ . القسم الثاني، المعروف تقليديًا بخاصية سلامة (soundness)، هو إظهار أنّه إذا كان فإنّ . (اسما «اكتمال» و«سلامة» مشتقّان من النظر إلى حلّ على أنّه «برهان» على أنّ مُشبِعة، وعندئذٍ تقابل هذه الشروط الاكتمال والسلامة كما عُرِّفًا في #godelproofsystemssec. على أيّ حال، إن وجدتَ الاسمين محيّرَين فيمكنك ببساطة أن تفكّر في الاكتمال على أنّه خاصية «المُدخل الذي قيمته يُربط بمُدخل قيمته »، والسلامة على أنّها خاصية «المُدخل الذي قيمته يُربط بمُدخل قيمته ».)
ونُكمل البرهان بإظهار القسمين:
-
الاكتمال: لنفترض أنّ ، أي أنّه وُجد إسناد يُشبع . إن استعملنا الإسناد و للمتغيّرات الأولى في فإنّنا سنُرضي كل المعادلات على الشكل . وإلى جانب ذلك، لكل ، إذا كانت هي المعادلة الناتجة عن البند في (مع كون متغيّرات على الشكل أو حسب مُثابِتات البند) فإنّ إسنادنا للمتغيّرات الأولى يضمن أنّ (بما أنّ يُشبع ) وبالتالي يمكننا إسناد قيم إلى و تضمن أنّ المعادلة مُرضاة. وب ية في هذه الحالة تكون مُرضاة، أي أنّ .
-
السلامة: لنفترض أنّ ، أي أنّ مجموعة المعادلات لها إسناد مُشبع ، ، ، . عندئذٍ، بما أنّ المعادلات تتضمّن الشرط ، فإنّ هو نفي لكل ، وإلى جانب ذلك، لكل ، إذا كان على الشكل وهو البند في ، فإنّ الإسناد المقابل يضمن أنّ ، ما يعني أنّ مُشبَع. وبهذه الحالة يكون .
المعادلات التربيعية
والآن بعد أن اختزلنا إلى ، يمكننا استعمال ذلك لاختزال إلى مسألة المعادلات التربيعية. وهذه هي الدالة التي يكون مدخلها قائمة متعدّدي الحدود في متغيّرًا ذات رتبة لا تتجاوز اثنين (أي إنّها تربيعية) وذا معاملات صحيحة. (شرط الأخير فقط من أجل راحتنا ويمكن تحقيقه بالتحجيم.) ونعرّف بأنه يساوي إذا وفقط إذا وُجد حلّ للمعادلات ، ، ، .
مثلًا، ما يلي مجموعة معادلات تربيعية في المتغيّرات : ويمكنك أن تتحقّق أنّ يُرضي مجموعة المعادلات هذه إذا وفقط إذا كان و .
مبرهنة — صعوبة المعادلات التربيعية
باستعمال تعدّادية الاختزال (تمرين محلول — تعدّادية الاختزال في زمن متعدد الحدود)، يكفي أن نُظهر أنّ ، وهذا يتبع لأنّ بإمكاننا صياغة المعادلة على هيئة القيد التربيعي . وال__تقنية المستفادة__ من هذا الاختزال هي أنّ بإمكاننا استعمال عدم الخطّية (non-linearity) لإجبار المتغيّرات المستمرة (مثل المتغيّرات التي تأخذ قيمًا في ) على أن تكون منفصلة (أي أن تأخذ قيمًا في ).
برهان
حسب مبرهنة — صعوبة 01EQ وتمرين محلول — تعدّادية الاختزال في زمن متعدد الحدود، يكفي أن نُثبت أنّ . ولنجعل مُدخلًا لـ بالمتغيّرات . نربط بمجموعة المعادلات التربيعية التي تُحصّل بالأخذ بالمعادلات الخطّية في وإضافة إليها معادلة تربيعية لكل . (انظر خوارزمية — 01EQ إلى QUADEQ.). والإسناد يمكن حسابه في زمن متعدد الحدود. وندّعي أنّ إذا وفقط إذا كان . وفي الحقيقة، الفرق الوحيد بين المُدخلين هو أنّ:
-
في مُدخل أي ، المعادلات هي في متغيّرات من .
-
في مُدخل أي ، المعادلات هي في متغيّرات لكن لدينا القيود الإضافية لكل .
وبما أنّه لكل ، لدينا إذا وفقط إذا كان ، فإنّ مجموعتي المعادلات متكافئتان و وهو ما أردنا إثباته.
خوارزمية — إلى
INPUT: Set $E$ of linear equations over $n$ variables $x_0,\ldots,x_{n-1}$.
OUTPUT: Set $E'$ of quadratic equations over $m$ variables $w_0,\ldots,w_{m-1}$ such that there is an $0/1$ assignment $x\in \{0,1\}^n$
satisfying the equations of $E$ iff there is an assignment $w \in \R^m$ satisfying the equations of $E'$.
That is, $01EQ(E) = QUADEQ(E')$.
Let $m \leftarrow n$.
Variables of $E'$ are set to be same variable $x_0,\ldots, x_{n-1}$ as $E$.
For{every equation $e\in E$}
Add $e$ to $E'$
endfor
For{$i\in [n]$}
Add to $E'$ the equation $x_i^2 - x_i = 0$.
endfor
return $E'$
مسألة مجموع جزئي من مجموعة
وك نتيجة أخرى لاختزال إلى ، يمكننا أيضًا أن نُبيّن أنّ (عبر ) يختزل إلى مسألة مجموع الجزئية (subset sum) (المعروفة أيضًا بمسألة الحقيبة (knapsack)). في مسألة مجموع الجزئية، يُعطى لنا قائمة أعداد صحيحة وعدد صحيح . ونحتاج إلى تحديد ما إذا كانت هناك مجموعة من هذه الأعداد مجموعها أم لا. أي أنّه، لـ ، لدينا إذا وفقط إذا وُجدت بحيث . ولاحظ أنّ طول المدخل في مسألة مجموع الجزئية هو طول السلسلة اللازمة لترميز كل الأعداد، أي ما يقارب ، بما أنّ ترميز عدد صحيح بالتمثيل الثنائي يتطلّب بتّ.
مبرهنة — صعوبة مجموع الجزئية
نختزل من . والحدس هنا هو التالي. لنفترض مُدخلًا لـ بـ متغيّرًا و معادلة . وتذكّر أنّ كل معادلة في لها الشكل (ربّما بأكثر من ثلاثة متغيّرات أو أقلّ على الطرف الأيسر من المعادلة). ولكل متغيّر يمكننا تعريف متجه حيث إذا كان المتغيّر يظهر في المعادلة و وإلّا. ثمّ إن كانت مجموعة المعادلات لها حلّ إذا وفقط إذا كانت هناك مجموعة (المقابلة لـ التي بحيث ) بحيث حيث هو متجه الطرف الأيمن للمعادلات (أي أنّ هو القيمة في الطرف الأيمن من المعادلة ). والآن، لو استطعنا تفسير المتجهات و على أنّها أعداد، لاستطعنا أن نتعامل مع هذا على أنّه مُدخل لمسألة مجموع الجزئية. والفكرة المفتاحية هي أنّه يمكننا فعلًا أن نعتبر المتجهات أعدادًا بأن نفكر في الإحداث في المتجه على أنّه الخانة -مية. وبما أنّ المتجهات في ، فالاختيار الطبيعي هو استعمال الأساس الثنائي، لكنّ هذا يؤدّي إلى مشكلات مع «الاحتفاظات» (carries) عند جمعها. ومن ثمّ نستعمل أساسًا أكبر ، انظر البرهان أدناه.
برهان
لمجموعة معطاة من على متغيّرًا، نلاحظ أنّ الطرف الأيمن لا يمكن أن يتجاوز أبدًا (بما أنّ مجموع متغيّرًا على الأكثر من لا يتجاوز ). وبشكل أدقّ، إذا احتوى المُدخل على مثل هذه المعادلة، فيمكننا أن نعرف على اليقين أنّ الجواب هو (وفي سياق إسناد الاختزال، نحوّله إلى مُدخل تافه لمسألة مجموع الجزئية لا يملك حلًّا مثل و ).
اختزالنا موصوف في zeroonetossumnalg . وعلى مُدخل لـ على متغيّرًا ، فإنّنا نُخرج مُدخل بالشكل المحسوب كما يلي:
-
حيث يساوي إذا كان المتغيّر يظهر في المعادلة ويساوي وإلّا. ويُضبط العدد على (أي عدد أكبر من سيفي بالغرض.)
-
حيث هو العدد الصحيح في الطرف الأيمن من المعادلة .
بعبارة أخرى، و هما الأعداد التي إذا كُتبت في الأساس ، تكون الخانة -مية من هي إذا وفقط إذا كان يظهر في ، وتكون الخانة -مية من هي الطرف الأيمن لـ .
وستترتّب على الدعوى التالية صحّة الاختزال:
الدعوى: لكل ، إذا كان فإنّ يُرضي معادلات إذا وفقط إذا كان .
البرهان: مفتاح البرهان هي الخاصية البسيطة التالية للجمع على طريقة المدارس الابتدائية: عند جمع عددًا على الأكثر في الأساس ، إذا كانت كل الخانات في جميع الأعداد إمّا أو ، و ، فإنّ الخانة -مية من المجموع هي مجموع الخانات -مية من الأعداد. وهذا نتيجة بسيطة لانعدام «الاحتفاظ» (carry) في الجمع. وبما أنّ الأعداد في حالتنا تفي بهذه الخاصية في الأساس ، و ، نحصل على أنّه لكل ولكل خانة ، تكون الخانة -مية من المجموع هي ببساطة مجموع الخانة -مية، وهو ما يقابل المجموع فوق لكل قيم التي تشارك في المعادلة . وهذا المجموع يساوي الخانة -مية من إذا وفقط إذا كانت تلك المعادلة مُرضاة.
وتُظهر الدعوى أنّ وهو ما كنا نحتاج إلى إثباته.
خوارزمية — إلى
INPUT: Set $E = \{ e_t \}_{t\in [m]}$ of $m$ linear equations over $n$ variables $x_0,\ldots,x_{n-1}$.
OUTPUT: Numbers $y_0,\ldots,y_{n-1},T \in \mathbb{Z}$ such that there is an $0/1$ assignment $x\in \{0,1\}^n$ satisfying the equations of $E$ iff there is $S \subseteq [n]$ such that $\sum_{i\in S}y_i = T$.
For{every equation $e_t\in E$}
Let $A \subseteq [n]$ and $b\in \mathbb{Z}$ be such that $e_t$ has the form $\sum_{i\in A} x_i = b$
Let $v_i^t \leftarrow 1$ -if $i\in A$ and $v_i^t \leftarrow 0$ otherwise.
Let $b_t \leftarrow b$.
endfor
Set $B \leftarrow 2n$
For{$i\in [n]$}
Let $y_i \leftarrow \sum_{t=1}^m B^t v_i^t$.
endfor
Let $T \leftarrow \sum_{t=1}^T B^t b_t$
return $y_0,\ldots,y_{n-1},T$
مسألة المجموعة المستقلّة
بالنسبة إلى رسم بياني ، فإنّ المجموعة المستقلّة (independent set) (المعروفة أيضًا بـ_مجموعة مستقرّة_) هي مجموعة جزئية بحيث لا توجد حواف لهِمَا طرفاه في (بعبارة أخرى، ). كلّ «مفرد» (singleton) (أي مجموعة تتكوّن من رأس واحد) هو بطبيعة الحال مجموعة مستقلّة، لكنّ إيجاد المجموعات المستقلّة الأكبر قد يكون صعبًا. ومسألة أكبر مجموعة مستقلّة (maximum independent set) (ونسميها من الآن فصاعدًا «مجموعة مستقلّة») هي مهمّة إيجاد أكبر مجموعة مستقلّة في الرسم البياني. والمسألة المستقلّة ترتبط طبيعيًا بـ_مسائل الجدولة_: فإذا وضعنا حافة بين مهمّتين متعارضتين، فإنّ المجموعة المستقلّة تقابل مجموعة مهمّات يمكن جدولتها جميعًا معًا دون تعارض. وقد دُرست مسألة المجموعة المستقلّة في سياقات متنوّعة، منها مثلًا حالة الخوارزميات التي تجد البنية في رسوم تفاعل البروتينات (protein-protein interaction graphs).
كما ذُكر في تعريفات رسمية للمسائل، فإنّنا ننظر إلى مسألة المجموعة المستقلّة على أنّها الدالة التي، على مدخل رسم بياني وعدد ، تُخرج إذا وفقط إذا كان الرسم البياني يحوي مجموعة مستقلّة من حجم على الأقل. ونختزل الآن 3SAT إلى المجموعة المستقلّة.
مبرهنة — صعوبة المجموعة المستقلّة
.
الفكرة هي أنّ إيجاد إسناد مُشبِع لصيغة 3SAT يقابل تحقيق قيدَين محليّين متعدّدين دون إحداث أيّ تعارض. ويمكن التفكير في "" و "" على أنّهما حدثان متعارضان، وفي القيود على أنّها تُحدث تعارضًا بين الأحداث "" و "" و "" أي أنّ هذه الثلاثة لا يمكن أن تحدث في آنٍ واحد. وباستعمال هذه الأفكار يمكننا أن نعتبر حلّ مسألة 3SAT على أنّه محاولة لجدولة أحداث غير متعارضة، وإن كان الشيطان، كالمعتاد، في التفاصيل. وال__تقنية المستفادة__ هنا هي إسناد كل بند من الصيغة الأصلية إلى آلية (gadget) وهي رسم بياني فرعي صغير (أو، بصورة أعمّ، «مُدخل فرعي») يفي ببعض الخصائص المريحة. وسنرى هذه «الآليات» مستعملة مرارًا وتكرارًا في بناء الاختزالات في زمن متعدد الحدود.

خوارزمية — اختزال إلى
INPUT: $3SAT$ formula $\varphi$ with $n$ variables and $m$ clauses.
OUTPUT: Graph $G=(V,E)$ and number $k$, such that $G$ has an independent set of size $k$ iff $\varphi$ has a satisfying assignment.
That is, $3SAT(\varphi) = ISET(G,k)$,
Initialize $V \leftarrow \emptyset, E \leftarrow \emptyset$
For {every clause $C = y \vee y' \vee y''$ of $\varphi$}
Add three vertices $(C,y),(C,y'),(C,y'')$ to $V$
Add edges $\{ (C,y), (C,y') \}$, $\{(C,y'),(C,y'') \}$, $\{ (C,y''), (C,y) \}$ to $E$.
endfor
for {every distinct clauses $C,C'$ in $\varphi$}
for {every $i\in [n]$}
if{$C$ contains literal $x_i$ and $C'$ contains literal $\overline{x}_i$}
Add edge $\{ (C,x_i), (C',\overline{x}_i) \}$ to $E$
endif
endfor
endfor
return $(G=(V,E), m)$
برهان
لنفترض صيغة 3SAT على متغيّرًا و بندًا، سننشئ رسمًا بيانيًا بـ رأسًا كما يلي. (انظر خوارزمية — اختزال 3SAT إلى IS، وانظر أيضًا الشكل التوضيحي لمثال والشكل التوضيحي للشيفرة البرمجية لـ Python.)
-
البند في له الشكل حيث هي مُثابِتات (literals) (متغيّرات أو نفيها). ولكل بند من هذا النوع سنضيف ثلاثة رؤوس إلى ، ونسمّيها و و على التوالي. وسنضيف أيضًا الحواف الثلاث بين كل زوج من هذه الرؤوس، بحيث تشكّل مثلّثًا (triangle). وبما أنّ في عددًا من البنود يساوي ، فإنّ الرسم البياني سيكون له رأسًا.
-
وإلى جانب الحواف أعلاه، فإنّنا نضيف أيضًا حافة بين كل زوج من الرؤوس على الشكل و حيث و مُثابِتَان متعارضان. أي أنّنا نضيف حافة بين و إذا وُجد بحيث و أو العكس.
الخوارزمية التي تبني انطلاقًا من تعمل في زمن متعدد الحدود لأنّها تتضمن حلقتين، الأُولى تأخذ خطوة والثانية تأخذ خطوة (انظر خوارزمية — اختزال 3SAT إلى IS). وبذلك، لإثبات النظريّة نحتاج أن نُظهر أنّ مُشبَعة إذا وفقط إذا كان يحوي مجموعة مستقلّة من رأسًا. وسنعرض الآن اتجاهَي هذا التكافؤ:
القسم الأوّل: الاكتمال. اتجاه «الاكتمال» هو إظهار أنّه إذا كان ل إسناد مُشبِع ، فإنّ له مجموعة مستقلّة من رأسًا. ولنُبيّن ذلك الآن.
بالفعل، لنفترض أنّ ل إسنادًا مُشبِعًا . عندئذٍ لكل بند من ، يجب أن يكون أحد المُثابِتات تُقيَّم إلى صحيح (true) تحت الإسناد (وإلّا فإنّ لن تُشبع). ولنجعل مجموعة رأسًا تُحصَل باختيار رأس واحد على الشكل لكل بند بحيث يُقيَّم إلى صحيح تحت . (إذا كان هناك أكثر من رأس واحد من هذا النوع للبند نفسه، فإنّنا نختار واحدًا منها بشكل عشوائي.)
وندّعي أنّ مجموعة مستقلّة. وبالفعل، لنفترض خلاف ذلك، أي أنّه كانت هناك زوج من الرؤوس و في بينهما حافة. وبما أنّنا اخترنا رأسًا واحدًا من كل مثلّث يقابل بندًا، فلا بدّ من أنّ . وبالتالي فإنّ الطريقة الوحيدة لوجود حافة بين و هي أن تكون و مُثابِتَين متعارضَين (أي و لأجل ما ). ولكن عندئذٍ لا يمكن أن تُقيََّم كلاهما إلى صحيح تحت الإسناد ، وهو ما يناقض الطريقة التي بنينا بها المجموعة . وهذا يُكمل برهان شرط الاكتمال.
القسم الثاني: السلامة. اتجاه «السلامة» هو إظهار أنّه إذا كان له مجموعة مستقلّة من رأسًا، فإنّ ل إسنادًا مُشبِعًا . ولنُبيّن ذلك الآن.
بالفعل، لنفترض أنّ له مجموعة مستقلّة بـ رأسًا. وسنعرّف إسنادًا لمتغيّرات على النحو التالي. لكل ، نضبط وفق القواعد التالية:
-
إذا كانت تحوي رأسًا على الشكل فإنّنا نضبط .
-
إذا كانت تحوي رأسًا على الشكل فإنّنا نضبط .
-
إذا كانت لا تحوي رأسًا من هذا الشكل ولا من الآخر، فإنّه لا يهمّ أي قيمة نعطيها لـ ، لكن من أجل التوضيح سنضبط .
والملاحظة الأولى هي أنّ معرَّف فعلًا، بمعنى أنّ القواعد أعلاه لا تتنازع بعضها مع بعض ولا تطلب ضبط على وعلى في آنٍ واحد. ويترتّب هذا على أنّ هي مجموعة مستقلّة، وبالتالي فإنّها إذا كانت تحوي رأسًا على الشكل فلا يمكن أن تحوي رأسًا على الشكل .
وندّعي الآن أنّ إسناد مُشبِع لـ . وبالفعل، بما أنّ مجموعة مستقلّة، فلا يمكن أن يكون فيها أكثر من رأس واحد داخل كلّ واحدٍ من المثلّثات التالية المقابلة لبنود . وبالتالي بما أنّ ، فلا بدّ أن يكون فيها رأس واحد بالضبط في كلّ مثلّث من هذه المثلّثات. وكل بند من ، إذا كان هو الرأس في داخل المثلّث المقابل لـ ، فإنّه بالطريقة التي عرّفنا بها يجب أن يُقيَّم المُثابِت إلى صحيح، ما يعني أنّ يُشبع هذا البند. وبالتالي فإنّ يُشبع كل بنود ، وهو تعريف الإسناد المُشبِع.
وهذا يُكمل برهان مبرهنة — صعوبة المجموعة المستقلّة

بعض التمارين وتشريح اختزال
قد يكون الاختزال محيّرًا، وحلّ التمارين طريقة ممتازة لاكتساب طمأنينة أكبر تجاهه. وهنا مثال على ذلك. وكالمعتاد، فإنّي أنصحك بأن تجرّبه بنفسك قبل النظر إلى الحل.
تمرين محلول — غطاء الرؤوس
غطاء الرؤوس (vertex cover) في رسم بياني هو مجموعة جزئية من الرؤوس بحيث تلمس كل حافة رأسًا واحدًا على الأقل من رؤوس (انظر الشكل التوضيحي). ومسألة غطاء الرؤوس (vertex cover problem) هي مهمّة تحديد ما إذا كان، على إعطائك رسمًا بيانيًا وعددًا ، وُجد غطاء رؤوس في الرسم البياني بعدد رؤوس لا يتجاوز أم لا. وبشكل رسمي، هذه هي الدالة بحيث لكل و ، لدينا إذا وفقط إذا وُجد غطاء رؤوس بحيث .
برهن أنّ .

الحل
الملاحظة المفتاحية هي أنّه إذا كان غطاء رؤوس يلمس كل الحواف، فإنّه لا توجد حافة يكون طرفاها كليهما في المجموعة ، وبالعكس. بعبارة أخرى، غطاء رؤوس إذا وفقط إذا كان مجموعة مستقلّة. وبما أنّ حجم هو ، فإنّنا نرى أنّ الإسناد متعدد الحدود (حيث عدد رؤوس ) يحقّق أنّ ، وهو ما يعني أنّه اختزال من المجموعة المستقلّة إلى غطاء الرؤوس.
تمرين محلول — الكليكة مكافئة للمجموعة المستقلّة
تقابل مسألة أكبر كليكة (maximum clique problem) الدالة بحيث إنّ لرسم بياني وعدد ، لدينا إذا وفقط إذا كانت هناك مجموعة جزئية من رأسًا بحيث إنّ لكل مختلفَين تكون الحافة في . وتُعرف هذه المجموعة بـ_كليكة_ (clique).
برهن أنّ و .
الحل
إذا كان رسمًا بيانيًا، فإنّنا نرمز إلى تكملته (complement) بالرمز ، وهي الرسم البياني على الرؤوس نفسها بحيث إنّ لكل مختلفَين، تكون الحافة موجودة في إذا وفقط إذا لم تكن هذه الحافة موجودة في .
وهذا يعني أنّه لكل مجموعة ، تكون مجموعة مستقلّة في إذا وفقط إذا كانت كليكة في . وبالتالي فإنّ لكل لدينا . وبما أنّ الإسناد يمكن حسابه بكفاءة، فإنّ هذا يعطي اختزالًا . وإلى جانب ذلك، بما أنّ فإنّ هذا يعطي اختزالًا في الاتجاه الآخر أيضًا.
المجموعة المسيطرة
في المثالين أعلاه، كان الاختزال «تافهًا» تقريبًا: فالاختزال من المجموعة المستقلّة إلى غطاء الرؤوس لا يغيّر سوى العدد إلى ، والاختزال من المجموعة المستقلّة إلى الكليكة يقلب الحواف إلى لاحواف وبالعكس. والتمرين التالي يتطلّب اختزالًا أكثر إثارةً للاهتمام بقليل.
تمرين محلول — المجموعة المسيطرة
المجموعة المسيطرة (dominating set) في رسم بياني هي مجموعة جزئية من الرؤوس بحيث إنّ كل يكون جارًا في لأجل ما (انظر الشكل التوضيحي). ومسألة المجموعة المسيطرة (dominating set problem) هي مهمّة تحديد، على إعطائك رسمًا بيانيًا وعددًا ، ما إذا كانت هناك مجموعة مسيطرة بـ أم لا. وبشكل رسمي، هذه هي الدالة بحيث إنّ إذا وفقط إذا كانت هناك مجموعة مسيطرة في بعدد رؤوس لا يتجاوز .
برهن أنّ .

الحل
بما أنّنا نعرف أنّ ، فإنّ استعمال التعدّدية يكفي أن نُظهر أنّ . وكما يبيّن الشكل التوضيحي، فإنّ المجموعة المسيطرة ليست شيئًا مطابقًا لغطاء الرؤوس. على أيّ حال، يمكننا ربط المسألتَيْن مع ذلك. والفكرة هي إسناد رسم بياني إلى رسم بياني بحيث يتحوّل غطاء رؤوس في إلى مجموعة مسيطرة في وبالعكس. ونفعل ذلك بأن نُدرج في كل رؤوس وحوافها، لكن لكل حافة في نضيف أيضًا إلى رأسًا جديدًا ونصله بكلٍّ من و . ولنجعل عدد الرؤوس المعزولة في . والفكرة وراء البرهان هي أنّ بإمكاننا تحويل غطاء رؤوس من رأسًا في إلى مجموعة مسيطرة من رأسًا في بأن نضيف إلى كل الرؤوس المعزولة، وإلى جانب ذلك يمكننا تحويل كل مجموعة مسيطرة ذات حجم في إلى غطاء رؤوس في . وهنا تفاصيل ذلك.
وصف الخوارزمية. على مُدخل لمسألة غطاء الرؤوس، سنُسند إلى مُدخل لمسألة المجموعة المسيطرة كما يلي (انظر الشكل التوضيحي لتنفيذ Python):
خوارزمية — اختزال إلى
INPUT: Graph $G=(V,E)$ and number $k$.
OUTPUT: Graph $H=(V',E')$ and number $k'$, such that $G$ has a vertex cover of size $k$ iff $H$ has a dominating set of size $k'$, that is, $DS(H,k') = VC(G,k)$.
Initialize $V' \leftarrow V, E' \leftarrow E$
For {every edge $\{u,v\} \in E$}
Add vertex $w_{u,v}$ to $V'$
Add edges $\{ u, w_{u,v} \}$, $\{ v, w_{u,v} \}$ to $E'$.
endfor
Let $\ell \leftarrow$ number of isolated vertices in $G$
return $( H=(V',E') \;,\; k+\ell)$
يعمل خوارزمية — اختزال VC إلى DS في زمن متعدد الحدود، لأنّ الحلقة تأخذ خطوة حيث عدد الحواف، ويمكن تنفيذ كل خطوة في زمن ثابت أو خطّي على الأكثر (حسب تمثيل الرسم البياني ). وعدّ عدد الرؤوس المعزولة في رسم بياني من رأسًا يمكن فعله في زمن إذا كان ممثَّلًا بمصفوفة التجاور، وفي زمن إذا كان ممثَّلًا بقائمة التجاور. وعلى أيّ حال فإنّ الخوارزمية تعمل في زمن متعدد الحدود.
ولإكمال البرهان نحتاج أن نُثبت أنّ لكل ، إذا كان هو الخرج الذي يعطيه خوارزمية — اختزال VC إلى DS على المدخل ، فإنّ . ونقسم البرهان إلى قسمين. وقسم الاكتمال هو أنّه إذا كان فإنّ . وقسم السلامة هو أنّه إذا كان فإنّ .
الاكتمال. لنفترض أنّ . عندئذٍ هناك غطاء رؤوس بعدد رؤوس لا يتجاوز . ولنجعل مجموعة الرؤوس المعزولة في و عددها. عندئذٍ . وندّعي أنّ مجموعة مسيطرة في . وبالفعل، لكل رأس في هناك ثلاثة أحالات:
-
الحالة 1: رأس معزول في . في هذه الحالة يكون في .
-
الحالة 2: رأس غير معزول في ، وبالتالي هناك حافة في لأجل ما . في هذه الحالة بما أنّ غطاء رؤوس، فلا بدّ أن يكون أحد في ، وبالتالي إمّا أو جار لـ يكون في .
-
الحالة 3: على الشكل لأجل جارين ما في . ولكن عندئذٍ بما أنّ غطاء رؤوس، فلا بدّ أن يكون أحد في ، وبالتالي فإنّ تحوي جارًا لـ .
ونستنتج أنّ مجموعة مسيطرة في من حجم لا يتجاوز ، وبذلك، تحت الافتراض ، لدينا .
السلامة. لنفترض أنّ . عندئذٍ هناك مجموعة مسيطرة في من حجم لا يتجاوز . ولكل حافة في الرسم البياني ، إذا كانت تحوي الرأس فإنّنا نزيل هذا الرأس ونضع مكانه. والجاران الوحيدان لـ هما و ، وبما أنّ جار لكلٍّ من و ، فإنّ استبدال بـ يُبقي الخاصية بأنّها مجموعة مسيطرة. وإلى جانب ذلك، فإنّ هذا التغيير لا يمكن أن يزيد حجم . وعليه، بعد هذا التعديل، يمكننا أن نفترض أنّ مجموعة مسيطرة بعدد رؤوس لا يتجاوز ولا تحوي أيّ رؤوس من الشكل .
ولنجعل مجموعة الرؤوس المعزولة في . وهذه الرؤوس معزولة أيضًا في ، وبالتالي فلا بدّ من إدراجها في (فالرأس المعزول لا بدّ أن يكون في أيّ مجموعة مسيطرة، إذ لا يجار له). ولنجعل . عندئذٍ . وندّعي أنّ غطاء رؤوس في . وبالفعل، لكل حافة في ، إمّا الرأس أو أحد جيرانه يجب أن يكون في بموجب خاصية المجموعة المسيطرة. لكن بما أنّنا تأكّدنا من أنّ لا تحوي أيًّا من الرؤوس على الشكل ، فلا بدّ من أن يكون إمّا أو في . وهذا يُظهر أنّ غطاء رؤوس لـ من حجم لا يتجاوز ، ما يثبت أنّ .
نتيجة لازمة لـ خوارزمية — اختزال VC إلى DS وللاختزال الآخر الذي رأيناه حتى الآن هي أنّه إذا كان (أي أنّ المجموعة المسيطرة لها خوارزمية زمن متعدد الحدود) فإنّ (أي أنّ لـ خوارزمية زمن متعدد الحدود). ومن الجهة المعاكسة (contra positive)، إذا لم يكن لـ خوارزمية زمن متعدد الحدود فإنّ المجموعة المسيطرة أيضًا ليس لها كذلك.

تشريح الاختزال

يعطي اختزال تمرين محلول — المجموعة المسيطرة تصويرًا جيّدًا لتشريح الاختزال. ويتألّف الاختزال من أربعة أجزاء:
-
وصف الخوارزمية: هذا هو الوصف لـ_كيف_ تُسند الخوارزمية مدخلًا إلى خرج. فمثلًا، في تمرين محلول — المجموعة المسيطرة هذا هو الوصف لكيفية إسنادنا مُدخل لمسألة غطاء الرؤوس إلى مُدخل لمسألة المجموعة المسيطرة.
-
تحليل الخوارزمية: لا يكفي أن نصف كيف تعمل الخوارزمية، بل علينا أيضًا أن نشرح لماذا تعمل. وبخاصة علينا أن نقدّم تحليلًا (analysis) يشرح لماذا الاختزال كفؤ (أي يعمل في زمن متعدد الحدود) و صحيح (يحقّق لكل .)، وبخاصة، فإنّ مكوّنات تحليل الاختزال تتضمّن:
-
الكفاءة: نحتاج أن نُظهر أنّ تعمل في زمن متعدد الحدود. وفي معظم الاختزالات التي نصادفها، فهذا الجزء مباشر، إذ إنّ الاختزالات التي نستعملها عادةً تتضمّن عددًا ثابتًا من الحلقات المتداخلة، كلّ منها تتضمّن عددًا ثابتًا من العمليات. فمثلًا، لا يكاد اختزال تمرين محلول — المجموعة المسيطرة سوى تعداد حواف ورؤوس الرسم البياني المُدخل.
-
الاكتمال: في اختزال الذي يثبت ، فإنّ شرط الاكتمال هو الشرط القائل بأنّه لكل ، إذا كان فإنّ . وعادةً نبني الاختزال بحيث يتحقّق ذلك، بأن نعطي طريقة لإسناد «شهادة/حلّ» (certificate/solution) تُثبت أنّ إلى حلّ يُثبت أنّ . فمثلًا، في تمرين محلول — المجموعة المسيطرة بنينا الرسم البياني بحيث إنّ لكل غطاء رؤوس في تكون المجموعة (حيث هي الرؤوس المعزولة) مجموعة مسيطرة في .
-
السلامة: هذا هو الشرط القائل بأنّه إذا كان فإنّ أو (بأخذ العكس) إذا كان فإنّ وأحيانًا ما يكون هذا مباشرًا، لكنّه غالبًا ما يكون أصعب في الإظهار من شرط الاكتمال، وفي الاختزالات الأكثر تقدّمًا (مثل اختزال في مبرهنة — صعوبة المجموعة المستقلّة) فإنّ إظهار السلامة هو الجزء الرئيسي من التحليل. فمثلًا، في تمرين محلول — المجموعة المسيطرة، من أجل إظهار السلامة احتجنا أن نُظهر أنّه لكل مجموعة مسيطرة في الرسم البياني ، وُجد غطاء رؤوس في الرسم البياني من حجم لا يتجاوز (حيث هو عدد الرؤوس المعزولة). وكان هذا صعبًا لأنّ المجموعة المسيطرة لا توجد بالضرورة أن تكون هي التي «أقصدها» في ذهننا. وبخاصة، في البرهان أعلاه احتجنا أن نعدّل نضمن ألّا تحوي رؤوسًا من الشكل ، وكان من المهمّ أن نُظهر أنّ هذا التعديل يُبقي خاصية أنّ مجموعة مسيطرة، وأيضًا ألّا يجعلها أكبر.
متى ما احتجتَ أن تقدّم اختزالًا، فينبغي أن تتأكّد من أنّ وصفك يتضمّن كل هذه الأجزاء. وإن كان مداعاك أحيانًا هو نسج وصف الاختزال وتحليله معًا، فإنّ فصل الاثنين يكون عادةً أوضح، كما أنّه من المفيد أيضًا تفكيك التحليل إلى مكوّناته الثلاثة: الكفاءة والاكتمال والسلامة.
-
اختزال المجموعة المستقلّة إلى أكبر قطع
سنعرض الآن أنّ مسألة المجموعة المستقلّة تختزل إلى مسألة أكبر قطع (أو «أقصى قطع» (max cut))، وهي مُنمذَجة على هيئة الدالة التي، على مدخل زوج ، تُخرج إذا وفقط إذا كان يحوي قطعًا يقطع حافة على الأقل. وبما أنّ كليهما مسألة رسوم بيانية، فإنّ الاختزال من المجموعة المستقلّة إلى أقصى قطع يُسند رسمًا بيانيًا إلى آخر، لكن—كما سنرى—لا يلزم أن يكون للرسم البياني الخرج الرؤوس أو الحواف ذاتها التي في الرسم البياني المُدخل.
مبرهنة — صعوبة أقصى قطع
سنُسند رسمًا بيانيًا إلى رسم بياني بحيث تتحوّل مجموعة مستقلّة كبيرة في إلى تقسيم يقطع حواف كثيرة في . ويمكننا أن نفكّر في قطع في على أنّه تلوين لكل رأس إمّا «أزرق» أو «أحمر». وسنضيف رأس «مصدر» خاصًّا ، ونصله بكل الرؤوس الأخرى، ونفترض دون خسارة أنّه ملوَّن بالأزرق. وبذلك، كلّما لوّنّا رؤوسًا أكثر بالأحمر، قطعنا حواف أكثر من . والآن، لكل حافة في الرسم البياني الأصلي سنضيف «آلية» (gadget) خاصّة، أي رسمًا بيانيًا فرعيًا صغيرًا يتضمّن و والمصدر ورأسين إضافيّين. ونصمّم الآلية بحيث إذا لم تكن الرؤوس الحمراء مجموعة مستقلّة في فإنّ القطع المقابل في يكون «مُعاقَبًا» بالمعنى أنّه لن يقطع حواف كثيرة. وبعد أن نضع لأنفسنا هذا الهدف، ليس من الصعب إيجاد آلية تحقّقه — انظر البرهان أدناه. وإلى ذلك، فإنّ التقنية المستفادة (takeaway technique) هي استعمال آلية (وهذه المرّة أكثر دقّة قليلًا).

برهان
سنحوّل رسمًا بيانيًا من رأسًا و حافة إلى رسم بياني من رأسًا و حافة على النحو التالي (انظر أيضًا الشكل التوضيحي). ويحتوي الرسم البياني على كل رؤوس (لكن ليس الحواف بينها!) وإلى جانب ذلك فإنّ يحتوي أيضًا على: \
- رأس خاصّ متّصل بكل رؤوس \
- لكل حافة رأسين بحيث إنّ متّصل بـ و متّصل بـ ، وإلى جانب ذلك نضيف الحواف إلى .
وسيترتّب على مبرهنة — صعوبة أقصى قطع بإظهار أنّ يحتوي على مجموعة مستقلّة من حجم على الأقل إذا وفقط إذا كان يحوي قطعًا يقطع حافة على الأقل. وسنبرهن الآن على اتجاهَي هذا التكافؤ:
القسم الأوّل: الاكتمال. إذا كانت مجموعة مستقلّة من عنصرًا في ، فيمكننا أن نعرّف لتكون قطعًا في على الشكل التالي: نُسند إلى أن تحوي كل رؤوس ، ولكل حافة ، إذا كان و فإنّنا نضيف إلى ؛ وإذا كان و فإنّنا نضيف إلى ؛ وإذا كان و فإنّنا نضيف و كلاهما إلى . (لا نحتاج للقلقّ من الحالة التي يكون فيها و كلاهما في لأنّ مجموعة مستقلّة.) ويمكننا أن نتحقّق أنّه في جميع الحالات يكون عدد الحواف من إلى تكملتها في الآلية المقابلة لـ أربعة (انظر الشكل التوضيحي). وبما أنّ ليست في ، ولدينا أيضًا حافة من إلى ، أي ما مجموعه حافة.
القسم الثاني: السلامة. لنفترض أنّ قطع في يقطع حافة على الأقل. يمكننا أن نفترض أنّ ليست في (وإلّا يمكننا «قلب» إلى تكملتها ، إذ لا يغيّر ذلك حجم القطع). والآن لتكن مجموعة الرؤوس في التي تقابل رؤوس الأصلية. فإذا كانت مجموعة مستقلّة من حجم لكنّا قد فرغنا من العمل. قد لا يكون هذا هو الحال دائمًا، لكنّنا سنرى أنّه إذا لم تكن مجموعة مستقلّة فإنّ حجمها أيضًا أكبر من . وبخاصة، نعرّف لتكون مجموعة الحواف في الموجودة في ، ولنجعل (أي أنّه إذا كانت مجموعة مستقلّة فإنّ و ). وبموجب خصائص آليتنا نعرف أنّه لكل حافة في ، يمكننا قطع حواف على الأكثر عندما يكون و كلاهما في ، وأربع حواف على الأكثر في غير ذلك. وبالتالي فإنّ العدد للحواف المقطوعة بواسطة يحقّق . وبما أنّ فإنّنا نحصل على . والآن يمكننا تحويل إلى مجموعة مستقلّة بأن نمرّ على كل واحدة من الحواف الموجودة داخل ونزيل أحد طرفي الحافة منها. فالمجموعة الناتجة هي مجموعة مستقلّة في الرسم البياني من حجم ، وبهذا يُكمل البرهان على شرط السلامة.


اختزال 3SAT إلى أطول مسار
ملاحظة: لا يزال هذا القسم فوضويًّا بعض الشيء؛ لا تتردّد في تخطّيه أو في قراءته فقط دون الدخول في تفاصيل البرهان. يظهر البرهان في القسم 7.5 من كتاب Sipser.
ومن أهمّ الخوارزميات الأساسيّة في علوم الحاسوب خوارزمية دييسترا (Dijkstra) لإيجاد أقصر مسار (shortest path) بين رأسين. ونعرض الآن أنّه، على النقيض من ذلك، فإنّ خوارزمية كفؤة لمسألة أطول مسار كانت ستترتّب عليها خوارزمية زمن متعدد الحدود لـ 3SAT.
مبرهنة — صعوبة أطول مسار


لإثبات مبرهنة — صعوبة أطول مسار نحتاج أن نُظهر كيفية تحويل صيغة 3CNF إلى رسم بياني ورأسين بحيث إنّ له مسار بطول على الأقل إذا وفقط إذا كانت مُشبِعة. وتعرض فكرة الاختزال في الشكل التوضيحي والشكل التوضيحي. وسنبني رسمًا بيانيًا يحوي مسارًا «متعرّجًا» طويلًا محتملًا يقابل كل المتغيّرات في الصيغة. وسنضيف «آلية» (gadget) مقابلة لكل بند من بنود بحيث لا نتمكّن من استعمال هذه الآليات إلا إذا كان لدينا إسناد مُشبِع.
def TSAT2LONGPATH(φ):
"""Reduce 3SAT to LONGPATH"""
def var(v): # return variable and True/False depending if positive or negated
return int(v[2:]),False if v[0]=="¬" else int(v[1:]),True
n = numvars(φ)
clauses = getclauses(φ)
m = len(clauses)
G =Graph()
G.edge("start","start_0")
for i in range(n): # add 2 length-m paths per variable
G.edge(f"start_{i}",f"v_{i}_{0}_T")
G.edge(f"start_{i}",f"v_{i}_{0}_F")
for j in range(m-1):
G.edge(f"v_{i}_{j}_T",f"v_{i}_{j+1}_T")
G.edge(f"v_{i}_{j}_F",f"v_{i}_{j+1}_F")
G.edge(f"v_{i}_{m-1}_T",f"end_{i}")
G.edge(f"v_{i}_{m-1}_F",f"end_{i}")
if i<n-1:
G.edge(f"end_{i}",f"start_{i+1}")
G.edge(f"end_{n-1}","start_clauses")
for j,C in enumerate(clauses): # add gadget for each clause
for v in enumerate(C):
i,sign = var(v[1])
s = "F" if sign else "T"
G.edge(f"C_{j}_in",f"v_{i}_{j}_{s}")
G.edge(f"v_{i}_{j}_{s}",f"C_{j}_out")
if j<m-1:
G.edge(f"C_{j}_out",f"C_{j+1}_in")
G.edge("start_clauses","C_0_in")
G.edge(f"C_{m-1}_out","end")
return G, 1+n*(m+1)+1+2*m+1
برهان
نبني رسمًا بيانيًا «يتعرّج» من إلى على النحو التالي. وبعد نضيف سلسلة من حلقة طويلة. لكل حلقة «مسار علوي» و«مسار سفلي». ولا يمكن لمسار بسيط أن يأخذ المسارين العلوي والسفلي معًا، ومن ثمّ فإنّه سيحتاج إلى أخذ واحد منهما بالضبط للوصول من إلى .
وقصدنا هو أن يقابل مسار في الرسم البياني إسنادًا ، بمعنى أنّ أخذ المسار العلوي في الحلقة رقم يقابل إسناد ، وأخذ المسار السفلي يقابل إسناد . وحين ننتهي من التعرّج عبر الحلقات كلها المقابلة للمتغيّرات للوصول إلى ، نحتاج إلى المرور عبر «العوائق»: لكل بند سنحوي آلية صغيرة تتكوّن من زوج من الرؤوس بينهما ثلاثة مسارات. فمثلًا، إذا كان البند رقم على الشكل ، فإنّ أحد المسارات سيمرّ عبر رأس في الحلقة السفلية المقابلة لـ ، وآخر سيمرّ عبر رأس في الحلقة العلوية المقابلة لـ ، والثالث سيمرّ عبر الحلقة السفلية المقابلة لـ . ونرى أنّه لو ذهبنا في المرحلة الأولى متّابعة مع إسناد مُشبِع لاستطعنا إيجاد رأسٍ حرّ ننتقل من إلى . ونصل بـ ، و بـ ، وهكذا، ونصل بـ . وعليه فإنّ الإسناد المُشبِع سيقابل مسارًا من إلى يمرّ عبر مسار واحد في كل حلقة مقابلة للمتغيّرات، وعبر مسار واحد في كل حلقة مقابلة للبنود. ويمكننا أن نجعل الحلقة المقابلة للمتغيّرات طويلة بما يكفي بحيث لا بدّ من أخذ المسار كاملًا في كل حلقة لنحصل على فرصة مقابلة على مسار طويل كالمقابل لإسناد مُشبِع. ولكن إذا فعلنا ذلك، فإنّ الطريقة الوحيدة لبلوغ هي أن تكون المسارات التي أخذناها قد قابلت إسنادًا مُشبِعًا، إذ إنّنا وإلّا سنكون أمام بند واحد لا نستطيع بلوغ منه دون استعمال رأس استعملناه من قبل.

ملخّص العلاقات
لقد بيّنا أنّ هناك عددًا من الدوال التي يمكننا لها إثبات جملة من الشكل «إذا كان فإنّ ». وبذلك فإنّ إيجاد خوارزمية زمن متعدد الحدود لأيٍّ من هذه المسائل—ولو واحدة فقط—يستلزم خوارزمية زمن متعدد الحدود لـ (انظر مثلًا الشكل التوضيحي). وسنبيّن في صنف NP والاكتمال في NP ومبرهنة كوك-ليفن الاتجاه المعاكس («إذا كان فإنّ ») لهذه الدوال، مما يتيح لنا أن نستنتج أنّ لها تعقيدًا متكافئًا (equivalent complexity) مع .

خلاصة
-
يمكن ربط التعقيد الحاسوبي لمسائل حاسوبية كثيرة تبدو غير مترابطة ببعضها باستخدام الاختزالات (reductions).
-
إذا كان فإنّ خوارزمية زمن متعدد الحدود لـ يمكن تحويلها إلى خوارزمية زمن متعدد الحدود لـ .
-
وبالمثل، إذا كان ولم يكن لـ خوارزمية زمن متعدد الحدود فإنّ ليس لها كذلك.
-
طوّرنا تقنيات عدّة لإظهار أنّ لدوال مهمّة. وأحيانًا يمكننا فعل ذلك باستعمال تعدّادية (transitivity) الاختزالات: إذا كان و فإنّ .
تمارين
ملاحظات ببليوغرافية
يُعرَّف في الأدبيّات عددٌ من مفاهيم الاختزال. والمفهوم المعرَّف في تعريف — الاختزال في زمن متعدد الحدود يُعرف غالبًا بـ_اختزال الإسناد_ (mapping reduction)، أو اختزال متعدّد إلى واحد (many to one reduction)، أو اختزال كارب (Karp reduction).
أما المجموعة المستقلّة العظمى (maximal) (بخلاف أكبر) (maximum) فهي مهمّة إيجاد «عظمى محلّية» (local maximum) لمجموعة مستقلّة: أي مجموعة مستقلّة لا يمكن إضافة رأس إليها دون فقدان خاصية الاستقلال (وتُعرف هذه المجموعة بـ_غطاء رؤوس_). وبخلاف إيجاد مجموعة مستقلّة أكبر، يمكن إيجاد مجموعة مستقلّة عظمى بكفاءة بواسطة خوارزمية جشعة، لكنّ هذه العظمى المحلّية قد تكون أصغر بكثير من العظمى الكلّية.
اختزال المجموعة المستقلّة إلى أقصى قطع مأخوذ من هذه الملاحظات. وصورة مسار هاملتوني عبر مُجسّم الدوديكاهدرون من Christoph Sommer.
لقد ذكرنا أنّ الحدّ الفاصل بين الاختزالات المستعملة في تصميم الخوارزميات وتلك المستعملة في إظهار الصعوبة أحيانًا غير واضح. ومن أفضل الأمثلة على ذلك مجال حلّال SAT (SAT Solvers) (انظر [@gomes2008satisfiability]). وفي هذا المجال يستعمل الناس خوارزميات لـ SAT (التي تأخذ زمنًا أسّيًا في الحالة الأسوأ لكنّها أسرع بكثير عادةً على مُدخلات كثيرة عمليًا) مع اختزالات من الشكل لاستخراج خوارزميات لدوال أخرى مهمّة.
إن كنتَ ملمًّا بترميز المصفوفات (matrix notation) فيمكنك أن تلاحظ أنّ مثل هذه المعادلات يمكن كتابتها على الصورة حيث مصفوفة مُدخَلاتها من و . ↩︎