Toute fonction calculable en temps t sur une machine de Turing à bande unique utilisant un alphabet de taille k = O ( 1 ) peut-elle être calculée en temps O ( t ) sur une seule bande machine de Turing en utilisant un alphabet de taille 3 ( par exemple, 0 , 1 , et en blanc)?
(D'après les commentaires ci-dessous de l'OP) Remarquez que l'entrée est écrite en utilisant , mais la machine de Turing en utilisant un alphabet de taille k peut écraser les symboles en entrée avec des symboles du plus grand alphabet. Je ne vois pas comment encoder des symboles dans un alphabet plus grand dans un alphabet plus petit sans avoir à décaler l'entrée, ce qui coûterait le temps n 2 .
Réponses:
Une réponse partielle si TM s'exécute eno(|x|log|x|)
Si TM4 est un TM 4-symboles (avec l' alphabet ) qui calcule f : { 0 , 1 } * → { 0 , 1 } , ie décide langue L = { x | f ( x ) = 1 } dans ( o ( | x | log | x | ) )Σ4={ϵ,0,1,2} f:{0,1}∗→{0,1} L={x|f(x)=1} (o(|x|log|x|))
Une complexité déterministe dans le temps linéaire est1DLIN=1DTime(O(n))
Alors est régulière, et est évidemment encore alphabet régulier sur Σ 3 = { ε , 0 , 1 }L Σ3={ϵ,0,1}
Donc , il y a un DFA qui décident L et utilise uniquement des symboles dans . Un TM3 à une seule bande et à trois symboles peut être construit directement à partir du DFA et il décide L en utilisant la même entrée non rembourrée du TM4 d'origine .Σ3
... vous ne pouvez pas le construire directement à partir de TM4, mais TM3 existe.
Si TM4 s'exécute en vous pouvez alors décaler l'entrée et effectuer une conversion directe de TM4 en TM3.Ω(n2)
Comme noté dans les commentaires le cas difficile est quand TM4 fonctionne dans .Ω(nlogn)∩o(n2)
(1) Hennie, Calculs sur une machine de Turing hors ligne (1965).
(2) Kobayashi, Sur la structure de la hiérarchie temporelle de la machine de Turing non déterministe (1985).
la source
Pour tout alphabet tailles supérieures à , runtimes seul changement par un facteur constant depuis log k ( x ) ∈ & thetav ( log l ( x ) ) pour tout k , l > 1 .1 logk(x)∈Θ(logl(x)) k,l>1 Elaboration:En pas de temps, la machine de Turing supposé peut traiter à la plupart des T positions / bits. Les bits proviennent d'un alphabet k- nary, wlog { 0 , 1 , … , k - 1 } . Créer une nouvelle machine de Turing en remplaçant chaque transition par ⌈ log 2 ( k ) ⌉ transitions; chaque ancien bit est codé par ⌈ log 2 ( k ) ⌉ bits dans { 0 , 1 }De toute évidence, la machine de Turing résultant exécute au plus étapes.⌈log2(k)⌉⋅t∈O(t)
Addition: les arguments d'argumentation ci-dessus sont interrompus, car les opérations qui écrasent un symbole d'entrée avec un bit ne figurant pas dans ne peuvent pas être traduites directement; l'entrée doit être décalée. Cela peut être modifié en traduisant l'entrée d'origine avant de commencer le calcul (essentiellement du remplissage); cela peut être fait en temps O ( n 2 ) , ce qui entraîne un temps d' exécution total de O ( n 2 ) + ⌈ log 2 ( k ) ⌉ ⋅ t .{0,1} O(n2) O(n2)+⌈log2(k)⌉⋅t
Par conséquent, en utilisant seulement deux symboles pour l' encodage des résultats intermédiaires est sans impact asymptotique si , mais plus rapide des algorithmes de pré - traitement domine. Comme les fonctions les plus intéressantes sont en Ω ( n 2 ) (par exemple, en ajoutant deux nombres), on peut considérer le problème négligeable.t ( n ) ∈ Ohm ( n2) Ω ( n2)
la source