Professional Documents
Culture Documents
We need to show that the monotone SAT problem is NP-complete. This means we need
to show that it is both NP and NP-hard.
It becomes obvious that we can easily have a polynomial time (p-time) certifier for this
problem instance. Here, the certifier checks whether setting the given ‘k’ variables to true makes
the problem instance satisfiable, and checking k variables to see if they satisfy the constraints of
the monotone SAT problem takes polynomial time (i.e. given the k variables and their values,
simply evaluate the whole boolean statement, which takes p-time). Therefore the monotone SAT
problem is NP.
We will reduce the Vertex Cover problem (VCP), which is a known NP-complete
problem, to an instance of the monotone SAT problem (MSP) to show that the MSP is also
NP-complete.
If we have a graph G = (v, E) and a value k, we need to decide if there is a vertex cover
of G which has a size of at most k. We can create an equivalent instance of the MSP with the
fewest number of true variables in the following manner:
For every vertex in G, represent the vertex with a variable xi, and for each edge e = (u,v),
we represent the edge with a boolean clause cj = (x1 V x2). Now that we’ve constructed our
graph G, we need to see if all the clauses cj can be satisfied by setting at most k variables to true.
This leads us to the two parts of the bidirectional proof: if our inputs for the VCP produces a
solution, then the inputs for the MSP must also produce a solution; likewise, if our inputs for the
MSP produces a solution, then the inputs for the VCP must also produce a solution.
First part:
If there is a vertex cover of size at most k for the graph G, then we set all the variables
corresponding to the vertices in the vertex cover to true, and all other variables to false. By the
properties of a vertex cover, each edge is covered by a vertex in the vertex cover, which implies
that each clause contains at least one variable set to true. Since all the clauses are OR clauses, all
clauses corresponding to the edges covered by the vertex cover will be satisfied and will result in
the final statement evaluating to true.
Second Part: Assume that there is a way to satisfy all the clauses by setting a subset of the
variables, with size of at most k variables, to true. If we now consider the corresponding vertices
in the graph G, each edge must have at least one end/one vertex to be set to true. We know this
because of the fact that the clause that corresponds to such an edge must contain a variable in our
aforementioned subset. Thus, the nodes corresponding to the variables in S forms a vertex cover
of size at most k.
We’ve shown both parts of the proof for NP-hardness. Since our problem is both NP and
NP-hard, it is NP-complete.