某些类别的无限制语法的成员资格问题


9

考虑一个任意上下文无关文法在字母表。在此语法的产生式中,添加两个固定的非上下文产生式: 和。称结果语法代表“用乘积扩充的 ”。G{0,1,0¯,1¯}P0¯0ϵ1¯1ϵGPGP

是有可能得到一种算法,这需要文法和一个字符串超过并判定是否?GPs{0,1,0¯,1¯}sL(GP)


有趣的是,虽然答案似乎是“否”,但我认为如果是规则的,则也是规则的。本质上,只要有路径就可以通过迭代添加 epsilon-转换将的NFA 转换为的NFA。或,最后执行 epsilon-消除。L(G)L(GP)L(G)L(GP)ϵ(s,ϵ,t)(s,0¯,p,0,t),(s,0¯,p,ϵ,q,0,t),(s,1¯,p,1,t),(s,1¯,p,ϵ,q,1,t)(s,ϵ,p,ϵ,t)ϵ
克劳斯·德拉格2014年

是的,那是真的。实际上,这个问题源于程序分析(基于活动性的垃圾收集)中的一个问题。我们通过将CFG近似为强规则语法(Mohri-Nederhoff变换),然后完全按照Klaus Draeger提到的方式对所得的NFA进行简化来规避该问题。P
阿米特。

Answers:


5

这类语法是不确定的。这是一个关于如何使用它来模拟图灵机的粗略想法。

在每个点上,当前部分扩展的单词看起来像

[tape to the left][head][tape to the right]

这里:

  • [tape to the left]在应用,仅包含字符和。P0¯1¯
  • [tape to the right]在应用,仅包含字符和。P01
  • [head]是单个非终结符,它对头部状态和头部位置的字符进行编码。

假设头部处于状态,并且头部下方的字符是。然后,头部由非终端表示。如果需要转换到状态,将当前字符替换为,然后向左移动,则有两个转换和。如果需要向右移动,则有两个过渡和Si{0,1}SiTjSi0T0jSi1T1jSij¯T00¯Sij¯T11¯。从某种意义上说,头部必须通过产生匹配的字符来“猜测”字符的移动方向。如果猜测是错误的,则将违反或上的不变式,它将永远无法恢复。[tape to the left][tape to the right]

机器停止时,磁头应通过“猜测”并产生匹配的字符在两侧“消耗”其胶带。在那之后,它应该产生空字。结果,当且仅当相应的图灵机停止时,空词才是该语法的一部分。


我不确定我是否理解您的减免。这是我的疑问:如果给定的图灵机具有个状态,那么模拟图灵机所需的不受限制的生产数量是否与相关?但是我的问题是只允许有两个固定的不受限制的作品。NN
阿米特。

@ Amit.SI在答案中提供了有关过渡的更多解释。
abacabadabacaba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.