Teilmenge Summe vs. Teilmenge Produkt (starke vs. schwache NP Härte)


15

Ich hatte gehofft, jemand könnte mir erklären, warum genau das Subset-Produktproblem stark NP-hart ist, während das Subset-Summenproblem schwach NP-hart ist.

Subset Summe: Bei und , Gibt es eine Teilmenge so dass .X={x1,...,xn}TXiXxi=T

Subset Produkt: Da und , Gibt es eine Teilmenge so dass .X={x1,...,xn}TXiXxi=T

Ich dachte immer, die beiden Probleme wären gleichwertig - eine Instanz von SS könnte durch Potenzierung in eine Instanz von SP und eine Instanz von SP durch Logarithmen in SS umgewandelt werden. Dies führte mich zu dem Schluss, dass beide zu derselben Klasse von NP-Hard gehörten - dh, sie waren beide schwach NP-Hard.

Ferner scheint es, dass dieselbe Wiederholung verwendet werden könnte, um beide Probleme unter Verwendung dynamischer Programmierung mit einer sehr geringen Änderung zu lösen (wobei die Subtraktion in SS durch die Division in SP ersetzt wird).

Das war, bis ich Kapitel 8 von "Theory of Computation" von Bernard Moret gelesen habe (für diejenigen ohne das Buch gibt es einen Beweis für die Härte des Teilmengenprodukts über X3C - ein stark NP-hartes Problem).

Ich verstehe die Reduktion, kann aber nicht herausfinden, was mit meiner früheren Schlussfolgerung (Gleichwertigkeit der beiden Probleme) falsch war.


UPDATE : Es stellt sich heraus, dass das Teilmengenprodukt nur schwach NP-vollständig ist (das Zielprodukt ist in exponentiell ). Gary und Johnson haben dies 1981 in ihrer NP-Vollständigkeitskolumne veröffentlicht , aber ich denke, es war weniger sichtbar als ihre frühere Behauptung in ihrem Buch.Ω(n)


5
Wahrscheinlich wäre es gut sich vorzustellen, wie Sie Ihren dynamischen Programmieralgorithmus implementieren würden. Dann würden Sie finden, was falsch war.
Yoshio Okamoto

@ MohammadAl-Turkistany: Es ist im letzten Abschnitt dieser Kolumne
RDN

Antworten:


5

In Bezug auf das Problem der Äquivalenz von Teilmenge Summe und Teilmenge Produkt gibt es eine technische Besonderheit in Bezug auf Teilmenge Produkt. Das Produkt von x = T ist tatsächlich ein Pseudopolynom, wenn T nicht exponentiell ist! Die Beweise, dass Subset Product NP Hard ist, sind also (aus technischen Gründen !!!) nicht ganz korrekt!

Wenn man jedoch verspricht, dass T groß ist, ergibt die Reduktion über Logarithmen auf die Teilmengen-Summe eine NICHT-STANDARD-Teilmengen-SUMME, die über dem Real liegt! Dies bedeutet, dass der Pseudopolynom-Algorithmus für die Teilmengen-Summe nicht gilt! Obwohl die Logarithmen klein sind, verfälschen die Dezimalstellen die dynamische Programmierung des Pseudopolynoms!

ich hoffe das hilft

Zelah


2
Es stellte sich heraus, dass Sie die ganze Zeit über Recht hatten, dass die Reduktionen falsch waren (dh, Sie behaupten, dass sie eine starke NP-Vollständigkeit aufweisen, wenn sie dies nicht tun). Vielen Dank!
RDN

8

Erstens funktioniert die Verwendung der Exponentiation für den Übergang von SS zu SP (mit Basis 2 anstelle von Basis ), erhöht jedoch die Größe der beteiligten Zahlen. Eine schwache NP-Härte bedeutet, dass das Problem nicht länger schwer ist, wenn die Zahlen klein sind (genauer gesagt, unär). Daher werden durch die Verwendung der Exponentiation SP-Instanzen mit exponentieller Größe erstellt, auch für einfache SS-Instanzen, bei denen die Zahlen unär geschrieben sind.e

Zweitens funktioniert die Verwendung von Logarithmen für den Übergang von SP zu SS nicht, da Logarithmen normalerweise nicht ganzzahlige Werte generieren. SS und SP werden mit ganzzahligen Zahlen definiert, und Logarithmen führen oft zu transzendentalen Werten, die schwer darzustellen oder zu berechnen sind.

<edit>

Sei eine ganze Zahl, A > 0 , dann ist log 2 A nur dann rational, wenn A eine Potenz von 2 ist, und ansonsten transzendental. Erstens, wenn log 2 A = pAA>0log2AA für ganze Zahlen ungleich Nullpundq, dann istA=2 plog2A=pqpq ,Aq=2p. Wir haben alsoA=2rdurch Primzerlegung. Außerdem istArq=2p, alsokönnen wir beigegebenemAq=1undp=rwählen,umzu beweisen, dasslog2Arational ist.A=2pqAq=2pA=2rArq=2pAq=1p=rlog2A

