Tetapkan masalah pengoptimalan - apakah sudah lengkap?


10

Set S={e1,,en} diberikan. Untuk setiap elemen ei , kami memiliki bobot wi>0 dan biaya ci>0 . Tujuannya adalah menemukan subset M dari ukuran k yang memaksimalkan fungsi tujuan sebagai berikut:

eiMwi+eiMwicieiMci
.

Apakah masalahnya NP-keras?

Karena fungsi objektif tampak aneh, akan sangat membantu untuk menjelaskan penerapan fungsi tujuan.

Misalkan kita memiliki n item e1 hingga en dan ada ci salinan dari setiap objek ei dalam inventaris kami. Kami memiliki beberapa pelanggan dan mereka tertarik benda-benda ini dalam proporsi dengan berat badan mereka wi , yang berarti objek dengan yang lebih besar wi 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 ]wici=pin


Istilah yang tepat kurang dari atau sama dengan bobot terbesar suatu unsur, bukan dalam M. Jadi, jika Anda memiliki unsur dengan berat besar, lebih baik menaruhnya di M, daripada membiarkannya sia-sia. Jadi M harus terdiri dari elemen dengan bobot terbesar k. Baik?
zotachidil

Itu tidak benar, karena biaya juga penting. Pertimbangkan contoh berikut:
Nasooh

w1 = 50, c1 = 80 - w2 = 40, c2 = 15 - w3 = 10, c3 = 5. Untuk k sama dengan 1 memilih e2 lebih menguntungkan daripada e1.
Nasooh

Kamu benar. Hmm ...
zotachidil

2
Terima kasih telah mencoba menjelaskan motivasi. Sayangnya, hubungan antara penjelasan Anda dan fungsi obyektif dalam pertanyaan itu masih sama sekali tidak jelas bagi saya, tapi saya rasa saya harus puas dengan penjelasan saat ini untuk menjaga pertanyaan dalam jarak yang wajar.
Tsuyoshi Ito

Jawaban:


2

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,cR+nS={1,2,,n}MSK.iMwiciiMciiMwi

(d1,d2,k,m)0d1d2D0kKkmnmaks d ϕ(d,d,K,n)

ϕ(d1,d2,k,m)=max{iMwi(ci/d11) : M[m],|M|=k,iMci=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,d2cm,k1,m1)+wm(cm/d11)ϕ(d1,d2,k,m1).

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


1
Bukankah kasus sama dengan meminimalkan , yang dioptimalkan ketika terdiri dari terbesar ini ( i j M w i w j ) / ( i M w i ) M w iwi=ci(ijMwiwj)/(iMwi)Mwi
Willard Zhan

@ WillardZhan, ya, sepertinya itu benar.
Neal Young

-6

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.


3
Pertanyaannya mengatakan, "bagian M dari ukuran k."
Tsuyoshi Ito
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.