Search code examples
complexity-theorynpsat

Is MAX 3 SAT NP-complete or co-NP-complete?


I'm seeing a lot conflicting info about this problem. With some saying sites it is NP-complete and others saying that it is co-NP-complete. The only real consistent info I can find is that is definitely NP-hard. Which is it? And why?


Solution

  • I think this depends on how you define MAX-3SAT.

    If you define MAX-3SAT as the function problem "given a 3CNF formula, produce a variable assignment maximizing the number of satisfied clauses," then it's neither NP-complete nor co-NP-complete. NP and co-NP are classes of decision problems and therefore no function problem can belong to them. Therefore, MAX-3SAT can't belong to NP or co-NP, so it can't be a complete problem for either class. This function problem is NP-hard via a reduction from vanilla 3SAT - if you could find the maximally satisfying assignment, you could check if the original formula was satisfiable by seeing if all clauses were satisfied.

    You could also define MAX-3SAT as the decision problem "given a 3CNF formula and a number n, determine whether there's a variable assignment to the formula that makes at least n clauses true." This is definitely in NP and also NP-complete via a reduction from 3SAT.

    On the other hand, if you define MAX-3SAT as the decision problem "given a 3CNF formula and a variable assignment to that formula, is that assignment the one that maximizes the number of satisfied clauses?," then it would belong to co-NP (if the answer is no, you could confirm this by exhibiting a better satisfying assignment). I'm not sure if it would be NP-hard, though, and I'm also not sure whether it's co-NP-hard either.

    Hope this helps!