21
CS355 – The Mathematics and Theory of Computer Science Reducibility

CS355 – The Mathematics and Theory of Computer Science Reducibility

Embed Size (px)

Citation preview

CS355 – The Mathematics and Theory of Computer Science

Reducibility

Mapping reducibility

• Being able to reduce problem A to problem B by using a mapping reducibility means that a computable function exists that converts instances of problem A to problem B.

• If we have such a conversion function called a reduction, we can solve A with a solver for B.

• The reason is that any instance of A can be solved by first using the reduction to convert it to an instance of B and then applying the solver to B.

Computable function

• A function f: Σ* → Σ* is a computable function if some Turing machine M, on every input w, halts with just f(w) on its tape.

• All usual arithmetic operations on integers are computable functions.

Mapping reducibility

• Language A is mapping reducible to language B, written A ≤m B, if there is a computable function f: Σ* → Σ*, where for every w,

• w A <=> f(w) B.

• The function f is called the reduction of A to B.

Mapping reducibility

fA B

f reducing A to B

Mapping reducibility

• A mapping reduction of A to B provides a way to convert questions about membership testing in A to membership testing in B.

• To test whether w A, we use the reduction f to map w to f(w) and test whether f(w) B.

• The term mapping reduction comes from the function or mapping that provides the means of doing the reduction.

Mapping reducibility

• If one problem is mapping reducible to a second, previously solved problem, we can thereby obtain a solution to the original problem.

• Let us look at this.

Reducibility

• If A reduces to B and B is decidable, then A is decidable– To decide A, convert A to B and decide B.

• If A reduces to B and B is undecidable, then B is undecidable– If B is decidable, then by above A is

decidable, contradiction.

Turing-recognisable

• If A ≤m B and A is not Turing-recognisable then B is not Turing-recognisable.

Completeness

• …suppose we know that there is a problem A not in class X. By finding a reduction from A to B we can prove that B is not in X either.

Completeness

• IF A, B are problems, X is a class of problems, and R is a class of reductions, then

If B ≤R A for every B X, we say that A is hard for X under R reductions, or, R-hard for X.

Completeness

• If is also happens that A X, then we say that A is complete for X under R reductions or R-complete for X.

Completeness

• Rather than looking at a specific class of reductions we will just look at m-reductions which we can use to get a more concise terminology.

Completeness

• If A, B are languages and X is a class of languages,

If B ≤mp A for every B X, we say that A is X-

hard (≤mp–hard for X).

• So, if A is X-hard then it is at least as hard as every problem in X.

Completeness

• If A X and A is X-hard, then we say that:

A is X-complete(≤mp -complete for X).

Completeness

• If X, Y are two classes of problems (or their associated languages) such that X Y, then

– Any language B that is Y-complete does not belong to X.

X Y

B

Completeness

• A is X-complete• B is X-hard and Y-complete• C is X-hard, Y-hard and Z-complete

X Y

BA

C

Completeness

• The meaning of the word “complete” is not intuitive.

• It comes from Godel’s and Kleene’s recursive function theory, and is used to denote that:

A solution to any problem in the set can be applied to all others in the set.

Completeness

• Some points to note:

1. If A is X-complete it can be viewed as being typical of the “hardest” problems found in X.

2. Problems which are hard or complete on one machine-based family of language X will have the same properties on all other machine models.

Completeness

3. Almost all reductions establishing hardness or completeness of specific problems not only transform solvable instances into solvable instances, but also general solutions into general solutions.

Completeness

4. Many complete problems have the property that one can efficiently compute a solution as soon as one can prove that a solution exists.

5. Solving one PSPACE-complete problem in polynomial time implies that all PSPACE problems are in P.