Ist das Rucksackproblem NP-Hard, wenn $ v_i= i $?
-
29-09-2020 - |
Frage
Das Rucksackproblem ist np-hart und kann als formuliert werden:
was ist, wenn $ v_i= i $ ?Ist es immer noch np-hart?
$$ \ beginnen {Align} & \ Text {Maximize} \ sum_ {i= 1} ^ n ix_i, \ tag {p2} \\ & \ text {thema} \ sum_ {i= 1} ^ n w_i x_i \ leq w, \\ & \ text {und} x_i \ in \ {0,1 \}. \ end {richten} $$
Ich versuche, (P1) bis (P2) zu reduzieren.Angesichts einer Instanz von (P1) erstellte ich die gleiche Anzahl von Elementen, gleiche Gewichte.Nun muss ich die Lösungen auf (P1) und (P2) beziehen.
Lösung
Nein, dieses Problem ist in $ \ mathbf {p} $ . Der Hauptpunkt ist, dass die Summe aller Werte $ 1 + 2 \ ldots + n=frac {n (n + 1)} {2}=mathcal {o} ( n ^ 2) $ , das Polynom in der Eingabegröße ist. Ohne die zusätzliche Einschränkung der
So können wir $ dp [i] [v] $ definieren, wobei $ 1 \ leq i \ leq n $ und $ 0 \ leq v \ leq \ frac {n (n + 1)} {2} $ , um das Mindestgewicht zu sein, das erforderlich ist, um einen Wert zu erhalten Von mindestens
Die DP-Werte können wie folgt berechnet werden:
$ dp [i] [v]=min (dp [i-1] [v], w_i + dp [i-1] [v - v_i]) $ .
Der erste Begriff ist der Auffassung, dass die Möglichkeit der
Das gesamte Problem kann also in $ \ Mathcal {O} (N ^ 3) $ Uhrzeit und $ gelöst werden \ mathcal {o} (n ^ 3) $ space, der auf $ \ mathcal {o} (n ^ 2) $ raum von reduziert werden kann Nur zwei Arrays der Größe $ \ frac {n (n + 1)} {2} + 1 $ .