Subset sum vs Subset product (kekerasan NP kuat vs lemah)


15

Saya berharap bahwa seseorang mungkin dapat menjelaskan kepada saya mengapa masalah subset produk sangat NP-hard sedangkan masalah subset sum lemah NP-hard.

Subset Sum: Mengingat dan T , tidak terdapat subset X ' sehingga Σ i X ' x i = T .X={x1,...,xn}TXiXxi=T

Subset Produk: Mengingat dan T , tidak terdapat subset X ' sehingga Π i X ' x i = T .X={x1,...,xn}TXiXxi=T

Saya selalu berpikir dua masalah itu setara - sebuah instance dari SS dapat ditransformasikan ke sebuah instance dari SP melalui eksponensial dan sebuah instance dari SP ke SS melalui logaritma. Ini membuat saya menyimpulkan bahwa mereka berdua termasuk dalam kelas NP-hard yang sama - yaitu, mereka keduanya NP-hard lemah.

Lebih lanjut, tampak bahwa perulangan yang sama dapat digunakan untuk menyelesaikan kedua masalah menggunakan pemrograman dinamis dengan perubahan yang sangat kecil (mengganti pengurangan dalam SS dengan divisi di SP).

Itu sampai saya membaca bab 8 "Theory of Computation" oleh Bernard Moret (bagi mereka yang tidak memiliki buku, ia memiliki bukti kekerasan produk subset melalui X3C - masalah yang sangat sulit NP).

Saya memahami pengurangan, tetapi tidak dapat menemukan apa yang salah dengan kesimpulan saya sebelumnya (ekuivalen dari dua masalah).


UPDATE : Ternyata produk subset hanya NP-complete lemah (produk target eksponensial dalam ). Gary dan Johnson menerbitkan ini di kolom NP-completeness mereka pada tahun 1981 , tapi saya kira itu kurang terlihat daripada klaim mereka sebelumnya dalam buku mereka.Ω(n)


5
Mungkin akan lebih baik untuk membayangkan bagaimana Anda akan mengimplementasikan algoritma pemrograman dinamis Anda. Kemudian, Anda akan menemukan apa yang salah.
Yoshio Okamoto

@ MohammadAl-Turkistany: Ada di bagian akhir kolom
RDN

Jawaban:


5

Mengenai masalah kesetaraan Jumlah Subset dan Produk Subset Ada teknis tentang Subset Produk. Produk x's = T sebenarnya Psuedopolinomial jika T tidak eksponensial! Jadi bukti Subset Produk menjadi NP Hard tidak (karena alasan teknis !!!) cukup benar!

Namun diberi janji bahwa T Besar, maka pengurangan via Logaritma ke Subset Sum memberikan SUM SUBSET NON STANDAR yang melebihi real! Ini berarti bahwa algoritma Psuedopolynomial untuk Subset Jumlah Tidak berlaku! Meskipun Logaritma kecil, tempat desimal mengacaukan Pemrograman Dinamis Psuedopolinomial!

saya harap ini membantu

Zelah


2
Ternyata Anda benar selama ini tentang pengurangan yang tidak benar (yaitu, mengklaim mereka menunjukkan kelengkapan NP yang kuat, ketika mereka tidak). Terima kasih!
RDN

8

Pertama, menggunakan eksponensial untuk beralih dari karya SS ke SP (menggunakan basis 2 daripada basis ), tetapi meledakkan ukuran angka yang terlibat. Kekerasan NP yang lemah berarti bahwa jika jumlahnya kecil (atau lebih tepatnya, dinyatakan dalam unary), masalahnya tidak lagi sulit. Oleh karena itu, menggunakan eksponensial membuat instance SP berukuran eksponensial bahkan untuk instance SS yang mudah, di mana angkanya ditulis dalam unary.e

Kedua, menggunakan logaritma untuk beralih dari SP ke SS tidak berfungsi, karena logaritma biasanya menghasilkan nilai non-integer. SS dan SP didefinisikan menggunakan angka integer, dan logaritma sering menghasilkan nilai transendental, yang sulit untuk diwakili atau dilakukan perhitungan matematika.

