Alphabet de Turing à une seule bande

40

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)?F:{0,1}*{0,1}tk=O(1)O(t)30,1,

(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 .0,1kn2

Manu
la source
8
Notez que l'entrée est écrite en utilisant , mais la machine de Turing en utilisant un alphabet de taille k peut remplacer les symboles en entrée par 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 . 0,1kn2
Manu
4
@ Emmanuel: Vous devriez éditer la question et mettre l'accent sur cet aspect; Sinon, cela ressemble exactement à un exercice classique ...
Jukka Suomela
3
@Tsuyoshi, je pense que vous avez mal compris la question.
Suresh Venkat
4
@Jukka: Sur une machine de Turing à bande unique, tout ce qui peut être calculé en temps est en fait un langage courant . o(nbûchen)
Kristoffer Arnsfelt Hansen
6
@Abel: Le résultat que vous citez d'Arora et Barak résout le problème principal car, dans leur modèle (qui est assez standard pour les MT multi-bandes), ils ont une bande d'entrée distincte en lecture seule.
Joshua Grochow

Réponses:

5

Une réponse partielle si TM s'exécute en o(|X|bûche|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|bûche|X|))

Une complexité déterministe dans le temps linéaire est 1LjeN=1Tjeme(O(n))

  • Hennie a prouvé (1) que REg=1LjeN
  • Kobayashi a prouvé (2) que REg=1Tjeme(o(nbûchen))

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 .Ω(nbûchen)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).

Marzio De Biasi
la source
1
Le point à propos de est déjà mentionné par Kristoffer Arnsfelt Hansen dans les commentaires sous la question. Le cas est vraiment intéressant Ω ( n log n ) o ( n 2 ) . o(nbûchen)Ω(nbûchen)o(n2)
Kaveh
Vous avez raison, je n'ai pas remarqué le commentaire de Kristoffer. J'ai mal exprimé le cas intéressant (je ne sais pas comment le prouver), alors j'ai mis à jour la réponse.
Marzio De Biasi
1
@Kaveh: Qu'en est-il des machines heure des problèmes de promesse? Est - ce que nous savons déjà comment convertir, par exemple, une machine qui permet de résoudre un problème de promesse en O ( n ) temps? Je ne vois pas comment faire, et la connexion aux langages normaux ne tient plus (à moins que je me trompe gravement). o(nbûchen)O(n)
Jukka Suomela
1
@Kaveh: Ne pouvez-vous pas simplement prendre un problème qui n'est pas un langage courant mais qui peut être résolu avec une machine de Turing dans, par exemple, O ( n 2 ) tours, et définir un problème de promesse comme suit: yes-instances consistent en une chaîne x L suivie de | x | 2 bits de rembourrage; aucune instance n'est constituée d'une chaîne x L suivie de | x | 2 bits de rembourrage. Le problème de la promesse est résoluble dans O ( n )LO(n2)XL|X|2XL|x|2O(n)temps, et il est impossible de résoudre en utilisant une machine à états finis.
Jukka Suomela
1
@Kaveh: Je suppose que l'argument intuitif échoue pour la raison suivante: Oui, il existe un problème non prometteur résolu par la même machine. Cependant, le temps de fonctionnement de la machine peut atteindre pour certaines entrées. (Intuitivement, la machine ne peut pas vérifier qu'il ya suffisamment de rembourrage, et donc « jouer en toute sécurité » , il faut supposer qu'il y ait suffisamment de rembourrage après le préfixe x Ensuite , il gaspille. Θ ( | x | 2 ) le temps de déterminer si x de la L , ce qui est trop si, par exemple, nous avions seulement Θ ( | x | )Θ(n2)xΘ(|x|2)xLΘ(|x|)des morceaux de rembourrage.)
Jukka Suomela
-4

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 .1logk(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 }ttk{0,1,,k1}log2(k)log2(k){0,1}(des blancs sont réservés pour marquer les cellules inutilisées). Notez qu'il s'agit essentiellement de chiffres codés binaires.

De toute évidence, la machine de Turing résultant exécute au plus étapes.log2(k)tO(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)Ω(n2)Ω(n2)

Raphaël
la source
3
Tant que vous ne me convaincrez pas que cela est censé être le cas, je garderai cette voix.
Andrej Bauer
1
J'aimerais entendre des preuves de votre demande. Tout cela, ce n’est qu’une revendication.
Andrej Bauer
2
Oh, je vois de quoi tu parles. D'accord désolé. Cependant, la question n'est pas à ce sujet . C'est une légère variation.
Andrej Bauer
6
Je pense que le cas avec t = Ω (n ^ 2) est le cas facile car vous pouvez vous permettre le temps nécessaire pour décaler la chaîne d'entrée. Le cas essentiel est lorsque t = o (n ^ 2). Je ne sais pas à quel point il est important d’envisager une MT sur une seule bande avec un temps de jeu (n ^ 2), mais la question est de savoir à quoi.
Tsuyoshi Ito
3
La question initiale implique déjà que le cas est facile; par conséquent, je ne vois pas vraiment en quoi cette réponse ajoute quelque chose de nouveau ...Ω(n2)
Jukka Suomela