CMPSCI 311: Theory of Algorithms

David Mix Barrington

Fall, 2003

Discussion Solutions #11

from Wednesday 3 December 2003

Polynomial-Time Reductions

Questions are in black, answers are in blue.

The most important definition in the theory of NP-completeness is the polynomial-time reduction. Let A and B be two sets of inputs, which we can think of as two problems with boolean answers. A reduction from A to B is a function f such that (1) f is easily computable (computable in polynomial time), and (2) for any input x, x is in A if and only if f(x) is in B.

A reduction from A to B gives us an easy way to answer ``is x in A'' if we know an easy way to answer questions about B -- we compute f(x) and decide whether f(x) is in B.

In this exercise we will construct some reductions. In each case B will be the REACHABILITY problem, the set {(G,s,t): G is a directed graph and there is a path form vertex s to vertex t in G}.

Last modified 3 December 2003