Input adalah alam semesta dan keluarga himpunan bagian dari , mengatakan, . Kami berasumsi bahwa subset di dapat menutupi , yaitu, .
Sebuah urutan meliputi tambahan adalah urutan himpunan bagian di , katakanlah, , itu memuaskan
1) ,
Masalahnya adalah untuk menemukan urutan penutup tambahan dari panjang maksimum (yaitu, dengan maksimum ). Perhatikan bahwa urutan panjang maksimum akhirnya harus menutupi U , yaitu, \ bigcup_ {E \ di {\ kal A}} E = U .U ⋃ E ∈ A E = U
Saya telah berusaha untuk menemukan suatu algoritma atau algoritma perkiraan untuk menemukan urutan penutup inkremental terpanjang. Saya hanya ingin tahu apa yang disebut varian masalah cover set ini. Terima kasih!
cc.complexity-theory
ds.algorithms
approximation-algorithms
optimization
set-cover
Kohorologi Cech
sumber
sumber
Jawaban:
Di sini saya menunjukkan bahwa masalahnya adalah NP-complete.
Kami mengonversi CNF ke instance masalah Anda sebagai berikut. Misalkan variabel CNF adalah dan klausa adalah , di mana . Misalkan mana semua set dalam gabungan sepenuhnya terpisah. Faktanya, dan , sedangkan adalah kumpulan kardinalitas . Juga tunjukkan dan perbaiki untuk setiap keluarga yang bertambah panjang di dalamnya, dilambangkan dengan untukx i m C j n < m U = ∪ i ( A i ∪ B i ∪ Z i ) A i = { a i , j ∣ x i ∈ C j } ∪ { a i , 0 } B i = { b i , j ∣ x i ∈ C j } ∪n xsaya m Cj n < m U=∪i(Ai∪Bi∪Zi) Ai={ai,j∣xi∈Cj}∪{ai,0} Z i k = 2 n + 1 Z = ∪ i Z i Z i k Z i , l l = 1 .. k x i 2 k F A i ∪ Z i , l B i ∪ Z i , l C j F Z x i ∈ C j { aBi={bi,j∣xi∈Cj}∪{bi,0} Zi k=2n+1 Z=∪iZi Zi k Zi,l l=1..k . Untuk setiap variabel , kami menambahkan set ke , setiap set formulir dan . Untuk setiap klausa , kami menambahkan satu set ke , yang berisi , dan untuk setiap elemen dan untuk setiap elemen .xi 2k F Ai∪Zi,l Bi∪Zi,l Cj F Z xi∈Cj ˉ x i ∈ C j { b i , j }{ai,j} x¯i∈Cj {bi,j}
Misalkan rumusnya memuaskan dan memperbaiki tugas yang memuaskan. Kemudian pilih set dari formulir atau , tergantung pada apakah benar atau tidak. Ini adalah set inkremental . Sekarang tambahkan set sesuai dengan klausa. Ini juga terus meningkatkan ukuran, karena klausa tersebut memuaskan. Akhirnya, kita bahkan dapat menambahkan set lebih (satu untuk setiap variabel) untuk membuat penutup urutan .A i ∪ Z i , l B i ∪ Z i , l x i n k m k Uk Ai∪Zi,l Bi∪Zi,l xi nk m k U
Sekarang anggaplah bahwa set diletakkan dalam urutan tambahan. Perhatikan bahwa paling banyak set yang sesuai dengan dapat dipilih untuk setiap . Jadi, jika tidak ada set klausa dalam urutan inkremental, paling banyak dapat dipilih, yang terlalu sedikit. Perhatikan bahwa segera setelah set klausa dipilih, kita dapat memilih paling banyak dua set yang sesuai dengan masing-masing , total paling banyak set . Oleh karena itu, kita harus memilih setidaknya set variabel sebelum set klausa diambil. Tetapi karena kita dapat memilih paling banyak untuk setiap , ini berarti bahwa untuk masing-masing kita telah memilih setidaknyak + 1 x i x i n ( k + 1 ) x i 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+m k+1 xi xi n(k+1) xi 2n n(k−1) k+1 xi 1 , seperti . Ini menentukan "nilai" dari variabel, sehingga kita hanya dapat memilih klausa "benar".k=2n+1
Pembaruan: Mengubah nilai dari menjadi seperti yang ditunjukkan oleh Marzio.n 2 n + 1k n 2n+1
sumber
Ini adalah masalah pengepakan di bawah batasan bahwa untuk solusi , untuk setiap subset , kami memiliki bahwa selalu ada elemen dalam , yang tercakup tepat sekali.B ⊆ A ⋃ X ∈ B XA B⊆A ⋃X∈BX
Bukti: Diberikan solusi untuk masalah Anda, segera memiliki properti ini. Memang, jika adalah solusi optimal untuk masalah Anda, maka pertimbangkan subset dari set ini, dan anggap adalah set terakhir dalam urutan ini yang muncul dalam . Dengan properti yang diperlukan bahwa solusinya adalah inkremental, maka mencakup elemen yang tidak ada set sebelumnya meliputi, yang menyiratkan properti di atas.B E i B E iE1,…,Em B Ei B Ei
Adapun arah lainnya, juga mudah. Mulai dari solusi , temukan elemen yang tercakup tepat sekali, atur sebagai set terakhir dalam urutan, hapus set ini, dan ulangi. QED.A
Ini adalah masalah yang cukup alami ....
Pengingat cepat: Dalam masalah pengemasan set, diberikan sekumpulan set, temukan subset set maksimal, yang memenuhi beberapa kendala tambahan (misalnya, tidak ada elemen yang tercakup lebih dari 10 kali, dll).
sumber