Beruflich Dokumente
Kultur Dokumente
These three problems are easily solved: for the first, merely run the string x
through the DFA and check whether the machine is in an accept state at the end of
the run. For the second, first translate the NFA to an equivalent DFA by the subset
construction and then run the DFA on the string. For the third, one must translate
the regular expression to an NFA and then translate the NFA to a DFA before
running the DFA on x.
Decidability
More formally:
Thus a decider always says „yes‟ given a string in the specified language, and
always says „no‟ given a string outside the specified language. Obviously, it is
better to have a decider than a recognizer, since it is required to always give a
verdict. The reason that the recognizer/decider distinction is important is that
blind simulation is in many cases an easy-to-use technique in building
recognizers.
All decidable languages are Turing-recognizable but the converse is not true.
(encodings of all DFAs together with the strings that they accept)
Are there any languages that are not decidable, even though
a Turing Machine can recognize them?
The answer to the question above is obviously yes, and one example of such
languages is the one described by the Halting Problem.
By convention we use
And would give as its output the answer to the question of whether U executing
M would ever halt on input w.
Lastly, let‟s see that there are languages that are not Turing-recognizable:
The set of all Turing Machines is countable since we can count the
descriptions <M>.
The set of all languages is uncountable
We cannot put into a correspondence the set of languages with the set of TMs
since there are more languages than TMs and therefore we conclude that there
are languages that cannot be recognized by any Turing Machine.
EXAMPLEs:
¬H= {<M,w>| Turing Machine M does not halt on input string w}
or
{<M>| L(M)=∑*}
(in either case, to prove it we would have to run the machine forever)
Theorem: A language is decidable if and only if both it and its complement are
Turing-recognizable.
Reductions
A reduction is a way of converting one problem into another such that a solution
to the second problem would lead to a solution to the first.
Example: