所有无限语言都是不可判定的吗?

时间:2013-02-13 15:45:06

标签: turing-machines computation-theory language-theory

我想知道所有无限语言都是不可判定的吗?

他们必须是正确的,因为TM试图决定一种无限的语言会永远循环,这使得它成为一个整合者,而不是决策者。

谢谢你们。

2 个答案:

答案 0 :(得分:4)

不,有许多可判定的无限语言。一个简单的例子是语言{n € N | a^n},即仅包含字母“a”的单词的语言。该语言可以与正则表达式a*匹配。因此它是一种常规语言,因此可以判定。

答案 1 :(得分:2)

正如sepp2k指出的那样,a*是一种常规语言,因此可以判定。

所有有限语言都是常规语言。一些无限的语言是常规的。只有无限的语言才是不可判断的。

为了不可判定,语言中必须有单独的字符串才会导致TM失败。实际上,必须存在无限多个这样的字符串(否则,表现不佳的字符串可以由特殊情况逻辑处理)。

因此,语言无限是必要的,但不足以造成不可判断性。