O(n log n)中的3个符号TM可以识别该语言吗?


10

我在玩一个非常有趣且仍未解决的问题“ 单带图灵机的字母 ”(作者:Emanuele Viola),提出了以下语言:

L={x{0,1}n s.t. |x|=n=2m and count1(x)=km;n,m,k1}

其中是字符串x 中的个数。count1(x)1

例如,如果x = 01101111,则n = 8,m = 3,k = 2;所以xL

图灵机可以用单个胶带和3个符号的字母来识别L吗{ϵ,0,1}步骤是什么? O(nlogn)

如果我们使用4个符号,则答案为是:

  • 检查代替0 s的ε1和与S 2,并在同一时间存储器1个 S于权;|x|=2m0ϵ12m 1
  • 然后在O n log n)中计算 s模m的个数。2mO(nlogn)

例如:

....01101111....... input x  (|x| = 8 = 2^3)
000.021.1212.0001.. div 2, first sweep (000. can safely be used as a delimiter)
000.022.1222.00011. div 2, second sweep
000.022.2222.000111 div 2, third sweep --> m = 3 (= log(n) )
000..22.2222....111 cleanup (original 1s are preserved as 2)
000..22.2221102.... start modulo m=3 calculation
000..22.2210022.... mod 3 = 2
000..22.2000222.... mod 3 = 0
000..22.0012222.... mod 3 = 1
000..20112.2222.... mod 3 = 2
000..11122.2222.... ACCEPT

如果是自然数由下式表示XÇ Ò ù Ñ 1 X 总是等于1,因此大号= { 10 }|x|=n=2mxcount1(x)1L={10}
Marc Bury

抱歉| x | 表示字符串x的长度。一个例子:X = 01101111,N = 8,M = 3,K = 2,因此,xL
马兹奥德BIASI

1
顺便说一句,这是Emanuele问题的极好候选者,因为它在:泵激引理不是规则的,所以不能是o n log n ,但是它是O n log n Θ(nlogn)o(nlogn)O(nlogn)
Joshua Grochow 2011年

Answers:


10

经过以下修改后,您是否可以使用与4个符号的情况相同的想法:

  • 始终同时处理一对符号。
  • (00,01,10,11)(ϵ0,ϵ1,0ϵ,1ϵ)ϵϵ
  • 对“ mod 2”步骤使用类似的技巧。

O(1)


你是对的!...现在我怀疑对Emanuele问题的答案是肯定的...但它仍然是公开的,因此正式证明它并不容易:-(谢谢!
Marzio De Biasi
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.