根据Wikipedia的这篇文章,无限制语法等效于图灵机。这篇文章指出,我可以将任何图灵机都转换为无限制的语法,但是它仅显示了如何将语法转换为图灵机。
我确实如何做到这一点并将图灵机的识别语言转换为不受限制的语法?我曾尝试用语法规则替换过渡规则,但是图灵机也可以具有许多不同的状态配置...
根据Wikipedia的这篇文章,无限制语法等效于图灵机。这篇文章指出,我可以将任何图灵机都转换为无限制的语法,但是它仅显示了如何将语法转换为图灵机。
我确实如何做到这一点并将图灵机的识别语言转换为不受限制的语法?我曾尝试用语法规则替换过渡规则,但是图灵机也可以具有许多不同的状态配置...
Answers:
我们将图灵机的磁带内容以句子形式编码;一组特殊的非终端对当前状态进行编码。在任何时间点,只能以句子形式出现其中之一,并置于TM当前指向的符号的右侧。
第二个关键思想是我们必须逆转这一过程:TM将单词作为输入并将其转换为或,否则它们不会终止。但是,语法必须生成单词。幸运的是,语法本质上是不确定的,因此我们可以让它“猜测”接受来源。然后可以生成所有导致TM接受的单词。0 1
令表示非状态终端的集合;wlog令起始状态,而状态接收端。首先,我们需要启动规则以生成所有可能的接受配置:Q 0 Q ˚F ⊆ Q
对于所有。
同样,当我们在正确的位置(即第一个符号上)“到达”起始状态时,我们终止:
所有。
转换实际状态转换很简单:
有一些技术上的缺陷可以解决。例如,您必须摆脱最后的边界标记。可以通过产生两个特殊的非终结符而不是终止它们,将它们交换到末端,然后删除来实现。此外,必须根据需要创建更多;这需要使用规则。
而且,如果TM使用非输入符号,则构造会变得更加复杂。在这种情况下,终止规则可能是错误的:如果磁带上某处有未输入的符号,则我们没有生成正确的单词。可以类似于删除来解决此问题:从产生一个特殊的非终结,该非终结会交换到右侧,并且仅当所有符号都来自时才删除。