Complexity Chapter 2 New
Complexity Chapter 2 New
Decidability
Decidable Languages
Decidable problems concerning Regular Languages
Problems:
-testing whether a finite automation accepts a
string or not,
-testing whether the language of finite automation
is empty or not,
-testing whether two finite automata are equivalent
or not.
Definition: A language L is called Turing-decidable
(or just decidable), if there exists a Turing Machine M such
that on input x, M accepts if x ∈ L, and M rejects otherwise.
L is called undecidable if it is not decidable.
A language L is decidable if an acceptor Turing machine T
exists such that, for all x ∈ Σ∗ , T(x) halts and it accepts x if
and only if x ∈ L (that is, if x not ∈ L then T(x) halts in the
rejecting state). We shall also state that such a T decides L.
Undecidable Problems
Notation
ATM={<M,w> : M is a tape and M accepts w}.
ATM is undecidable.
Corollary Some languages are not Turing –
recognizable.
A language L1 is acceptable if a Turing machine T exists which
accepts L1, that is, a machine T such that L(T) = L1.
Reducibility between languages
First two main applications
- to classify acceptable languages according to their degree
of unsolvability
-to prove that some important languages are not decidable.
A language A is many-one reducible or m-reducible to a
second language B, in symbols A ≤m B, if a total and
computable function f exists such that, for all x ∈ Σ∗ ,
x ∈ A ↔ f(x) ∈ B.
The function f is called an m-reduction between A and B.
Lemma If L1 ≤m L2 and L1 is not decidable, then L2 is not
decidable either.
Properties of m-reducibility
For all languages A, B, C ⊆ Σ∗ ,
A ≤m A and A ≤m B ∧ B ≤m C → A ≤m C.
A second property of ≤m is that, for all pairs of languages A,
B ⊆ Σ ∗ , A ≤m B → A c ≤ m B c .
Lemma Let B be any language such that B ≠ ∅ and B ≠ Σ∗ .
Then, for any decidable language A, A ≤m B.
Time-constructible functions
A time-constructible function t is a function mapping
natural numbers onto natural numbers such that a
multitape Turing machine exists which, for any input x, halts
after exactly t(|x|) steps.
Deterministic time-complexity classes
Given a time-constructible function t, the time-complexity
class DTIME[t(n)] is defined as
DTIME[t(n)] = {L : ∃Ti [L = L(Ti) ∧ TIMEi(x) ∈ O[t(|x|)]]}.