This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: CS 577: Introduction to Algorithms 12/05/06 Homework Solution: 5b Instructor: Shuchi Chawla TA: Siddharth Barman Question 1 Note that NotAllEqualSAT ( NAE SAT ) is in NP . Say we have n boolean variables x 1 to x n and m clauses C 1 to C m in CNF giving us boolean formula . Given an assignment of the n variables it will take us polynomial amount to verify that satisfies each and every clause in the notall equal form and hence NAE SAT can be verified in polytime. We prove that NAE SAT is NP complete by reducing Circuit SAT to it. Essentially given a circuit C we wish to determine a boolean function such that NAE SAT iff C is satisfiable. The procedure followed to get such a is a slight modification of the reduction from Circuit SAT to 3 SAT that was done in class. Also in this reduction we will ensure that every clause has exactly 3 variables (and no less). This is not important for this question but will be useful for the next question. For NOT gate , we add clauses ( x v x u y ) and ( x v x u y ). Here an extra boolean variable y is introduced which is common to all clauses. For OR gate ( x v = x u x w ) we introduce ( x v x u y ), ( x w x v y ) and ( x v x u x w ) For AND gate ( x v = x u x w ) we introduce ( x v x u y ), ( x v x w y ) and ( x v x u x w ) As mentioned above boolean variable y is common through all the clauses. Now if an assignment satisfies the given circuit C we can simply set y = 0, this would insure that NAE SAT . As each clause of is satisfiable and there is at least one literal per clause which is 0. Each clause containing y is obviously satisfied because we set y = 0. Each clause that doesnt contain y (one each in the OR and AND case) can be checked to be satisfied by a case analysis....
View Full
Document
 Spring '08
 JOSEPH
 Algorithms

Click to edit the document details