Saya melihat masalah berikut:
Dengan -vektor dimensi bilangan asli dan beberapa vektor input , apakah kombinasi linear dari dengan koefisien bilangan alami?
yaitu apakah ada beberapa mana ?
Jelas versi bilangan real dari masalah ini dapat diselesaikan dengan menggunakan eliminasi Gaussian. Saya bertanya-tanya, apakah versi bilangan bulat dari masalah ini telah dipelajari? Algoritma apa yang ada untuk menyelesaikannya?
Perhatikan bahwa ini menggunakan bilangan asli, tetapi bukan aritmatika modular, jadi ini agak terpisah dari Teorema Sisa Tiongkok dan sistem seperti itu. Juga, tampaknya terkait dengan persamaan Diophantine, tapi saya bertanya-tanya apa yang telah dilakukan dalam kasus di mana hanya bilangan bulat non-negatif yang dipertimbangkan? Ini juga mengingatkan pada masalah subset-sum multi-dimensi, digeneralisasi untuk memungkinkan kita mengambil jumlah salinan setiap vektor secara sewenang-wenang. Tampaknya juga terkait dengan pengujian apakah adalah elemen kisi yang dihasilkan oleh , kecuali bahwa di sini kami hanya mengizinkan kombinasi linear dengan koefisien non-negatif.
Bagi siapa pun yang tertarik, ini dimotivasi dengan melihat apakah vektor Parikh dalam set linier, seperti dalam Teorema Parikh .
Secara khusus, saya tertarik pada algoritma yang bisa menyelesaikan masalah hanya menggunakan operasi bilangan alami, menghindari masuk ke angka real / floating point.
Jawaban:
Masalah Anda adalah NP-complete, dengan reduksi dari Subset Sum (ini ada di NP karena fakta bahwa semuanya non-negatif membatasi koefisien solusi dengan cukup baik). Diberikan instance dari Subset Sum (apakah ada subset dari S yang menjumlahkan ke T ?), Kami membuat sebuah instance v 1 , … , v 2 n , u dari masalah Anda sebagai mengikuti. Untuk setiap 1 ≤ i ≤ n , kami menempatkan v iS={s1,…,sn},T S T v1,…,v2n,u 1≤i≤n vi menjadi vektor dengan dua entri bukan nol: dan v i , n + 1 = s i , dan v n + i menjadi vektor dengan entri bukan nol yang unik v n + i , i = 1 . Vektor target u = 1 , ... , 1 , T . Setiap kombinasi alami dari v 1 , … , v 2 nvi,i=1 vi,n+1=si vn+i vn+i,i=1 u=1,…,1,T v1,…,v2n sama dengan harus memilih tepat satu dari masing-masing v i , v n + i , dan karenanya mengkodekan subset dari S yang penjumlahannya adalah nilai dari komponen terakhir.1,…,1,∗ vi,vn+i S
sumber