4-SAT Problem: 4-SAT is a generalization of 3-SAT(k-SAT is SAT where each clause has k or fewer literals).
Problem Statement: Given a formula f in Conjunctive Normal Form(CNF) composed of clauses, each of four literals, the problem is to identify whether there is a satisfying assignment for the formula f.
Explanation: An instance of the problem is an input specified to the problem. An instance of the 4-SAT problem is a CNF formula, and the task is to check whether there is a satisfying assignment for the formula. Since an NP-Complete is a problem which is both in NP and NP-hard, the proof for the statement that a problem is NP-Complete consists of two parts:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.
(B is polynomial-time reducible to C is denoted as B ≤ PC)
If the 2nd condition is only satisfied then the problem is called NP-Hard.
But it is not possible to reduce every NP problem into another NP problem to show its NP-Completeness all the time. That is why if we want to show a problem is NP-Complete we just show that the problem is in NP and any NP-Complete problem is reducible to that then we are done, i.e., if B is NP-Complete and B ≤ C. For C in NP, then C is NP-Complete. Thus, it can be verified that the 4-SAT Problem is NP-Complete using the following two propositions:
4-SAT problem is in NP:
If any problem is in NP, then, given a ‘certificate’, which is a solution to the problem and an instance of the problem(a formula f, in this case), it can be verified(check whether the solution given is correct or not) that the certificate in polynomial time. This can be done in the following way:
Given an assignment for the variables belonging to the formula f, the assignment can be verified in linear time, if it satisfies the formula or not.
4-SAT problem is NP-Hard:
In order to prove that the 4-SAT problem is NP-Hard, deduce a reduction from a known NP-Hard problem to this problem. Deduce a reduction from which the 3-SAT problem can be reduced to the 4-SAT problem. For each clause of the 3-SAT formula f, for example, a literal a and its corresponding complement a’ should be added to the formula. Let there be a clause c, such that c = u V v’ V w
To convert it in 4-SAT, we convert c to c’, such that,
c’ = (u V v’ V w V a) AND (u V v’ V w V a’).
After simulating this conversion, two properties hold :
- If 3-SAT has a satisfiable assignment, which means, every clause evaluates to true for a specific set of literal values, then 4-SAT will also hold, because each clause-set is formed by a combination of a literal and its complement, whose value won’t make any difference.
- If 4-SAT is satisfiable for any (u V v V w V a) and (u V v V w V a’), then 3-SAT is also satisfiable because a and a’ are complement, which indicates that the formula is satisfiable due to some other literal except a too.
Therefore, following the above propositions, the 4-SAT problem is NP-Complete.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Proof that SAT is NP Complete
- Double SAT is NP Complete
- Proof that Hamiltonian Path is NP-Complete
- Proof that vertex cover is NP complete
- Proof that Hamiltonian Cycle is NP-Complete
- Proof that Independent Set in Graph theory is NP Complete
- Proof that Clique Decision problem is NP-Complete | Set 2
- Proof that Dominant Set of a Graph is NP-Complete
- Proof that Subgraph Isomorphism problem is NP-Complete
- Proof that Clique Decision problem is NP-Complete
- Proof that Collinearity Problem is NP Complete
- Proof that traveling salesman problem is NP Hard
- Algorithms | NP Complete | Question 1
- Algorithms | NP Complete | Question 2
- Algorithms | NP Complete | Question 3
- Algorithms | NP Complete | Question 4
- Algorithms | NP Complete | Question 5
- Algorithms | NP Complete | Question 6
- Minimum operations of the given type required to make a complete graph
- The complete History of Java Programming Language
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.