![]() |
VOOZH | about |
NP-Completeness, NP Class, SAT
The MAX-SAT problem which is built on top of SAT(Boolean Satisfiability Problem) problem takes a boolean formula in conjunctive normal form with m clauses, n literals and input variable g where g β€ m. If such an assignment exists, the result is an assignment of the literals such that at-least g clauses evaluate to TRUE, otherwise NO. Demonstrate that MAX-SAT is NP-Complete.
SAT , sometimes called as B-SAT(Boolean Satisfiability Problem)which is the problem of determining if there exists an interpretation that satisfies a given Boolean formula.It asks whether the variables of a given Boolean formula can be consistently replaced by the values TRUE or FALSE in such a way that the formula evaluates to TRUE
MAT-SAT is the maximum satisfiability problem, is an FNP generalisation of SAT. It asks for the maximum number of clauses which can be satisfied by any assignment and for the given problem minimum clauses satisfied should be g.
Given MAX-SAT problem can be described as follows:
Input β Conjunctive normal forms of m clauses and n literals in Boolean formula and g as an input variable where g β€ m.
Output β If at-least g clauses are evaluated to TRUE, then assignment of literals is returned, otherwise NO.
To prove a problem NP Complete , there are two steps involved:
- Prove given problem belong to NP Class
- All other problems in the NP class can be polynomial time reducible to that problem. (This is the prove of being NP-Hard)
Now it is not possible to reduce every NP problem to another NP problem to prove it's NP completeness all the time. That's why we show that any known NP complete problem is reducible to that problem in polynomial time.
To solve MAX-SAT as an NP-complete problem, we need to prove above two steps.
1. MAX-SAT belongs to NP Class: A problem is classified to be in NP Class if the solution for the problem can be verified in polynomial time.
2. MAX-SAT is an NP-Hard Problem:
Now we need to show that MAX-SAT is as hard as a known NP-Complete Problem. By using a reduction strategy we can show that MAX-SAT is as least as difficult as a known NP-Complete Problem (the known problem here will be the SAT problem). See here for the "Proof of SAT Is an NP-Complete".
We are going to show the reduction from SAT -> MAX-SAT
Input Conversion: We need to convert the input from SAT to input to MAX-SAT.
The transformation is going to be O(1)as we need to map the value of g=m so input conversion is polynomial in time.
Output Conversion: We need to convert the output from MAX-SAT to output to SAT
So, assigning values to n literals takes O(n) time. So output conversion is polynomial in time.
Correctness: Now we need to prove the correctness of the claim which says
f is satisfied β f' is satisfied
So, this means if claim f is satisfied β f' is satisfied is correct.
Hence, SAT -> MAX-SAT reduction can be done and takes polynomial time.
So MAX-SAT is seen to be a generalisation of SAT and itβs also NP-Complete.