This page is located at http://www.cs.wpi.edu/~alvarez/CS3133/HW5.html
Recall that the input for the 3-SAT problem is a formula H in conjunctive normal form, i.e. a conjunction of m disjunctive clauses C_{1}, ...,C_{m}. Each clause C_{i} is the disjunction of exactly 3 literals L_{i,1}, L_{i,2}, L_{i,3}. Each literal is a Boolean variable x_{j} or its negation ~x_{j}. There are assumed to be n variables x_{1},..., x_{n}. Different clauses may share some or all of their variables. The output for the 3-SAT problem is a yes/no answer, where yes means that there is a truth assignment for all of the variables x_{j} that makes H true according to the usual truth tables for negation (not), conjunction (and), and disjunction (or). A no answer means that every truth assignment for the variables makes H false.
b) Carefully calculate the time complexity of your verifier as a function of the parameters m and n described in part a) above.
Show that 3-SAT can be reduced to the following vertex cover problem VC in polynomial time. This shows that VC is also NP-complete.
The input to VC is a graph G and a number k. The output should be yes if there is a set C containing k or fewer vertices of G such that every edge of G has one of its endpoints in C. The output should be no otherwise.
Hint: VC is related to the independent vertex set problem IVS discussed in class, in which a graph G and a number k are given, and it must be determined if there is a set I containing k vertices of G, no two of which are connected by an edge of G.