Đúng. Nếu là một hằng số (hoặc 1 / polylog ( n ) ), và bạn đang hứa rằng ít nhất ε 2 n của tất cả các nhiệm vụ có thể được đáp ứng 3CNFs đầu vào, sau đó bạn có thể tìm thấy như một bài tập trong xác định polynomial- thời gian.0<ϵ<11/polylog(n)ϵ2n
Các thuật toán không khó:
Khẳng định: Dưới sự hứa hẹn tuyên bố, thì phải có một kích thước không đổi set của các biến mà lượt truy cập tất cả các điều khoản trong 3CNF, theo nghĩa là mỗi 3 khoản phải chứa một biến từ S .SS
Bằng chứng xác nhận (phác thảo): Mặt khác, phải tồn tại một họ 3 mệnh đề đủ lớn từ 3CNF, trong đó mỗi biến chỉ xảy ra một lần. Nhưng gia đình này, khi đủ lớn, đã có ít hơn phần của các bài tập thỏa mãn. QEDϵ
Vì vậy, bạn có thể chạy trên tất cả các khả năng (hằng số) của bài tập để . Theo mọi sự gán cố định cho S , 3CNF trở thành 2CNF, với giả định rằng S đạt 3CNF ban đầu. Bây giờ, bạn có thể sử dụng thuật toán xác định đa thời gian đã biết để tìm một phép gán thỏa mãn cho các công thức 2CNF. Nhìn chung, bạn có được một thời gian đa thức giới hạn trên.SSS
Thuật toán cho 2SAT là tôi nghĩ đã có trong bài báo S. Cook nổi tiếng năm 1971.
Thuật toán cho 3CNF là từ: L. Trevisan
Lưu ý về việc tính gần đúng xác định cho k-DNF
trong Proc. của APPROX-RANDOM, Springer-Verlag, trang 417-426, 2004
Bài báo gốc cho thấy kết quả của 3CNF là: E. Hirsch, Thuật toán xác định nhanh cho các công thức có nhiều bài tập thỏa mãn , Tạp chí IGPL, 6 (1): 59-71, 1998