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:
où est le nombre de s dans la chaîne x.
Par exemple, si x = 01101111 alors n = 8, m = 3, k = 2; donc
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 )
Si nous utilisons 4 symboles, la réponse est oui:
- vérifier si remplaçant s par et s par 0 ϵ 1 2 et en même temps stocker 1 s à droite;
- compter ensuite le nombre de s modulo m dans O ( n log n ) .
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
cc.complexity-theory
turing-machines
time-complexity
Marzio De Biasi
la source
la source
Réponses:
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:
la source