Die folgende Antwort zeigt, dass ein Sonderfall des Problems in Polynomzeit lösbar ist. Dies beantwortet die Frage in der Post nicht vollständig, kann aber einen Einblick geben, was für einen NP-Härtenachweis erforderlich sein könnte, und kann zusätzliches Interesse an der Post hervorrufen ...
Überwachung. Das Problem in der Post hat einen Algorithmus, der in jedem Fall, in dem jedes eine ganze Zahl ist, im in und . n D = ∑ i c icinD=∑ici
Beweisskizze.
Korrigieren Sie alle Eingaben wobei und (WLOG)
. Umformulierung des Problems etwas, das Ziel zu finden der Größe maximiert .w , c ∈ R n + S = { 1 , 2 , … , n } M ⊆ S K ∑ i ∈ M w i c i(S,w,c,K)w,c∈Rn+S={1,2,…,n}M⊆SK∑i∈Mwici∑i∈Mci−∑i∈Mwi
Betrachten Sie das folgende dynamische Programm. Für alle ganzen Zahlen mit , und , definieren
Die gewünschte Lösung ist .(d1,d2,k,m)0≤d1≤d2≤D0≤k≤Kk≤m≤nmax d ϕ(d,d,K,n)
ϕ(d1,d2,k,m)=max{∑i∈Mwi(ci/d1−1) : M⊆[m],|M|=k,∑i∈Mci=d2}.
maxdϕ(d,d,K,n)
Wenn wir die möglichen Lösungen für in diejenigen die enthalten, und diejenigen, die dies nicht tun, erhalten wir die Wiederholung
Wir verlassen die Grenzfälle als Übung.m φ ( d 1 , d 2 , k , m ) = max { φ ( d 1 , d 2 - c m , k - 1 , m - 1 ) + w m ( c m / d 1 - 1 ) ϕ (ϕ(d1,d2,k,m)m
ϕ(d1,d2,k,m)=max{ϕ(d1,d2−cm,k−1,m−1)+wm(cm/d1−1)ϕ(d1,d2,k,m−1).
Die Anzahl der Teilprobleme ist , und für jedes kann die rechte Seite der Wiederholung in konstanter Zeit ausgewertet werden, so dass der Algorithmus in und im Zeitpolynom läuft . n D ◻O(n2D2)nD □
Logische Folge. Wenn P = NP nicht ist, wird jede Verringerung, die die NP-Härte zeigt, auf Fälle reduziert, in denen in nicht polynomisch ist .nDn
Anmerkung. Sofern ich mich nicht irre, gibt es in der Post auch ein PTAS für das Problem, das auf der Rundung der und der dynamischen Programmierung basiert . Die Existenz eines PTAS hat jedoch keinen direkten Einfluss darauf, ob das Problem NP-schwer ist, wie in der Post gefragt.wi
Ich bin auch neugierig --- weiß jemand, ob der Sonderfall, wenn (für jedes ) einen hat? (BEARBEITEN: Laut Willard Zhans Kommentar scheint dies optimiert zu sein, indem , dass es die größten Elemente enthält.) i M kwi=ciiMk