Apakah NP-sulit untuk mengisi sampah dengan gerakan minimum?

33

Ada n sampah dan m jenis bola. The i bin th memiliki label ai,j untuk 1jm , itu adalah jumlah yang diharapkan dari bola tipe j .

Anda mulai dengan bj bola dari jenis j . Setiap bola jenis j memiliki berat wj , dan ingin menempatkan bola ke dalam keranjang yang bin seperti i memiliki berat badan ci . Distribusi bola sedemikian rupa sehingga kondisi sebelumnya berlaku disebut solusi yang layak.

Pertimbangkan solusi yang layak dengan xi,j bola dari jenis j di bin i , maka biaya yang i=1nj=1m|ai,jxi,j|. Kami ingin menemukan solusi layak biaya minimum.

Masalah ini jelas NP-keras jika tidak ada batasan pada {wj} . Masalah jumlah subset berkurang ke adanya solusi yang layak.

Namun, jika kita menambahkan kondisi yang wj membagi wj+1 untuk setiap j , maka pengurangan bagian sum karya tidak lagi, sehingga tidak jelas apakah masalah yang dihasilkan tetap NP-keras. Memeriksa adanya solusi yang layak hanya membutuhkan O(nm) waktu (terlampir pada akhir pertanyaan), tetapi ini tidak memberikan kita solusi layak biaya minimum.

Masalahnya memiliki formulasi program bilangan bulat yang setara. Mengingat ai,j,ci,bj,wj untuk 1in,1jm :

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

Pertanyaanku adalah,

Apakah program integer di atas NP-hard ketika wj membagi wj+1 untuk semua j ?

Algoritma untuk memutuskan apakah ada solusi yang layak di O(nm) waktu:

Tentukan wm+1=wm(maxjcj+1) dan dj=wj+1/wj . Biarkan a%b menjadi pengingat ketika a dibagi dengan b .

  1. Jika ada ci yang tidak habis dibagi dengan w1 , kembalikan "tidak ada solusi yang layak". (invarian ci membagi wj akan selalu dipertahankan dalam loop berikut)
  2. untuk j dari 1 hingga m :

    1. ki=1n(ci/wj)%dj . (minimum bola beratwj wajib)
    2. Jika bj<k , kembalikan "tidak ada solusi yang layak".
    3. cici((ci/wj)%dj) untuk semuai . (menghapus jumlah minimum bola diperlukan beratwj )
    4. bj+1(bjk)/dj . (kelompokkan bola yang lebih kecil menjadi bola yang lebih besar)
  3. kembali "ada solusi yang layak".

Solusi waktu polinomial untuk kasus khusus di mana n=1 , dan wj adalah kekuatan 2 detik

Diketahui bahwa jika n=1 dan semua wj adalah kekuatan 2 , maka kasus khusus ini dapat diselesaikan dalam waktu polinomial.

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

Solusinya diisyaratkan oleh Yuzhou Gu , dan penulisan dapat ditemukan di sini .

Chao Xu
sumber

Jawaban:

0

wjwj+1j

wjiwjwjwj+1wjwj+1wjjwj

wjwj+1j

n=1wp

wj+1wjppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjj1,2,6,30,210,2310,30030,...pjjlog(j), melalui teorema bilangan prima), karena quotients semuanya adalah bilangan prima, kita mendapatkan kompleksitas NP-Intermediate.

wj+1wjRpRpjwjwj+1j101,2657,7,3169,210100

wji

Jeff
sumber
1
Tetapi faktorisasi utama dianggap bukan NP-hard. Ini dianggap sebagai NP-indermediate.
rus9384
2
Saya tidak melihat pengurangan di sini. Apa pengurangan yang sebenarnya? Mengambil input faktorisasi utama, dan entah bagaimana output faktorisasi menggunakan solusi program integer.
Chao Xu
2
Apakah yang Anda maksud dengan "program integer di atas adalah NP-hard"? Program individual tidak boleh NP-hard.
Yuval Filmus
1
NPcoNPNPNP=coNP
2
Sayangnya, suntingan tambahan tidak membersihkannya. Pengurangan aktual akan sangat membantu.
Chao Xu