繁体   English   中英

图灵机元素区别问题

[英]Turing Machine Element Distinctness Problem

所以语言如下:

E = {#x1#x2 ...#xi,其中字母为{0,1} *,并且任何字符串都不能与另一个字符串重复}

我正在尝试为此创建状态图,但是在此之前,我想出了一种算法来解决该问题,但是遇到的问题是,每当我比较前两个字符串时,我都必须用' x',那么如何恢复第一个字符串? 像我首先比较x1和x2一样,到完成时,在x2中,x1中的所有字符都将标记为“ x”,因此当我移至x3时,x1无需进行比较。

不用用x标记考虑的符号,而是用与要标记的符号相对应的特殊符号标记它们。 因此,与其将x代写为0,将x代写为1,而不是将a代写为0并将b代写为1,实际上,继续使用符号c和d替换“我需要检查的最早内容”中的值,这样您就可以检查所有对。 使用此策略的图灵机的高级描述如下:

  1. 开始读取第一个输入,将0替换为c,将1替换为d
  2. 转到第二个输入,如果到目前为止第二个输入是匹配的,则将a表示为0,将b表示为1,然后继续。 如果不匹配,我们知道这些输入不匹配,我们可以开始比较其他对。 将您要检查的输入更改为仅a和b,并将第一个输入重置为仅0和1。
  3. 重复此过程,跳过已经存在的所有a和b,以检查涉及第一项的所有对。
  4. 一旦检查完所有涉及第一项的对,将其划掉(也许使用x),然后对其余输入重复整个过程

这将检查所有对并按预期工作。 正如您正确推测的那样,关键是能够重构输入的一部分,这意味着您在磁带字母中需要额外的符号。 不要犹豫地介绍磁带符号-它们是免费的,并且永远不会受到伤害。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM