Reducibility

Overview

A reduction is a way of converting one problem into another in such a way that a solution to the second problem can be used to solve the first problem.

Turing Reductions

An oracle for a language B is an external device that is capable of reporting whether any string w is a member of B. An oracle Turing machine is a TM with the additional capability of querying an oracle. We write MB to describe an oracle Turing machine M with an oracle for language B.

A language A is decidable relative to another language B if A is decidable if it has an oracle for B. A is Turing reducible to B, denoted ATB, if A is decidable relative to B.

general-reducibility.png

Suppose ATB. If B is decidable, then A is decidable. If A is undecidable, then B is undecidable.

Mapping Reductions

Let A be a language over Σ and B be a language over Γ. A mapping reduction (or many-one reduction) from A to B is a computable function f:ΣΓ such that, for all inputs w,

wAf(w)B.

If such a function exists, we write AmB.

mapping-reducibility.png

Polynomial Time

Language A is polynomial time mapping reducible to language B if a polynomial time computable function f:ΣΓ exists, where for every w,

wAf(w)B.

If such a function exists, we write AmPB.

Reference Table

The following is a list of languages that are useful for constructing reductions to and from.

Language Decidable Recognizable Co-Recognizable
ADFA Yes Yes Yes
ANFA Yes Yes Yes
AREX Yes Yes Yes
EDFA Yes Yes Yes
EQDFA Yes Yes Yes
ACFG Yes Yes Yes
ECFG Yes Yes Yes
EQCFG No No Yes
ALBA Yes Yes Yes
ELBA No ? ?
ATM No Yes No
ETM No ? ?
EQTM No No No
HALTTM No Yes No

Additionally, any regular and context-free language is decidable.

Powered by Forestry.md