Cette langue est-elle reconnaissable par une MT à 3 symboles en O (n log n)?

10

Je jouais avec la question très intéressante et toujours ouverte " Alphabet of single-tape Turing machine " (par Emanuele Viola) et j'ai trouvé la langue suivante:

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

est le nombre de s dans la chaîne x.count1(x)1

Par exemple, si x = 01101111 alors n = 8, m = 3, k = 2; doncxL

L peut-il être reconnu par une machine de Turing avec une seule bande et un alphabet à 3 symboles en étapes ? O ( n log n ){ϵ,0,1}O(nlogn)

Si nous utilisons 4 symboles, la réponse est oui:

  • vérifier si remplaçant s par et s par 0 ϵ 1 2|x|=2m0ϵ12 et en même temps stocker 1 s à droite;m 1
  • compter ensuite le nombre de s modulo m dans O ( n log n ) .2mO(nlogn)

Par exemple:

....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
Marzio De Biasi
la source
Si est le nombre naturel représenté par x que c o u n t 1 ( x ) est toujours égal à 1 et donc L = { 10 } ? |x|=n=2mxcount1(x)1L={10}
Marc Bury
Désolé | x | signifie la longueur de la chaîne x. Un exemple: x = 01101111, n = 8, m = 3, k = 2, et donc xL
Marzio De Biasi
1
Soit dit en passant, c'est un excellent candidat pour la question d'Emanuele, car elle est dans : elle n'est pas régulière par le lemme de pompage, donc ne peut pas être o ( n log n ) , mais c'est O ( n log n ) . Θ(nlogn)o(nlogn)O(nlogn)
Joshua Grochow

Réponses:

10

Ne pouvez-vous pas utiliser la même idée que celle que vous avez pour le cas de 4 symboles , avec les modifications suivantes:

  • Traitez toujours une paire de symboles simultanément.
  • (00,01,10,11)(ϵ0,ϵ1,0ϵ,1ϵ)ϵϵ
  • Utilisez une astuce similaire pour les étapes du "mod 2".

O(1)

Jukka Suomela
la source
Tu as raison! ... maintenant je soupçonne que la réponse à la question d'Emanuele est oui ... mais elle est toujours ouverte donc ce n'est probablement pas trop facile de le prouver formellement :-( Merci!
Marzio De Biasi