Kurangi masalah berikut menjadi SAT


21

Inilah masalahnya. Diberikan , di mana setiap . Apakah ada subset dengan ukuran paling banyak sehingga untuk semua ? Saya mencoba mengurangi masalah ini menjadi SAT. Gagasan saya tentang solusi adalah memiliki variabel untuk masing-masing 1 hingga . Untuk setiap , buat klausa jika . Kemudian dan semua klausa ini bersama. Tapi ini jelas bukan solusi yang lengkap karena tidak mewakili kendala bahwak,n,T1,…,TmTi⊆{1,…,n}S⊆{1,…,n}kS∩Ti≠∅ixinTi(xi1∨⋯∨xik)Ti={i1,…,ik}Spaling banyak harus memiliki elemen. Saya tahu bahwa saya harus membuat lebih banyak variabel, tapi saya tidak yakin bagaimana caranya. Jadi saya punya dua pertanyaan:k

  1. Apakah ide saya tentang solusi berada di jalur yang benar?
  2. Bagaimana seharusnya variabel baru dibuat sehingga mereka dapat digunakan untuk mewakili kardinalitas kendala?k

5
Hanya komentar: Masalah Anda dikenal sebagai HITTING SET , yang merupakan formulasi setara dari masalah SET COVER .
— A.Schulz

Jawaban:


13

Sepertinya Anda mencoba menghitung transversal hypergraph dengan ukuran . Artinya, { T 1 , ... , T m } adalah Anda hipergraf, dan S adalah Anda transversal. Terjemahan standar adalah untuk mengekspresikan klausa seperti yang Anda miliki, dan kemudian menerjemahkan batasan panjang menjadi kendala kardinalitas.k{T1,…,Tm}S

Jadi gunakan encoding yang ada, yaitu, dan kemudian menambahkan klausul encoding Σ 1 ≤ i ≤ n x i ≤ k .⋀1≤j≤m⋁i∈Tjxi∑1≤i≤nxi≤k

adalah kendala kardinalitas. Ada berbagai terjemahan kendala kardinalitas yang berbeda ke dalam SAT.∑1≤i≤nxi≤k

Terjemahan kendala kardinalitas yang paling sederhana namun agak besar hanyalah . Dengan cara ini setiap disjungsi mewakili kendala ¬ ⋀ i ∈ X x i - untuk semua himpunan bagian X dari { 1 , … , n }⋀X⊆{1,…,n},|X|=k+1⋁i∈X¬xi¬⋀i∈XxiX{1,…,n}ukuran k + 1. Yaitu, kami memastikan bahwa tidak ada cara lebih dari variabel k dapat diatur. Perhatikan bahwa ini bukan ukuran polinomial dalam k

Beberapa tautan ke makalah tentang terjemahan kendala kardinalitas yang lebih hemat ruang yang berukuran polinomial dalam k :

Jika Anda benar-benar tertarik untuk memecahkan masalah seperti itu, mungkin lebih baik memformulasikannya sebagai masalah pseudo-boolean (lihat artikel wiki tentang masalah pseudo-boolean ) dan menggunakan pemecah pseudo-boolean (lihat kompetisi pseudo-boolean ). Dengan cara itu kendala kardinalitas hanyalah kendala pseudo-boolean dan merupakan bagian dari bahasa - semoga pemecah pseudo-boolean kemudian menanganinya secara langsung dan karenanya lebih efisien.


1
Tolong jelaskan semua tautan segera (setidaknya penulis dan judul) sehingga orang dapat menemukan dokumen yang harus diputus tautannya. Mungkin terbaik untuk menggunakan DOI jika tersedia.
— Raphael

1
@Raphael Poin bagus! Maaf saya harus melakukan itu sejak awal. Sekarang saya telah memperbarui semua tautan; Saya tidak yakin apakah Springer menyediakan DOI tetapi harus ada cukup informasi sekarang untuk menemukan mereka jika tautan rusak. Catatan: Saya tidak menautkan ke PDF resmi dari Springer untuk menghindari masalah akses.
— MGwynne

Tetapi sepertinya pengurangan yang Anda berikan tidak dalam waktu polinomial, bukan?
— Aden Dong

@ AdenDong Anda tidak mengatakan apa-apa tentang polinomial;). Terjemahan kendala kardinalitas sederhana yang saya sebutkan bukan polinomial dalam (tetapi untuk k tetap ). Terjemahan kendala kardinalitas yang diberikan dalam makalah I daftar adalah polinomial dalam k - menggunakan variabel baru. Saya telah memperbarui jawaban saya untuk membuatnya lebih jelas. kkk
— MGwynne

MGwynne, saya cenderung selalu menautkan DOI resmi bahkan jika paywalled untuk menjadi bukti masa depan, dan versi gratis juga. Tetapi seperti sekarang, siapa pun harus dapat menemukan surat-surat itu, jadi semuanya baik-baik saja.
— Raphael

6

k

Γ2,1+Γ2,1+

Saya berasumsi Anda sedang mencari pengurangan eksplisit, tetapi jika tidak, Anda selalu bisa kembali ke Teorema Cook-Levin .

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.