递归语言

时间:2016-07-22 11:23:55

标签: computation-theory turing-machines lexicographic turing

“如果一种语言是递归的,那么就存在一种方法,通过该方法,语言中的字符串可以按某种顺序写入” 我还被告知“如果一种语言可以通过某些图灵机以字典顺序列举,那么这种语言就称为递归”

首先:这两个陈述是不同的? 第二:它应该只是一个词典顺序吗?

1 个答案:

答案 0 :(得分:3)

回想一下为什么词典顺序对于递归语言的定义是必要的:

  • 语言是递归的,如果它可以决定。也就是说,对于给定的单词W和给定的语言L,可以在有限的多个步骤中知道W是否是L的成员,或不是
  • 如果语言可以接受,则语言可递归枚举。也就是说,对于给定的单词W和给定的语言L,可以在有限的多个步骤中知道W是否是L的成员,但是可能知道W < em>不是 L的成员。

因此,如果机器只是按任意顺序枚举L的单词,您可以检查单词W是否在该列表中。如果是,你停下来。如果它不是,你必须永远等待,看看你的单词最终是否由机器输出。该语言是递归可枚举的。

如果您知道订单,那么您现在可以评估机器是否应该输出W.如果机器输出了单词X,并且根据您知道机器正在使用的顺序,W在X之前,您知道机器将不会发出W,因此您知道W不是L的成员。 / p>

词典顺序是满足属性的多个单词排序之一,当你输出 的单词时,你可以告诉它,所以如果到那时你还没有看到它,你可以停下来。

其他订单:
https://en.wikipedia.org/wiki/Lexicographical_order#Colexicographic_order
https://en.wikipedia.org/wiki/Kleene%E2%80%93Brouwer_order

所以回答你的具体问题:

  1. 两种说法有何不同?
    是的。
    第一个语句在某些序列中表示&#34;&#34;,它没有指定序列必须是total order超过L的字母表。因此第一个陈述是不正确的。第一个语句定义了一个递归可枚举的语言 第二个陈述是正确的,但比它需要的更严格。字典顺序只是字母表中的一个总顺序。其他人可以使用。

  2. 它应该只是一个字典顺序吗?

    如上所述,只要机器保证字母表中任何总顺序的输出,语言就是递归的。