Ada sampah dan jenis bola. The bin th memiliki label untuk , itu adalah jumlah yang diharapkan dari bola tipe .
Anda mulai dengan bola dari jenis . Setiap bola jenis memiliki berat , dan ingin menempatkan bola ke dalam keranjang yang bin seperti memiliki berat badan . Distribusi bola sedemikian rupa sehingga kondisi sebelumnya berlaku disebut solusi yang layak.
Pertimbangkan solusi yang layak dengan bola dari jenis di bin , maka biaya yang . Kami ingin menemukan solusi layak biaya minimum.
Masalah ini jelas NP-keras jika tidak ada batasan pada . Masalah jumlah subset berkurang ke adanya solusi yang layak.
Namun, jika kita menambahkan kondisi yang membagi untuk setiap , maka pengurangan bagian sum karya tidak lagi, sehingga tidak jelas apakah masalah yang dihasilkan tetap NP-keras. Memeriksa adanya solusi yang layak hanya membutuhkan waktu (terlampir pada akhir pertanyaan), tetapi ini tidak memberikan kita solusi layak biaya minimum.
Masalahnya memiliki formulasi program bilangan bulat yang setara. Mengingat untuk :
Pertanyaanku adalah,
Apakah program integer di atas NP-hard ketika membagi untuk semua ?
Algoritma untuk memutuskan apakah ada solusi yang layak di waktu:
Tentukan dan . Biarkan menjadi pengingat ketika dibagi dengan .
- Jika ada yang tidak habis dibagi dengan , kembalikan "tidak ada solusi yang layak". (invarian membagi akan selalu dipertahankan dalam loop berikut)
untuk dari hingga :
- . (minimum bola berat wajib)
- Jika , kembalikan "tidak ada solusi yang layak".
- untuk semua . (menghapus jumlah minimum bola diperlukan berat )
- . (kelompokkan bola yang lebih kecil menjadi bola yang lebih besar)
- kembali "ada solusi yang layak".
Solusi waktu polinomial untuk kasus khusus di mana , dan adalah kekuatan detik
Diketahui bahwa jika dan semua adalah kekuatan , maka kasus khusus ini dapat diselesaikan dalam waktu polinomial.
Solusinya diisyaratkan oleh Yuzhou Gu , dan penulisan dapat ditemukan di sini .