## Monday, February 4, 2008

### How to do a hardness reduction

Just a quick reminder on how to do a hardness reduction. It may seem obvious, but these reductions are going to get even more complicated later, and there was already some confusion on the homework.

To show c' vs. s' NP-hardness for problem B, based on known c vs. s NP-hardness for problem A:

1. Design a polynomial time reduction R mapping A-instances into B-instances.
2. Show that R can be carried out in polynomial time.
3. Show that for any A-instance X, Opt(X) \$\geq\$ c implies Opt(R(X)) \$\geq\$ c'.
4. Show that for any A-instance X, Opt(X) \$\lt\$ s implies Opt(R(X)) \$\lt\$ s'.

Done.

Comments on each of the steps:

1. This is generally the second-hardest part.

2. This is generally trivial.

3. This is generally true "by design". One typically shows that given any solution x to A-instance X with \$val_X\$(x) \$\geq c\$, one can convert it to a solution y for R(X) with \$val_{R(X)}\$(y) \$\geq c'\$.

Usually this conversion is explicit and easy, but please don't bother to note whether or not it is polynomial-time -- it doesn't matter. Noting this only confuses things.

Furthermore, especially in the case that c = c' = 1, it is usually easy to prove some kind of "reverse", like, if Opt(R(X)) = 1 then Opt(X) must also be 1. But again, this is irrelevant and it's best not to write it without having a good reason.

4. This is generally the hardest part. One almost always proves it in the contrapositive: If Opt(R(X)) \$\geq s'\$, then Opt(X) must be \$\geq s\$. Generally, one does this by showing how to convert any solution y for R(X) with \$val_{R(X)}\$(y) \$\geq s'\$ into a solution x for X with \$val_{X}\$(x) \$\geq s\$.

Again, it does not matter if this conversion is polynomial-time; like in step 3, one only needs to show an existence result. (Indeed, often the conversion is randomized.)