Jawaban di bawah ini mengamati bahwa kasus khusus masalah ini dapat dipecahkan dalam waktu polinomial. Ini tidak sepenuhnya menjawab pertanyaan di pos, tetapi dapat memberikan beberapa wawasan tentang apa yang mungkin diperlukan untuk bukti kekerasan NP, dan dapat memancing minat tambahan pada pos ...
Pengamatan. Masalah dalam posting memiliki algoritma yang, diberikan setiap contoh di mana setiap adalah bilangan bulat, berjalan dalam polinomial waktu dalam n dan D = ∑ i c i .cinD=∑ici
Sketsa bukti.
Perbaiki input apa pun mana w , c ∈ R n + dan (WLOG)
S = { 1 , 2 , … , n } . Mengulang masalah sedikit, tujuannya adalah untuk menemukan M ⊆ S ukuran K memaksimalkan Σ 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
(d1,d2,k,m)0≤d1≤d2≤D0≤k≤Kk≤m≤nmaks 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)
Partisi solusi yang mungkin untuk menjadi yang berisi dan yang tidak, kami mendapatkan perulangan
Kami meninggalkan kasus batas sebagai latihan.m ϕ ( d 1 , d 2 , k , m ) = maks { ϕ ( 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).
Jumlah subproblem , dan untuk setiap sisi kanan kekambuhan dapat dievaluasi dalam waktu yang konstan, sehingga berjalan algoritma dalam waktu polinomial di dan . n D ◻O(n2D2)nD □
Akibat wajar. Kecuali P = NP, setiap pengurangan yang menunjukkan kekerasan-NP akan berkurang menjadi contoh di mana tidak polinomial dalam .nDn
Ucapan. Kecuali saya salah, ada juga PTAS untuk masalah dalam posting, berdasarkan pembulatan kemudian menggunakan pemrograman dinamis. Namun, keberadaan PTAS tidak berpengaruh langsung pada apakah masalahnya NP-keras, seperti yang ditanyakan dalam posting.wi
Saya juga ingin tahu --- apakah ada yang tahu apakah kasus khusus ketika (untuk setiap ) memiliki algoritma waktu-poli? (EDIT: ya, menurut komentar Willard Zhan ini tampaknya dioptimalkan dengan mengambil untuk mengandung elemen terbesar.) i M kwi=ciiMk