如何使用非确定性图灵机显示语言是上下文敏感的?
我知道线性绑定自动机(LBA)接受的语言是一种上下文敏感语言。而LBA是一种非确定性的图灵机。
任何想法如何将所有这些联系起来并表明语言对上下文敏感?
答案 0 :(得分:0)
这不是一个确切的答案,但由于上下文相关的语言恰好是线性有界自动机(其磁带上带有O(n)空间的TM)所接受的语言,因此上下文敏感语言恰好是DSPACE(N)。而且,我们知道NTIME(n) = DSPACE(n)。这意味着如果您可以找到决定某种语言L的成员资格的线性时间NTM,则该语言必须是上下文相关的。但是,仍然可能存在一个没有线性时间NTM的上下文敏感语言(我不知道是否有确定的答案或者这是否是一个开放的问题),所以这不是一个精确的表征
希望这有帮助!
答案 1 :(得分:0)
由于templatetypedef的答案存在一些缺陷(我将在评论的一秒内指出),我会快速回答你的问题:
如果(并且仅当)您可以使用定义L的线性空间给出非确定性图灵机,语言是上下文敏感的。
对于任意整数n,设L = {a ^ n b ^ n a ^ n};这里的^ n表示符号a的n个连接。这是一种典型的上下文敏感语言。您可以给LBA显示L是上下文敏感的,而不是给出CSG:
图灵机M'猜猜'(感谢非确定性)n [换句话说,你可能会说'非确定性搜索树的每个分支尝试另一个n',然后检查输入是否匹配^ nb ^ na ^ ñ。您需要log n单元格来存储n,匹配可能需要(如果实现的话)另一个log n单元格。由于n + 2log n< 2n,这台机器只需要线性空间,因此是LBA,因此L对上下文敏感。