17.10. Reductions


Reductions

We need to establish relationships among problems, with respect to how difficult the problems are to solve.

A tool for doing that is reduction. There are several kinds of reductions.

If the right kind of reduction is chosen, then the existence of a reduction from problem A to problem B allows you to conclude that, if B is in class C, then A is also in class C.


Mapping reductions

Mapping reductions are only used to reduce one decision problem to another.

A mapping reduction from A to B is a computable function f so that, for every x,

xA ⇔ f(x) ∈ B

We write A ≤m B if there exists a mapping reduction from A to B.

A polynomial-time mapping reduction is a mapping reduction that is computable in polynomial time.

We write A ≤p B if there exists a polynomial-time mapping reduction from A to B.


Properties of mapping reductions

If Am B then:

Say that reducibility relation ≤ is conservative for class C if, whenever AB is true,

BCAC.

Equivalently, by the law of the contrapositive,

ADBD.

The above results can be summarized as

Relation ≤m is conservative for the computable languages and for the partially computable languages.

If Ap B then:

That is, relation ≤p is conservative for P, NP, CoNP, PSPACE and EXPTIME. (It is, of course, also conservative for the computable and partially computable problems.)


Turing reductions

Turing reductions can be used between any kind of problems.

A Turing reduction from A to B is a program that solves A on a B-machine.

We write At B if there exists a Turing reduction from A to B.

A polynomial-time Turing reduction is a Turing reduction that runs in polynomial time.

We write Apt B if there exists a Turing reduction from A to B.


Properties of Turing reductions

Turing reductions work for deterministic classes but not for nondeterinistic or partial classes.

If At B then:

If Apt B then:

Notice that Turing reductions are not conservative for nondeterministic or partial computability classes.


Finding reductions

Some reductions are difficult to find. But some are easy. I will only ask you to do easy reductions.

An easy reduction is usually between two closely related problems.

To describe a mapping reduction, remember that a mapping reduction is a function. Say exactly what the function is. Do not leave me wondering what the function is.

After defining the function, explain why it works. Avoid mixing an explanation of why the function works with your definition of the function.

You should be prepared to carry out a simple reductions.