以下の答えは、問題の特別なケースが多項式時間で解けることを示しています。これは投稿の質問に完全に答えるものではありませんが、NP硬度の証明に何が必要かについて洞察を与え、投稿へのさらなる関心を引き起こす可能性があります...
cinD=∑ici
(S,w,c,K)w,c∈Rn+S={1,2,…,n}M⊆SK∑i∈Mwici∑i∈Mci−∑i∈Mwi
(d1,d2,k,m)0≤d1≤d2≤D0≤k≤Kk≤m≤n
ϕ(d1,d2,k,m)=max{∑i∈Mwi(ci/d1−1) : M⊆[m],|M|=k,∑i∈Mci=d2}.
maxdϕ(d,d,K,n)
以下のための可能な解決策のパーティション含むものにし、そうでないもの、我々は再発得る
境界ケースは演習として残します。ϕ(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).
副問題の数はであり、それぞれの反復の右側は一定の時間で評価できるため、アルゴリズムはおよび時間多項式で実行されます。のn D ◻O(n2D2)nD □
当然です。 P = NPでない限り、NP硬度を示すすべての削減は、が多項式ではないインスタンスに削減されます。nDn
リマーク。私が間違っていない限り、動的プログラミングを使用してを丸めることに基づいて、投稿に問題のPTASもあります。ただし、投稿で質問されているように、PTASの存在は、問題がNP困難であるかどうかには直接関係しません。wi
私も興味があります---(ごと)の特別な場合にポリタイムアルゴリズムがあるかどうか誰かが知っていますか?(編集:それはそうです、ウィラード・ザーンのコメントによると、これはに最大要素を含めることによって最適化されるようです。) i M kwi=ciiMk