Set ist gegeben. Für jedes Element haben wir das Gewicht und kosten . Das Ziel besteht darin, die Teilmenge der Größe , die die folgende Zielfunktion maximiert: .
Ist das Problem NP-schwer?
Da die Zielfunktion seltsam erscheint, ist es hilfreich, eine Anwendung der Zielfunktion zu erklären.
Angenommen, wir haben n Artikel bis und es gibt Kopien jedes Objekts in unserem Inventar. Wir haben einige Kunden, die sich für diese Objekte im Verhältnis zu ihrem Gewicht , was bedeutet, dass das Objekt mit dem größeren beliebter ist. Wir haben ein Online-Verkaufssystem und müssen die Anfragen unserer Kunden korrekt beantworten. Wir können Objekte nicht an ihren Formen erkennen (sie sehen alle gleich aus!). Aber wir haben einige Klassifikatoren, um sie zu finden. Jeder Klassifikator kann zum Erkennen von Kopien eines Objekts verwendet werden. Wir möchten k klassifier ausführen, um die Zufriedenheit unserer Kunden zu maximieren.
PS: Es kann nützlich sein, über den Fall nachzudenken, dass für alle ; Ich bin mir jedoch nicht sicher. [ Ich habe mich geirrt! Es ist in P durch diese Annahme ]
quelle
Antworten:
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 ici n D=∑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⊆S K ∑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≤D 0≤k≤K k≤m≤n max d ϕ(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
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) n D □
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 .nD n
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=ci i M k
quelle
Sie fragen nach der Maximierung einer Funktion ohne Einschränkungen?
Es ist wirklich einfach. Wenn M die größte Menge ist, ist es die beste Lösung. Keine Notwendigkeit, etwas zu berechnen.
Dieses Problem scheint dem Rucksackproblem ähnlich zu sein, das übrigens NP ist.
quelle