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".
reference-request
lo.logic
sat
Evgenij Thorstensen
sumber
sumber
Jawaban:
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 )( a ∨ b ) { { a } , { b } , { a , b } } ( a ∨ b )
Jawaban yang salah ditimpa
sumber
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.( p ∨ q)
Input: A 2-SAT rumus , dengan klausa C 1 , ..., C k pada variabel x 1 , ..., .ϕ C1 Ck x1 xn
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× n 2 + 2 n + 1 x Csaya ϕ D zD
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× n 2 ( xsaya, x j) 2 n xi = × n 2 +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 D ∧ z E → z F ) Q × n 2 + 2 n + 1 C iF D E (zD∧zE→zF) Q × n 2 +2n+1 Ci
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 ) QzCi Q Ci ϕ (¬zempty) Q
Rumus Tanduk sekarang lengkap. Perhatikan bahwa variabel yang digunakan dalam benar-benar berbeda dari yang digunakan dalam .Q ϕQ Q ϕ
sumber
Sunting: oops tidak menyadari ini sudah dijawab
sumber