computation

Definition

Many-One Reduction

Language Variant languages or problems , we say many-one reduces to (i.e. ) iff there exists a computable total function such that for all :

The function is the reduction (mapping).

Idea

Many-One Reduction

A many-one reduction maps every instance of a problem to an instance of a problem . Solving already gives the correct answer for .

For decision problems, this means that is a positive instance of if and only if is a positive instance of .

The mapping must be efficiently computable. If it is restricted to polynomial time, then it is called a Karp reduction.

Many-one reductions are a special case of Turing reductions: the subprocedure for is called exactly once, and the computation ends immediately afterwards.

In this sense, a many-one reduction is side-effectless.

Non-Bijectivity

The reduction map does not have to be bijective. In particular, it need not be injective and it need not be surjective.

Several different instances of problem may be mapped to the same instance of problem .

This is why the reduction is called a many-one reduction: potentially, many source instances can have the same image under .

The only essential requirement is that the map is a correct many-one reduction, i.e. a correct reduction:

Difference to Turing Reduction

Turing Reduction

Many-one reductions are functional translations: one computable map with . One “single-shot” encoding.

Transfer of Decidability

If , then algorithmic properties transfer in the following direction:

In general, positive decidability properties transfer backwards from to , while negative properties transfer forwards from to .

Transfer of Complexity

If , then complexity-theoretic properties transfer as follows:

Thus, membership in P and NP transfers backwards along a reduction, while NP-hardness transfers forwards.