World's most popular travel blog for travel bloggers.

[Solved]: 3-SAT for variables appearing 3 times

, , No Comments
Problem Detail: 

I've been trying to investigate 3-SAT for variables appearing 3 times and so far I'm getting some mixed answers as to its complexity.

For example, https://people.maths.ox.ac.uk/scott/Papers/restricted3sat.pdf says

instances of 3-SAT in which every variable occurs three times are always satisfiable (this is an immediate corollary of Hall's Theorem), while it is NP-hard to decide the satisfiability of 3-SAT instances in which every variable occurs four times

so apparently when variables appear 3 times it's an easy problem (?).

But the following two references seem to say something else:

From here, http://www.csie.ntu.edu.tw/~lyuu/complexity/2008a/20080403.pdf,

3sat is NP-complete for expressions in which each variable is restricted to appear at most three times, and each literal at most twice.

and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.319.8796&rep=rep1&type=pdf Lemma 5:

The SAT-3 problem is NP-complete even when each variable appears 3 times.

So is this problem NP-complete for when variables appear 3 times or 4 times? I'm pretty confused.

Asked By : user2520385

Answered By : Tom van der Zanden

There is no conflict between your references. The problem is that they have slightly different definitions of what 3-SAT is. You need to read the (original) theorems by Tovey very carefully.

Let r,s-SAT denote the class of instances with exactly r variables per clause and at most s occurrences per variable.

[...]

Theorem 2.1. Boolean satisfiability is NP-complete when restricted to instances with 2 or 3 variables per clause and at most 3 occurrences per variable.

[...]

Theorem 2.4. Every instance of r,r-SAT is satisfiable.

The reason there's no conflict is that you need to allow 2 or 3 literals per clause to make 3-SAT $NP$-complete when restricted to at most 3 occurrences per variable. The trivially satisfiable bit only kicks in when you have exactly 3 literals per clause and at most 3 occurrences per variable.

Best Answer from StackOverflow

Question Source : http://cs.stackexchange.com/questions/48442

0 comments:

Post a Comment

Let us know your responses and feedback