Menerjemahkan SAT ke HornSAT

26

Apakah mungkin untuk menerjemahkan rumus Boolean menjadi gabungan yang setara dengan klausa Horn? Artikel Wikipedia tentang HornSAT tampaknya menyiratkan hal itu, tetapi saya belum dapat melacak referensi apa pun.

Perhatikan bahwa saya tidak bermaksud "dalam waktu polinomial", melainkan "sama sekali".

Evgenij Thorstensen
sumber
1
Apa yang Anda maksud dengan "menerjemahkan"? Sudah jelas ada contoh SAT yang tidak dapat ditulis sebagai rumus HornSAT. Misalnya, klausa (p atau q). Tapi mungkin Anda bermaksud bahwa Anda ingin pengurangan sedemikian rupa sehingga rumus input SAT memuaskan jika jika formula HornSAT keluaran memuaskan? Kalau begitu tentu saja, ada pengurangan sepele karena Anda tidak peduli untuk efisiensi ...
arnab
Maksud saya tidak memuaskan, karena itu memang sepele tanpa pembatasan efisiensi. Maksud saya setara seperti dalam "memiliki tugas yang memuaskan yang sama" ketika kita mempertimbangkan variabel umum untuk instance SAT dan instance HornSAT yang sesuai (jika kita harus menambahkan beberapa variabel tambahan, kita memproyeksikannya). Saya setuju bahwa itu seharusnya tidak mungkin, tepatnya untuk contoh (P v Q), tapi saya tidak tahu bagaimana membuktikannya. Apakah Anda memiliki sketsa bukti dalam pikiran?
Evgenij Thorstensen
3
Pertanyaannya masih ambigu. Bisakah Anda menjelaskan apa yang Anda maksud dengan "memproyeksikannya"? Apakah maksud Anda "penugasan A memenuhi instance SAT F jika jika ada penugasan B ke variabel tambahan sedemikian sehingga (A, B) memenuhi instance HornSAT F '"? Jika demikian, maka saya pikir Anda dapat melakukannya dengan hanya menggunakan P-kelengkapan HornSAT.
Ryan Williams

Jawaban:

24

Tidak. Konjungsi dari klausa Horn mengakui paling sedikit model Herbrand, yang disanggah dari literal positif tidak. Lih Lloyd, 1987, Yayasan Pemrograman Logika .

Model Least Herbrand memiliki properti bahwa mereka berada di persimpangan semua yang memuaskan. Model Herbrand untuk adalah , yang tidak mengandung persimpangannya, sehingga seperti yang dikatakan arnab, adalah contoh formula yang tidak dapat diekspresikan sebagai gabungan klausa Horn.{ { a } , { b } , { a , b } } ( a b )(ab){{a},{b},{a,b}}(ab)

Jawaban yang salah ditimpa

Charles Stewart
sumber
Pintar, tetapi klausa -a_1 & ... & -a_n -> # bukan klausa Horn.
Evgenij Thorstensen
@ Evgenij: Benar.
Radu GRIGore
4
Klausa tanduk adalah disjungsi literal dengan paling banyak satu literal positif. Menerjemahkan di atas ke disjungsi literal, kita mendapatkan a_1 v ... v a_n, dengan semua literal positif. Klausa di atas adalah dual-Horn, tetapi itu tidak membantu minat saya.
Evgenij Thorstensen
@ rgrig: Tidak, saya bingung. @ Evgenij: Jawaban sudah diperbaiki.
Charles Stewart
5

Kepuasan yang sama dapat dicapai dengan cara berikut (pengurangan dari 2SAT menjadi HornSAT). Jadi juga dapat direduksi menjadi formula Horn dengan cara ini. Terima kasih kepada Joshua Gorchow karena menunjukkan pengurangan ini.(pq)

Input: A 2-SAT rumus , dengan klausa C 1 , ..., C k pada variabel x 1 , ..., .ϕC1Ckx1xn

Buat formula Horn sebagai berikut:Q

Akan ada 4 ( pilih ) variabel baru, satu untuk setiap kemungkinan yang mungkin klausul 2-CNF pada variabel dengan paling banyak 2 literal ( Tidak hanya itu klausul dalam ) - ini adalah termasuk klausa unit dan klausa kosong .. Variabel baru yang sesuai dengan klausa akan dilambangkan dengan .n 2 + 2 n + 1 x C i ϕ D z D×n2+2n+1xCiϕDzD

4 ( pilih ) berasal dari fakta bahwa setiap pasangan memunculkan empat klausa 2-cnf. The berasal dari fakta bahwa setiap dapat membuat 2 Unit klausa. Dan akhirnya "satu" berasal dari klausa kosong .. Jadi jumlah total klausa 2-cnf yang mungkin adalah 4 ( pilih ) .n 2 ( x i , x j ) 2 n x i = × n 2 + 2 n + 1×n2(xi, xj)2nxi=×n2+2n+1

Jika klausa 2-cnf mengikuti dari dua klausa 2-cnf lainnya dan dengan langkah resolusi tunggal, maka kami menambahkan klausa Horn ke ... Sekali lagi, kami melakukan ini untuk memungkinkan klausa 2-CNF - semua 4 ( pilih ) dari mereka - bukan hanya yang .D E ( z Dz Ez F ) Q × n 2 + 2 n + 1 C iFDE(zDzEzF)Q×n2+2n+1Ci

Kemudian kita tambahkan unit klausul ke , untuk setiap klausul muncul di input ... Akhirnya, kita menambahkan unit klausul ke . Q C i ϕ ( ¬ z e m p t y ) QzCiQCiϕ(¬zempty)Q

Rumus Tanduk sekarang lengkap. Perhatikan bahwa variabel yang digunakan dalam benar-benar berbeda dari yang digunakan dalam .Q ϕQQϕ

Martin Seymour
sumber
ϕ1ϕ2ϕ1ϕ2
2

ϕ=(X1X2¬X3¬X4)ϕ

Sunting: oops tidak menyadari ini sudah dijawab


sumber