Practice Discrete Math

Algorithms / Polynomial Reductions

Least You Need to Know: Polynomial Reductions, Direction, and Hardness Transfer

Reductions are directional proof tools. The whole point is to transform instances of a known problem into instances of a target problem so that solving the target would also solve the source, while preserving yes/no answers and staying polynomial-time.

The least you need to know

Key notation

A <=_p B problem `A` polynomial-time reduces to problem `B`
source the known problem you start from
target the problem whose hardness you want to prove

Tiny worked example

  • To show **Subgraph Isomorphism** is hard, you can start from **Clique**.
  • Map `(G, k)` to the pair `(K_k, G)`.
  • Then `G` has a `k`-clique exactly when the pattern graph `K_k` appears as a subgraph of `G`.
  • The reduction direction is from the known hard problem **Clique** to the target **Subgraph Isomorphism**.

Common mistakes

How to recognize this kind of problem

Start practice