User:Guilherme Reis/sandbox

Em Teoria da complexidade, o problema 3SAT um-em-três (também conhecido como SAT 1-em-3  and 3SAT exatamente-1) é um problema NP-completo. O problema é uma variante do problema da 3-satisfabilidade (3SAT). Like 3SAT, the input instance is a collection of clauses, where each clause consists of exactly three literals, and each literal is either a variable or its negation. The one-in-three 3SAT problem is to determine whether there exists a truth assignment to the variables so that each clause has exactly one true literal (and thus exactly two false literals). (In contrast, ordinary 3SAT requires that every clause has at least one true literal.)

One-in-three 3SAT is listed as NP-complete problem LO4 in the standard reference, Computers and Intractability: A Guide to the Theory of NP-Completeness by Michael R. Garey and David S. Johnson. It was proved to be NP-complete by Thomas J. Schaefer as a special case of Schaefer's dichotomy theorem, which asserts that any problem generalizing Boolean satisfiability in a certain way is either in the class P or is NP-complete.

Schaefer gives a construction allowing an easy polynomial-time reduction from 3SAT to one-in-three 3SAT. Let "(x or y or z)" be a clause in a 3CNF formula. Add six new boolean variables a, b, c, d, e, and f, to be used to simulate this clause and no other. Let R(u,v,w) be a predicate that is true if and only if exactly one of the booleans u, v, and w is true. Then the formula "R(x,a,d) and R(y,b,d) and R(a,b,e) and R(c,d,f) and R(z,c,false)" is satisfiable by some setting of the new variables if and only if at least one of x, y, or z is true. We may thus convert any 3SAT instance with m clauses and n variables into a one-in-three 3SAT instance with 5m clauses and n + 6m variables.

Another reduction involves only four new variables and three clauses: $$R(\neg x, a, b) \land R(b, y, c) \land R(c, d, \neg z)$$.

To prove that $$R$$ must exist, one first express $$R$$ as product of maxterms, then show that
 * $$x\lor y \lor z = (\neg x\lor a\lor b)\land(\neg y\lor c\lor d)\land(\neg z\lor e\lor f)\land(a\lor c\lor e)$$

Note the left side is evaluated true if and only if the right hand side is one-in-three 3SAT satisfied. The other variables are newly added variables that doesn't exist in any expression.

The one-in-three 3SAT problem is often used in the literature as a known NP-complete problem in a reduction to show that other problems are NP-complete.

Algorithms
Since this problem is equivalent to a constraint satisfaction problem with binary constraints and at most 3 values for each variable, algorithms for CSPs can be applied. If n is the number of clauses, then it can be solved in $$O(1.3644^n)$$ time.

Variations
In monotone one-in-three 3SAT, every literal is simply a variable; in other words, there is no negation. This problem is also NP-complete, as proved by Schaefer. Indeed, this was the original problem from Schaefer's point of view, which he called ONE-IN-THREE SATISFIABILITY.

We can think of the instance to one-in-three SAT as a graph, with a vertex for each variable and each clause, and an edge connecting a variable to a clause if it occurs (positively or negatively) in that clause. In planar one-in-three 3SAT, this graph is assumed to be planar. This problem is also NP-complete.