Wählen Sie eine Teilmenge der Spalten in der Matrix aus. Ist das einfach?

2

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 .2×nb<nc

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.bc

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:{a1,,an}{1,,n}

  • Ich habe versucht, die Matrix mit nur in der ersten Zeile und in der zweiten Zeile zu erstellen .a2ia2i+1
  • 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.aiαiβiai=αi+βiαiβi

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.b

  • Wenn die Summe über der ersten Zeile kleiner als , sind wir fertig. Es gibt keine Lösung.c
  • Andernfalls ist die Summe der ersten Zeile über den letzten Spalten größer als . Dann sehen Sie die Summe der zweiten Zeile. bc
    • Wenn die Summe der zweiten Zeile über den letzten Spalten größer als , sind wir fertig. Geben Sie die letzten Spalten zurück.bcb
    • 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.bcbc
Brika
quelle
An dieser Stelle ist es schwierig, einen Hinweis zu geben, ohne die Lösung preiszugeben.
Yuval Filmus
Ich habe die Lösung zu meiner Antwort hinzugefügt. Versuchen Sie es das nächste Mal stärker, bevor Sie aufgeben.
Yuval Filmus

Antworten:

6

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>0b=n/2c=i(M+xi)/21MM=maxixi

[M+x1M+xnM+ixin/2x1M+ixin/2xn].
Yuval Filmus
quelle
Vielen Dank. Ich habe versucht, es mit PARTITION zu tun, wie Sie vorgeschlagen haben. Bei einer Instanz von PARTITION ist . Ich erstelle eine Instanz meines Problems wie folgt: (ich nehme an, dass ist), und die Matrix ist gegeben durch . PARTITION ist gelöst, wenn das Problem gelöst ist, bei dem die Teilmenge der Spalten diejenigen mit Indizes in der ersten Partition oder zweiten Partition sind. Ich denke das ist nicht genau richtig, oder? A={a1,,an}b=n/2nc=i=1nai/2[a1ana1an]
Brika
Ihre Instanz ist leicht zu lösen - nehmen Sie die größten nicht negativen s und , ob sie mindestens . Also nein, es funktioniert nicht. Versuchen Sie beim nächsten Mal, einen formellen Beweis zu schreiben. Überprüfen Sie auch die genaue Definition von PARTITION (z. B. auf Wikipedia). n/2aiiai/2
Yuval Filmus
6
@ Yuval. Die Matrix hat nicht negative Einträge, nicht wahr?
Zighalo
5
Ah - ich habe diesen Zustand verpasst. Aber vielleicht kann die Reduzierung irgendwie angepasst werden.
Yuval Filmus
3
@Brika Nicht unbedingt. Die Idee funktioniert, wenn sie entsprechend modifiziert wird.
Yuval Filmus