Wir müssen nur zeigen, dass niemals transzendental ist. Dies folgt aus dem Gelfond-Schneider-Theorem , denn eine äquivalente Formulierung (wie auf der Wiki-Seite zu finden) lautet: "Wenn α und γ algebraische Zahlen ungleich Null sind und wir einen von Null verschiedenen Logarithmus von α annehmen , dann ( log γ ) / ( log α ) = log α γ ist entweder rational oder transzendental. " Es ist auch einfach , indem man die Umkehrung des Satzes und Einstellung zu überprüfen & agr; β = γ und damit βlog2Aαγα(logγ)/(logα)=logαγαβ=γ .β=logαγ

</edit>

Als letztes überlegen Sie, was passiert, wenn wir den dynamischen Programmieralgorithmus von SS auf SP ausprobieren. Da wir Produkte anstelle von Summen verwenden, explodieren die Zahlen enorm, und die willkürliche Genauigkeit, die erforderlich ist, wird plötzlich zu einem Faktor in der Laufzeit. Aus diesem Grund kann der Algorithmus SP-Instanzen nicht schnell lösen, selbst wenn die Zahlen unär sind.


Dies führt zu einem etwas interessanten Sonderfall. Für welche Klassen von Zahlen kann das Protokoll als Rational ausgedrückt werden und erfordert keine unendliche Präzision? In diesem Fall wären die Probleme in der Tat nahezu gleichwertig und zueinander reduzierbar. es scheint auch zu einem "natürlichen" Näherungsalgorithmus zu führen.
vzn

1
Danke für die tolle Antwort! Ich habe nur ein Problem - ich verstehe, warum das Nehmen von Protokollen illegal ist (außer vielleicht in dem Fall, in dem die Protokolle poly lang sind - wie vzn betont), aber ich bin mir immer noch nicht sicher, ob es legal ist, von SS zu SP zu wechseln durch Potenzierung. WRT von SS SP gehen , wie Sie (über Potenzierung) erwähnt, nicht laufen wir in das folgende Problem: Die Anzahl der Bits in der Eingabeinstanz von ist O ( n log x ) und die Anzahl der Bits in der Instanz von I S P ist O ( n x ) . Dies ist eine exponentielle Explosion. Also ist es immer noch legal? Wenn ja, warum?ISSO(nlogx)ISPO(nx)
RDN

1
@vzn, RDN: Ich habe eine Charakterisierung bearbeitet, wenn der Logarithmus transzendental ist. Über die Vergrößerung der Reduktion hängt es von Ihrer Definition von 'legal' ab: Die Reduktion ist korrekt , aber ihre Effizienz ist nicht polynomial und sagt daher nichts über die NP-Härte aus. Es handelt sich also nicht um eine korrekte Mehrfachzeitverkürzung , sondern um eine korrekte Verkürzung (ohne Qualifikatoren).
Alex ten Brink

Es gibt auch einen Sonderfall, in dem alle Zahlen in der Form vorliegen , wobei jedes n i für jedes c rational ist , nicht nur für c = 2 . der Näherungsalgorithmus, an den ich dachte, könnte ein c finden, so dass die Umwandlung von Werten in diese "Basis" den Originalen "nahe" kommt. cninicc=2c
vzn

1

Die wörtliche Erklärung ist, dass das Subset-Produktproblem NP-vollständig ist, indem es von einem stark NP-vollständigen Problem, wie der exakten Abdeckung durch 3-Sätze, reduziert wird. Bei einer solchen "starken" Reduzierung sind die Eingabe-Ganzzahlen durch eine Polynomfunktion in der Anzahl der Ganzzahlen in der resultierenden Instanz des Subset-Produktproblems begrenzt.

Eine solche „starke“ Reduktion ist von jeder stark NP-vollständiges Problem zu Subset - Sum Problem , es sei denn unmöglich . Wir haben einen dynamischen Programmieralgorithmus für die Polynomzeit, um das Subset-Summen-Problem zu lösen, wenn Eingabe-Ganzzahlen durch ein Polynom begrenzt sind.P=NP


Ja ich verstehe das. Meine Frage war, warum die Schlussfolgerung, die ich zuvor gezogen hatte, falsch war (dh die Gleichwertigkeit von SS und SP).
RDN

@rdn Es gibt in diesem Sinne keine Äquivalente, es sei denn, P = NP.
Mohammad Al-Turkistany

Ja, das verstehe ich. Aber ich möchte wissen, was an meinen Nachlässen in beide Richtungen falsch war.
RDN

Können Sie Ihre Ermäßigungen skizzieren?
Mohammad Al-Turkistany

Lassen Sie P = e S . VerwandlungI(SS)=X,SI(SP)=Y,PI(SS)I(SP)P=eSYi=eXiSP=eSI(SP)I(SS)S=log(P)Xi=log(Yi)PS=log(P)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.