Không. Nếu ví dụ 3-SAT có mệnh đề, thì bạn có thể kiểm tra mức độ thỏa mãn trong thời gian O ( m 2 N ) . Vì N là hằng số cố định, đây là thuật toán đa thức thời gian giải quyết tất cả các trường hợp của vấn đề của bạn.mO(m2N)N
Thuật toán hoạt động trong giai đoạn. Hãy φ i biểu thị công thức bao gồm các điều khoản mà chỉ sử dụng các biến từ x 1 , ... , x i . Đặt S i ⊆ { 0 , 1 } n biểu thị tập hợp các phép gán cho x i - N , x i - N + 1 , Lỗi , x i có thể được mở rộng thành một phép gán thỏa mãn cho φ i . Lưu ý rằng đã cho Smφix1,…,xiSi⊆{0,1}nxi−N,xi−N+1,…,xiφi , chúng ta có thể tính toán S i trongO( 2 N )thời gian: cho mỗicó chứa biến x i ; nếu vậy, chúng tôi thêm( x i - N ,HoàiSi−1SiO(2N) , chúng tôi thử cả hai khả năng cho x i và kiểm tra xem nó có thỏa mãn tất cả các mệnh đề từ φ i(xi−N−1,…,xi−1)∈Si−1xiφixi đến S i . Tronggiai đoạn thứ i , chúng tôi tính toán S i . Một khi chúng tôi đã kết thúc tất cả m giai đoạn, trường hợp 3-SAT là satisfiable khi và chỉ khi S m ≠ ∅ . Mỗi giai đoạn mấtthời gianvà có m giai đoạn, vì vậy tổng thời gian chạy là O ( m 2 N ) . Đây là đa thức về kích thước của đầu vào, và do đó tạo thành một thuật toán thời gian đa thức.(xi−N,…,xi)SiiSimSm≠∅O(2N)mO(m2N)
Ngay cả khi bạn cho phép một số mệnh đề cố định vi phạm ràng buộc, vấn đề vẫn có thể được giải quyết trong thời gian đa thức. Cụ thể, nếu đếm số mệnh đề vi phạm ràng buộc, bạn có thể giải quyết vấn đề trong O ( m 2 (t, bằng cách đầu tiên liệt kê tất cả các giá trị có thể cho các biến trong các mệnh đề đó, sau đó tiếp tục với thuật toán trên. Khitlà hằng số cố định, đây là thời gian đa thức. Có thể có các thuật toán hiệu quả hơn.O(m2(t+1)N)t