Facets of Reductions [cpsc/reduction-facets]

Reductions are helpful!

  • Method: find a way to map:

    • yes-instances of P1P_{1} to yes-instances of P2P_{2}
    • no-instances of P1P_{1} to no-instances of P2P_{2}
  • Notation: P1≤PP2P_{1}\underset{P}{\leq}P_{2}
  • Logic: if P2P_{2} is easy, P1P_{1} is easy
  • Contrapositive: if P1P_{1} is hard, P2P_{2} is hard
Theorem.

If A≤PBA\underset{P}{\leq}B and B∈PB \in P, then A∈PA \in P.

  • There is a polytime Turing machine N that decides BB.
  • There is a polytime reduction ff from AA to BB.
Proof.

We want a Turing machine MM that decides AA in polynomial time.

  • On input xx: compute z=f(x)z = f(x) and then simulate NN on input zz. Accept iff NN accepts.
  • If x∈A⇒f(x)∈B⇒Nacceptsx \in A\Rightarrow f(x) \in B\Rightarrow N\ \text{accepts}.
  • If x∈A_⇒f(x)∉B⇒Nrejectsx \in A^{\_}\Rightarrow f(x) \notin B\Rightarrow N\ \text{rejects}.

Question. If we know AA reduces to BB and BB is in NP\text{NP}, is AA in NP\text{NP}?

Answer. Yes, P\text{P} is a subset of NP\text{NP}. Mind the direction!

When we talked about Turing machines, we had a notion of what it meant to be hard: undecidability. But now we’re talking about NP. So which problems in NP are hard?

Maybe P=NP\text{P} = \text{NP}, and so all problems in NP are easy.