w ^ R是w的反向,w是{0,1}*.因此,TM需要决定一个单词,然后是该单词的反向,后跟单词.我不想要答案,我只想要领先一步并走上正轨.
由于时间已过,可能不再需要答案,我想我会提出一个解决方案,为未来的学生寻找一个图灵机如何识别一种语言的例子.
这是个主意.我们将把磁带字母{0,1,a,b,c,d}作为一个单磁带单无限磁带图灵机来识别ww ^ R w.该机器将分五个阶段工作:
请注意,这只是一种简单的方法(我理解,就是这样),表明存在图灵机来识别这种语言.当然,表明在任何图灵等效计算系统中存在一种解决这个问题的算法同样好(它证明存在TM)......但是,这仍然概括了一个这样的TM的构造.还要注意,可能有一个更简单,更有效或更直观的TM来解决这个问题......再次,这只是一种方法.
第1步将如下工作:
后置条件:如果磁带为空或长度不是3的倍数,则暂停; 否则,磁带以空白开头,然后是(a + b)^ 2n(c + d)^ n,接着是无限长的空白串.
第2步将如下工作:
后置条件:如果前缀(a + b)^ 2n不是回文,则停止; 否则,使磁带处于D(c + d)^ 3n D*状态
第3步将如下工作
后置条件:磁带为D(0 + 1)^ 3n D*
第4步和第5步的工作方式与第1步和第2步一样,除了你向后工作(磁带现在看起来像D(c + d)^ n(a + b)^ 2n D*,你必须检查是否(a + b)^ 2n部分是回文.
通过这两个测试的任何字符串必须是ww ^ R w的形式,其中w在(0 + 1)*中.
作为提示,请注意对于某些 n, ww R w 的长度必须为 3n(因为每个字符恰好出现 3 次)。因此,您可以构建一台图灵机,它通过某种方式计算字符串的长度,使用它来确定三个字符串的边界在哪里,然后检查这三个部分是否都具有适当的组成。如果您无法算出 3 个字符的倍数,您可以立即拒绝。
根据允许的 TM 类型,使用多轨或多磁带图灵机可能是最简单的,这样您就可以用一些额外的信息来标记字母。
希望这可以帮助!