Set diberikan. Untuk setiap elemen , kami memiliki bobot dan biaya . Tujuannya adalah menemukan subset dari ukuran yang memaksimalkan fungsi tujuan sebagai berikut:
Apakah masalahnya NP-keras?
Karena fungsi objektif tampak aneh, akan sangat membantu untuk menjelaskan penerapan fungsi tujuan.
Misalkan kita memiliki n item hingga dan ada salinan dari setiap objek dalam inventaris kami. Kami memiliki beberapa pelanggan dan mereka tertarik benda-benda ini dalam proporsi dengan berat badan mereka , yang berarti objek dengan yang lebih besar lebih populer. Kami memiliki sistem penjualan online dan kami harus menjawab permintaan pelanggan dengan benar. Kita tidak bisa mengenali objek dengan bentuknya (Mereka semua terlihat sama!). Tetapi kami memiliki beberapa classifier untuk menemukannya. Setiap classifier dapat digunakan untuk mendeteksi salinan suatu objek. Kami bertujuan untuk menjalankan k classifier untuk memaksimalkan kepuasan pelanggan kami.
NB: Mungkin bermanfaat untuk memikirkan kasus bahwa untuk semua i ≤ n ; Namun, saya tidak yakin. [ Saya salah tentang ini! Ada dalam P dengan asumsi ini ]
sumber
Jawaban:
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 .ci n D=∑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⊆S K .∑i∈Mwici∑i∈Mci−∑i∈Mwi
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
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) n D □
Akibat wajar. Kecuali P = NP, setiap pengurangan yang menunjukkan kekerasan-NP akan berkurang menjadi contoh di mana tidak polinomial dalam .nD n
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=ci i M k
sumber
Anda bertanya tentang pemaksimalan fungsi tanpa batasan?
Ini sangat sederhana. Jika M adalah set terbesar, maka itu adalah solusi terbaik. Tidak perlu menghitung apa pun.
Masalah ini tampaknya mirip dengan masalah ransel, yang merupakan NP by the way.
sumber