Today we prove the Valiant-Vazirani theorem.
Theorem 1 (Valiant-Vazirani) Suppose there is a polynomial time algorithm that on input a CNF formula having exactly one satisfying assignment finds that assignment. (We make no assumption on the behaviour of the algorithm on other inputs.) Then
.
1. The Valiant-Vazirani Theorem
As discussed in the last lecture, our approach is the following: given a satisfiable formula and a number
such that
has roughly
satisfying assignments, we pick a random hash function
from a family of pairwise independent hash functions, and we construct a formula
which is equivalent to
. With constant probability,
has precisely one satisfying assignment, and so we can pass it to our hypothetical algorithm, which finds a satisfying assignment for
and hence a satisfying assignment for
.
If we are only given , we can try all possible values of
between
and
(where
is the number of variables in
), and run the above procedure for each
. When the correct value of
is chosen, we have a constant probability of finding a satisfying assignment for
.
Once we have a randomized algorithm that, given a satisfiable formula, finds a satisfying assignment with constant probability, we have an algorithm for 3SAT: run the assignment-finding algorithm, accept if it finds a satisfying assignment and reject otherwise. The existence of an
algorithm for 3SAT implies that
because
is closed under many-to-one reductions, and so
because we have
by definition.
The main calculation that we need to perform is to show that if we have a set of size roughly , and we hash its elements pairwise independently to
, then there is a constant probability that exactly one element is hashed to
.
Lemma 2 Let
be a set such that
and let
be a family of pairwise independent hash functions of the form
. Then if we pick
at random from
, there is a constant probability that there is a unique element
such that
. Precisely,
Proof: Let us fix an element . We want to compute the probability that
is the unique element of
mapped into
by
. Clearly,
and we know that
The difficult part is to estimate the other probability. First, we write
And then observe that
Notice how we used the fact that the value of is independent of the value of
when
.
Putting everything together, we have
and so
To conclude the argument, we observe that the probability that there is a unique element of mapped into
is given by the sum over
of the probability that
is the unique element mapped into
(all this events are disjoint, so the probability of their union is the sum of the probabilities). The probability of a unique element mapped into
is then at least
.
Lemma 3 There is a probabilistic polynomial time algorithm that on input a CNF formula
and an integer
outputs a formula
such that
- If
is unsatisfiable then
is unsatisfiable.
- If
has at least
and less than
satifying assignments, then there is a probability at least
then the formula
has exactly one satisfying assignment.
Proof: Say that is a formula over
variables. The algorithm picks at random vectors
and bits
and produces a formula
that is equivalent to the expression
. Indeed, there is no compact CNF expression to compute
if
has a lot of ones, but we can proceed as follows: for each
we add auxiliary variables
and then write a CNF condition equivalent to
. Then
is the AND of the clauses in
plus all the above expressions for
.
By construction, the number of satisfying assignments of is equal to the number of satisfying assignments
of
such that
. If
is unsatisfiable, then, for every possible choice of the
,
is also unsatisfiable.
If has between
and
assignments, then Lemma 2 implies that with probability at least
there is exactly one satisfying assignment for
.
We can now prove the Valiant-Vazirani theorem.
Proof: (Of Theorem 1) It is enough to show that, under the assumption of the Theorem, 3SAT has an algorithm.
On input a formula , we construct formulae
by using the algorithm of Lemma 3 with parameters
. We submit all formulae
to the algorithm in the assumption of the Theorem, and accept if the algorithm can find a satisfying assignment for at least one of the formulae. If
is unsatisfiable, then all the formulae are always unsatisfiable, and so the algorithm has a probability zero of accepting. If
is satisfiable, then for some
it has between
and
satisfying assignments, and there is a probability at least
that
has exactly one satisfying assignment and that the algorithm accepts. If we repeat the above procedure
times, and accept if at least one iteration accepts, then if
is unsatisfiable we still have probability zero of accepting, otherwise we have probability at least
of accepting, which is more than 1/2 already for
.
Thanks for the post.
Could you please explain the part where you have used auxiliary variables.
How is the CNF expression with these auxiliary variables equivalent to the earlier CNF expression, that is, (a_1.x+b_1=0) … ?