Ich möchte wissen, ob dieses Problem in Polynomzeit lösbar ist oder nicht.
Das Problem ist: Gegeben ist eine nichtnegative Ganzzahlmatrix mit der Größe und zwei nichtnegativen Ganzzahlnummern und .
Die Frage ist: Finden Sie eine Teilmenge der Kardinalitätsspalten höchstens so dass die Summe jeder Zeile über der Teilmenge der Spalten größer als . Geben Sie no zurück, wenn keine solche Teilmenge vorhanden ist.
Ich kann nicht zeigen, dass es NP-schwer ist.
BEARBEITEN:
Mein Versuch, die Härte zu beweisen : Nach den Vorschlägen von Filmus habe ich versucht, PARTITION (eine Instanz wird durch die Menge nicht negativer Ganzzahlen ) auf mein Problem zu reduzieren. Ich habe natürlich versagt. Der Gedanke, den ich nicht verstanden habe, ist, wie die Partitionierung einer Reihe nicht negativer Ganzzahlen mit diesem Problem zusammenhängt? Ich meine, in meinem Problem möchte ich eine Teilmenge von auswählen , um etwas zu maximieren. Ich kann nicht sehen, wie dies eine Partition ist. Ich habe viele Gedanken ausprobiert, aber ich kann sie hier nicht alle schreiben:
- Ich habe versucht, die Matrix mit nur in der ersten Zeile und in der zweiten Zeile zu erstellen .
- Ich war es leid, die erste Reihe in aufsteigender Reihenfolge und die zweite Reihe in absteigender Reihenfolge zu sortieren.
- Ich habe versucht, das in zwei Werte und zu teilen, so dass und dann die Matrix mit in der ersten Zeile und in der zweiten Zeile erstellt.
Kann mir jemand intuitiv erklären, wie ich PARTITION verwenden kann, um die NP-Härte meines Problems zu zeigen? Sie müssen die Lösung nicht angeben.
Meine Lösung zur Lösung des Problems :
Ich habe diese Lösung ausprobiert. Angenommen, ohne an Allgemeinheit zu verlieren, wird die erste Zeile der Matrix in aufsteigender Reihenfolge sortiert. (Die zweite Zeile der Matrix muss nicht sortiert werden, da das Problem sonst trivial ist.)
Nehmen Sie nun die letzten Spalten der Matrix.
- Wenn die Summe über der ersten Zeile kleiner als , sind wir fertig. Es gibt keine Lösung.
- Andernfalls ist die Summe der ersten Zeile über den letzten Spalten größer als . Dann sehen Sie die Summe der zweiten Zeile.
- Wenn die Summe der zweiten Zeile über den letzten Spalten größer als , sind wir fertig. Geben Sie die letzten Spalten zurück.
- Andernfalls ist die Summe der ersten Zeile über den Spalten größer als aber die Summe der zweiten Zeile über den Spalten ist kleiner als . Hier haben wir ein Problem.
Antworten:
Hinweis: Zeigen Sie, dass es NP-schwer ist, indem Sie von EQUAL-PARTITION, der Variante von PARTITION, reduzieren, bei der beide Teile gleich groß sein müssen (siehe eine Frage zu math.se ).
Betrachten Sie bei einer Instanz von EQUAL-PARTITION (mit ) eine Instanz Ihres Problems mit , für groß genug (ich denke, dass ausreichen sollte) und die Matrix{x1,…,xn} xi>0 b=n/2 c=∑i(M+xi)/2−1 M M=maxixi
quelle