Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Recall that in a 3-CNF clause, we require that at least one literal per clause b

ID: 3858398 • Letter: R

Question

Recall that in a 3-CNF clause, we require that at least one literal per clause be True in order to satisfy the clause. The 3SAT problem asks if there is an assignment that can satisfy all clauses simultaneously.

We can make variants of the 3SAT problem by retaining the same general setup, (n variables, m clauses, 3 literals per clause), but then changing the requirement needed to satisfy a clause. Either show that this variant of 3SAT is NP-Complete, or give a polynomial time algorithm that solves it:

All Or None 3SAT is a variant of 3SAT where the literals in each clause must be ALL True or ALL False.

Explanation / Answer

• Consider a general 3sat expression in which x appears k times.

• Replace the first occurrence of x by x1, the second by x2, and so on, where x1, x2, . . . , xk are k new variables.

3sat Is NP-Complete ::

• Recall Cook’s Theorem.

• The resulting CNF has at most 3 literals for each clause. – This shows that 3sat where each clause has at most 3 literals is NP-complete.

• Finally, duplicate one literal once or twice to make it a 3sat formula.

• Note: The overall reduction remains parsimonious.

Proof ::

• Add (¬x1 x2) (¬x2 x3) · · · (¬xk x1) to the expression. – This is logically equivalent to x1 x2 · · · xk x1.

–> Note that each clause above has fewer than 3 literals.

• The resulting equivalent expression satisfies the condition for x.