Sự hài lòng có thể đạt được theo cách sau (giảm từ 2SAT xuống HornSAT). Vì vậy, cũng có thể được giảm đến một công thức Horn theo cách này. Cảm ơn Joshua Gorchow đã chỉ ra sự giảm này.( p ∨ q)
Input: A 2-SAT công thức , với khoản C 1 , ..., C k vào biến x 1 , ..., x n .φC1Ckx1xn
Xây dựng công thức Horn như sau:Q
Sẽ có 4 ( n chọn 2 ) + 2 n + 1 biến mới, một biến cho mọi
mệnh đề 2-cnf có thể có trên các biến x có nhiều nhất là 2 chữ ( Không chỉ các mệnh đề C i trong ϕ ) - đây là bao gồm các điều khoản đơn vị và mệnh đề rỗng .. các biến mới tương ứng với một điều khoản D sẽ được biểu thị bởi z D .×n2+ 2 n + 1xCtôiφDzD
4 ( n chọn 2 ) xuất phát từ thực tế là mỗi cặp ( x i , x j )
tạo ra bốn mệnh đề 2-cnf. Các 2 n xuất phát từ thực tế là mỗi x i có thể tạo ra 2 điều khoản đơn vị. Và cuối cùng, "một" xuất phát từ mệnh đề trống .. Vậy tổng số mệnh đề 2-cnf có thể là =
4 × ( n chọn 2 ) + 2 n + 1 .×n2( xtôi, x j)2 nxtôi= =×n2+2n+1
Nếu một điều khoản 2-CNF sau từ hai mệnh đề 2-CNF khác D và E bởi một bước giải quyết duy nhất, sau đó chúng ta thêm mệnh đề Horn
( z D ∧ z E → z F )
để Q ... Một lần nữa, chúng ta làm điều này cho tất cả các thể khoản 2-CNF - tất cả 4 × ( n
chọn 2 ) + 2 n + 1 trong số họ - không chỉ các C i .FDE(zD∧zE→zF)Q×n2+2n+1Ci
Sau đó chúng ta thêm các điều khoản đơn vị đến Q , đối với mỗi khoản C i
xuất hiện trong đầu vào φ ... Cuối cùng, chúng tôi thêm mệnh đề đơn vị ( ¬ z e m p t y ) để Q .zCiQCiϕ(¬zempty)Q
Công thức Horn hiện đã hoàn tất. Nhận thấy rằng các biến được sử dụng trong Q là hoàn toàn khác với những gì được sử dụng trong φ .QQϕ