<edit>

Biarkan menjadi bilangan bulat, A > 0 , lalu log 2 A adalah rasional jika dan hanya jika A adalah kekuatan 2, dan sebaliknya transendental. Pertama, jika log 2 A = pAA>0log2AA untuk bilangan bulat bukan nolpdanq, makaA=2 plog2A=pqpq ,Aq=2p. Karena itu kami memilikiA=2rdengan dekomposisi prima. SelanjutnyaArq=2p, jadi dengan diberiAkita dapat memilihq=1danp=runtuk membuktikanlog2Aadalah rasional.A=2pqAq=2pA=2rArq=2pAq=1p=rlog2A

Kita hanya perlu menunjukkan bahwa tidak pernah transendental. Ini mengikuti dari teorema Gelfond-Schneider , untuk formulasi yang setara (seperti dapat ditemukan pada halaman Wiki) adalah "jika α dan γ adalah bilangan aljabar bukan nol, dan kami mengambil logaritma bukan-nol dari α , lalu ( log γ ) / ( log α ) = log α γ bisa rasional atau transendental. " Juga mudah untuk memverifikasi dengan mengambil kebalikan dari teorema dan mengatur α β = γ dan karenanya βlog2Aαγα(logγ)/(logα)=logαγαβ=γβ=logαγ.

</edit>

Lastly, consider what happens when we try the dynamic programming algorithm from SS on SP. Because we use products rather than sums, the numbers involved blow up enormously, and the arbitrary precision math required suddenly becomes a factor in the running time. This is why the algorithm cannot solve SP instances quickly even if the numbers are in unary.


this leads to a somewhat interesting special case. for what class of numbers are the log's expressible as rationals and not requiring infinite precision? in this case the problems would indeed be nearly equivalent & reducible to each other. it also seems to lead toward a "natural" approximation algorithm.
vzn

1
Thanks for the great answer! I have just one issue -- I get why taking logs is illegal (except perhaps in the case where the logs are poly in length -- as vzn points out), but I'm still unsure about the legality of going from SS to SP via exponentiation. WRT going from SS to SP as you mentioned (via exponentiation), don't we run into the following problem: The number of bits in the input instance of ISS is O(nlogx) and the number of bits in the instance of ISP is O(nx). This is an exponential blow-up. So is it still legal? If it is, why?
RDN

1
@vzn, RDN: I edited in a characterization when the logarithm is transcendental. About the blow-up in the reduction, it depends on your definition of 'legal': the reduction is correct, yet its efficiency is not polynomial, and hence does not say anything about NP-hardness. It is therefore not a correct poly-time reduction, but it is a correct reduction (without qualifiers).
Alex ten Brink

also there is a special case where all numbers are in the form cni, each ni rational, for any c, not just c=2. the approximation algorithm I was thinking of might find a c such that the conversion of values into that "base" is "close" to the originals.
vzn

1

The literal explanation is that Subset Product problem is NP-complete by a reduction from strongly NP-complete problem such as exact cover by 3-sets. In such "strong" reduction, the input integers are bounded by some polynomial function in the number of integers in the resulting instance of Subset Product problem.

Such a "strong" reduction is impossible from any strongly NP-complete problem to Subset Sum Problem unless P=NP. We have polynomial-time dynamic programming algorithm for solving Subset Sum problem if input integers are bounded by a polynomial.


Yes, I understand that. My question was about why the conclusion I had made earlier was incorrect (i.e., equivalence of SS and SP).
RDN

@rdn There are not equivalent in that sense unless P =NP.
Mohammad Al-Turkistany

Yes, I get that. But I want to know what was wrong with my reductions in either direction.
RDN

Can you outline you reductions?
Mohammad Al-Turkistany

Let I(SS)=X,S be an instance of SS and I(SP)=Y,P be an instance of SP. Transforming I(SS) into I(SP): Let P=eS and Yi=eXi. There exists a SS of sum S iff there exists a SP of product P=eS. Transforming I(SP) into I(SS): Let S=log(P) and Xi=log(Yi). There exists a SP of product P iff there exists a SS of sum S=log(P).
RDN
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.