【问题标题】:what does regular, Turing-decidable and Turing-recognisable mean?常规、图灵可判定和图灵可识别是什么意思?
【发布时间】:2017-07-24 14:06:31
【问题描述】:

我知道之前有人问过这个问题,但老实说我没有清楚地理解它。

我目前正在研究计算理论,我正在研究“证明一种语言是可判定的、可识别的或有规律的”这样的术语。

用最简单的术语来说,它们的实际含义是什么,我们如何证明这些东西?

【问题讨论】:

  • 我可以补充一点,这是理论计算机科学的一个非常基本的主题,在 Internet 和书籍中都有很好的介绍。你可能想寻找一个好的资源(比如一本书)来帮助你很好地理解这些概念。练习证明这些事情对我的经验也很有帮助。

标签: computer-science regular-language computation-theory turing-machines decidable


【解决方案1】:

我们谈论的是一种语言 而不是字母 ,这意味着 包含由来自 的字母组成的单词)。

可判定
表示存在图灵机,这样暂停并接受任何输入词暂停并拒绝任何输入词@ 987654330@.

可识别
表示存在图灵机,这样暂停并接受任何输入字暂停或不暂停(但不暂停并接受!)对于任何输入

另请参阅Recognizable vs Decidable on MathExchange 了解区别。

正常
表示 可以由正则表达式创建。重要的是要注意,理论计算机科学中的这些正则表达式与 PERL 或 Java 等编程语言中已知的 RegEx 功能不同。事实上,这些正则表达式确实比正则表达式更强大(不知道这是否是正确的英文术语)。

正则表达式的定义很好here:

对于字母表

  • (空集和空字)是正则表达式
  • 表示任何 (任何字母来自 alpabet)是正则表达式
  • 如果 是正则表达式,这些也是正则表达式:
    • (意思是
    • (表示的串联)
    • (意思是的任意重复次数或空字

没有别的东西是正则表达式。

我们如何证明这样的事情?

图灵机

为了证明可判定性或可识别性,通常最简单的方法是为图灵机提供所需的属性。因为Church-Turing thesis,任何编程语言都像图灵机一样强大。所以在我的课程中,以编程语言或伪代码提供算法是完全可以接受的。

请注意,任何可识别的语言也是可识别的(但不是相反)。

正则表达式

为了证明正则性,大多数时候最简单的方法就是提供一个构造语言的正则表达式。有时需要证明正则表达式确实准确地构造了,这通常并不太难(通常很明显)。

在许多讲座中,正则表达式都有一个约定,允许更直观、更短(但不是更强大)的语法。

知道常规语言正是finite automatons 可以识别的语言可能会很有趣。请注意,任何常规语言也是可判定的(因此是可识别的)。

为了反驳规律性,我只想提一下pumping lemma for regular languages

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    相关资源
    最近更新 更多