Idea
Idea 1
Assuming that we want to solve a new problem , meaning we want to develop an algorithm for problem . We know how to solve a similar problem , meaning we already have an algorithm for . The idea is to try solve by translating it to , i.e. we develop an algorithm for by using algorithm for .
If this strategy works, we say that problem is reduced to problem , and we write:
Therefore, problem is at least as easy to solve as problem .
Idea 2
Assuming we fail to find a suitable solution method for a new problem , i.e. we find no (efficient) algorithm or not even a semi-decision procedure for problem . We know that a related problem is hard to solve, i.e. it has already been proven that there is no (efficient) algorithm or not even a semi-decision procedure for problem .
Idea: We develop an algorithm for problem that uses a (hypothetical) algorithm for problem .
Constraints
The problem reduction from problem to problem should be easier than the algorithms for and . If would not be the case, then the reduction would reduce a part of the complexity of and a comparison between and would not be possible.
Reductions have to be efficiently solvable, e.g. in polynomial time, i.e. for instances of size and a constant .
Reductions
Turing Reduction
Definition
Link to originalTuring Reduction
For languages or problems , we say is Turing reducible to (i.e. ), iff there exists an oracle Turing machine such that for every input :
Here, may take any finite number of (possibly adaptive) membership queries to while computing.
Many-One Reduction
Definition
Many-One Reduction (Language Variant)
For languages or problems , we say many-one reduces to (i.e. ) iff there exists a computable total function such that for all :
Link to originalMany-One Reduction (Problem Variant)
Let be a function from the set of instances of problem to a set of instances of problem , i.e.:
If we solve for with a decider for problem , then the result for instance already provides the correct result for instance of problem . If so, and are called equivalent. For decision problems and , it means that is a positive instance of iff is a positive instance of
The function must be (efficiently) computable. In the case of a resource constrained on polynomial time, then is called Karp reduction.
Karp Reduction
Definition
Link to originalKarp Reduction
A many-one reduction with a reduction is called Karp reduction if is computable in polynomial time.