Undecidable Languages in Automata Theory



In this chapter, we will explain the concept of "undecidable languages" in the context of "Turing machines" and "computability". In the previous chapters, we have covered the Church-Turing Thesis and Recursively Enumerable languages. Here, we will recap the basics of "decidability" and recursively enumerable languages, as these concepts are important for understanding the overall concept of "undecidability".

Undecidable Languages

Decidable Languages

A language L is said to be decidable if there exists a Turing machine that can always decide whether any given string belongs to L or not. In simpler terms, if we pass a string to this Turing machine, it will always halt, giving a clear answer: either it will accept the string (if the string is in the language) or reject it (if the string is not in the language).

Recursive Languages

Decidable languages are closely related to recursive languages. A language is recursive if there exists a Turing machine that will accept all the strings in L and reject all the strings that are not in L.

The key point here is that the Turing machine will always halt, no matter what input is given. This is the characteristic feature of recursive languages, making them a subset of decidable languages.

Recursively Enumerable Languages

Next, let us get the idea in brief on recursively enumerable languages. A language L is said to be recursively enumerable if there exists a Turing machine that will accept and halt for all input strings that are in L.

However, for strings that are not in L, the Turing machine may or may not halt. This means that while the machine will always halt and accept for strings in the language, it may go into an infinite loop for strings not in the language.

Partially Decidable Languages

Recursively enumerable languages are also known as partially decidable languages. This is because the Turing machine will sometimes halt (when the string is in the language) and sometimes it will not halt (when the string is not in the language).

The key difference between recursive languages and recursively enumerable languages is that in recursive languages, the Turing machine always halts, while in recursively enumerable languages, halting is not guaranteed for strings outside the language.

Undecidable Languages

The language is said to be undecidable when it is not decidable. In other words, there is no Turing machine that can decide every string in the language, meaning the Turing machine cannot always halt with a decision.

Characteristics of Undecidable Languages

An undecidable language might be partially decidable, meaning there could be a Turing machine that accepts some strings in the language and halts, but this machine will not halt for some strings outside the language.

However, there are also languages that are not even partially decidable. For these languages, there is no Turing machine that can reliably decide whether a string belongs to the language or not. Such languages have no corresponding Turing machine that can recognize them.

Example of an Undecidable Problem: The Halting Problem

The Halting Problem checks whether a given Turing machine will halt when given a particular input or not. There is no general algorithm (and therefore no Turing machine) that can solve the halting problem for all possible Turing machines and inputs.

The halting problem can be formalized as a language LH, where −

$$\mathrm{L_H \:=\: \{ \langle M,\: w \rangle\: \mid\: M\: \text{ is a Turing machine and }\: M \:\text{ halts on input }\: w \}}$$

Here, $\mathrm{\langle M,\: w \rangle}$ represents the encoding of a Turing machine M and an input string w. The halting problem asks if there is a Turing machine that can decide whether M halts on w. Turing proved that such a Turing machine cannot exist, meaning that LH is undecidable.

Summarizing the Concepts

The following table summarizes the key concepts that we have covered so far in this chapter −

Type of Language Description Turing Machine Behavior
Recursive Languages Languages for which a Turing machine will always halt, either accepting or rejecting each input. Turing machine always halts, either accepts or rejects.
Recursively Enumerable Languages (Partially Decidable) Languages for which a Turing machine will halt if the string is in the language, but may not halt if it is not. Turing machine halts when it accepts; may loop infinitely if it does not.
Undecidable Languages Languages for which no Turing machine exists that can decide all strings in the language. No Turing machine can decide the language; may not halt for some inputs.

What Does Undecidability Signify?

Recursive languages are those where the Turing machine always halts, providing a clear decision. Recursively enumerable languages are less predictable, with the Turing machine sometimes halting and sometimes not, depending on the input.

Undecidable languages take this unpredictability further. They represent problems that cannot be solved by any algorithm or Turing machine, such as the halting problem.

The lack of a Turing machine to solve these languages states the limitations of computation. It is showing that there are questions computers cannot answer.

Conclusion

In this chapter, we presented the concept of Undecidable Languages and their relation with Turing Machine. We have seen the recursively enumerable and recursive languages in short to understand the concept of "undecidability" better.

Advertisements