Reductions

We say a problem X reduces to problem Y iff you can write an algorithm to solve X with calls to Y. In this module, we are concerned with Polynomial-Time Reductions.

Polynomial-Time Reduction

We say a problem is polynomial-time reducible to iff the reduction:

  • has a polynomial number of calls to
  • has a polynomial number of additional steps

We write this as .

We treat the algorithm that solves as a black box meaning we can’t change the internals; we can’t reduce to with a tiny adjustment to how internally works. Even if you understand how would be implemented, you can’t modify the internals and we call this black box an oracle to .

Kinds of PT Reductions

  • Explain Karp Reductions vs Cook Reductions

Consequences of Polynomial-Time Reduction

(Informal) Intuition

We can informally think through the theorems by thinking about the symbol used (). This is not a rigorous way to think about them, but is a nice way to remember.

Way 1: We can informally think of as meaning Y is in a “harder or equal” complexity class or just “Y is harder (or equal)“. We can then think of being in P as being easy, and not being in P as being hard.

  • If then Y is easy, and since X is easier than Y, then X must also be easy:
  • If then X is hard, and since Y is harder than X, then Y must also be hard:

Way 2: We can informally think of as X, Y being “bounded” by each other

  • X’s complexity is upper-bounded by Y. If , then since Y is “above”
  • Y’s complexity is lower-bounded by X. If then since X is “below”