Depuis un certain temps, je suis curieux de voir les machines de Turing avec exactement une bande et exactement 3 états (à savoir l'état de démarrage , l'état d'acceptation et l'état de rejet ). Notez que j'autorise les alphabets de bande arbitraires (finis) (c'est-à-dire que l'alphabet de bande n'est pas limité pour égaler l'alphabet d'entrée).
Pour plus de commodité, appelez la classe de langues reconnaissables par ces MT . J'ai plusieurs questions sur ce cours:
- Le déjà été étudié?
- Le connu pour être égal à d'autres classes de complexité / calculabilité d'intérêt?
- La classe résistante aux changements de modèle? Par exemple, si les MT utilisées sont autorisées à rester en place pendant une seule transition (par opposition à toujours se déplacer vers la gauche ou vers la droite) ou si la bande est conçue pour être infinie dans les deux directions au lieu d'être juste à droite, la classe fait-elle des langues reconnaissables par les MT 1 bande à 3 états changent?
- Comment rapporte-t-il à la classe des langues régulières, ? (En particulier, est-ce que chaque langue régulière en ?)
Une recherche (plutôt superficielle) n'a fait apparaître que ce poste cs.stackexchange qui est pertinent mais ne répond pas à mes questions et à ce document , que je n'ai pas lu suffisamment en détail pour être sûr qu'il concerne exactement la classe plutôt que une classe similaire mais différente (l'article prétend prouver que (1) chaque langue en est décidable et (2) que et sont des classes distinctes avec intersection non vide). Comme souligné dans les commentaires du post cs.stackexchange, ces types de MT peuvent être considérés comme des automates cellulaires très particuliers, donc peut-être que quelqu'un qui connaît la littérature sur la théorie des automates cellulaires pourrait aider.
la source
Réponses:
La bête est extrêmement puissante , par exemple, nous pouvons construire un TM qui accepte chaque chaîne du formulaireM
et rejette chaque chaîne du formulaire
L'idée est de transformer le premier en R puis de laisser la tête atteindre le milieu de la chaîne puis faire un zig-zag "sans état"; s'il atteint A avant R, il accepte.r R A R
Description informelle:
Exemple:
Cette technique en zigzag est utilisée dans la plus petite machine universelle de Turing à 2 états (elle a 18 symboles) construite par Rogozhin (Rogozhin 1996. TCS, 168 (2): 215-240)).
Une certaine attention doit être portée afin de prouver que s'arrête sur toutes les entrées (il suffit de noter qu'il rejette sur une entrée vierge et que tous les symboles non-stop "convergent" vers < ou > ce qui ne peut pas conduire à une boucle infinie).M < >
Comme l'a commenté DavidG, le langage reconnu par M est un surensemble de L Y (ie L Y ⊂ L ( M ) ) mais il ne contient aucune chaîne de L N (ie L ( M ) ∩ L N = ∅ ) et - comme l'a commenté MikhailRudoy - cela suffit pour prouver que L ( M ) n'est pas régulière.L ( M) M LOui LOui⊂ L ( M) LN L ( M) ∩ LN= ∅ L ( M)
En effet, si est régulier, alors L ( M ) ∩ { r 0 ∗ 1 ∗ A } = L Y = { r 0 n 1 m A ∣ m ≤ n } serait régulier (ce qui n'est pas par une simple application du lemme de pompage); conduisant à une contradiction.L ( M) L ( M) ∩ { r 0∗1∗A } = LOui= { r 0n1mA ∣ m ≤ n }
Donc n'est pas régulier .L ( M)
... Mais comme tous les super-héros a un talon d'Achille: il ne peut même pas reconnaître le régulier:C3
Informellement, il ne peut utiliser que le le plus à gauche . . . ( b est le symbole vide) ou la brume de droite 1 b . . . comme un crochet et "se dilater" dans l'autre sens; mais l'acceptation ou le rejet final ne peut pas être sur le symbole vierge du côté opposé, donc cela ne peut être fait que sur la partie intérieure des 1 s et à partir d'une entrée suffisamment longue, il peut être "truqué" en l'étirant d'un.b1... b 1b... 1
Enfin - après avoir lu l'article - je peux confirmer que la MT à un état décrite dans ce document correspond à votre classe ... (donc rien de nouveau ici :-) ... et la langue utilisée par l'auteur pour prouver qu'il contient les langues non régulières sont très similaires aux miennes.C3
la source
J'ai sous-estimé la puissance de ... en fait ce n'est pas trop loin de l' hypercomputation !C3
(Je poste ceci comme une réponse séparée pour plus de clarté)
On peut construire une machine de Turing état unique qui accepte les chaînes du formulaire:M
et rejette les chaînes du formulaire:
L'idée et la construction sont similaires à celle de la réponse précédente: transformer le premier en A , laisser la tête atteindre le milieu de la chaîne puis faire un zig-zag "sans état", mais les transitions "implémentent" un "compteur binaire" "sur la première moitié de cette façon: sur Z (zéro), faites rebondir la tête vers la droite , et convertissez le Z en S (Un) la prochaine fois que la tête atteint le S , transformez-le en a ) et laissez la tête se déplacer à gauche; lorsque la tête atteint les ) transformer en un Z . La seconde moitié de la chaîne se comporte comme un compteur unaire.a A Z Z S S ) ) Z
Les transitions sont:
Exemple:
Une certaine attention doit être portée afin de prouver que s'arrête sur toutes les entrées (il suffit de noter qu'il rejette sur une entrée vierge et que tous les symboles non-stop s'arrêtent ( , S , Z ou < , > qui ne peuvent pas conduire à une boucle infinie) ).M (,S,Z <,>
Le langage est un sur-ensemble de L Y ( L Y ⊂ L ( M ) ) et il ne contient pas de chaînes de L N ( L ( M ) ∩ L N = ∅ ).L(M) LY LY⊂L(M) LN L(M)∩LN=∅
Supposons que soit sans contexte , alors - par les propriétés de fermeture des CFL, en l'intersectant avec le langage régulier { r 0 ∗ 1 ∗ A }, on produit un langage CF:L(M) {r0∗1∗A}
Mais par une simple application du lemme d' Ogden pour CFL, nous pouvons prouver que : il suffit de choisir un assez long s ∈ L Y et de marquer tous les 0 s; au moins un zéro peut être pompé et quel que soit le nombre de 1 s dans la chaîne de pompage, la croissance exponentielle de 2 n conduit à une chaîne ∉ L Y ).LY∉CFL s∈LY 0 1s 2n ∉LY
Donc n'est pas sans contexte .L(M)
... maintenant je me demande si c'est une autre réponse "réinventer la roue", ou si c'est un nouveau (petit) résultat.
la source
Dans cette réponse, on suppose que les machines Turing ont des bandes infinies bidirectionnelles. Les revendications ne s'appliquent pas aux bandes infinies unidirectionnelles.
Permettez-moi de définir d'abord la classe de langages comme la classe de tous les langages décidables par les machines de Turing à une bande à 3 états ( C 3 a été définie comme la classe de langages reconnaissables par les machines de Turing à une bande à 3 états). J'ai introduit la classe C ′ 3 parce que dans ma réponse originale, j'ai échangé inconsciemment les classes C 3 et C ′ 3 (je n'ai considéré que la classe C ′ 3 ).C′3 C3 C′3 C3 C′3 C′3
Cette réponse est davantage un complément aux réponses @MarzioDeBiasi. Il a montré que les classes et C ′ 3 ne sont pas contenues dans CFL et contiennent donc des langages assez intéressants. Cependant, comme je le montrerai dans ce post, chaque langue L en C ' 3 a la propriété que l'ensemble { 1 n ; n ∈ N ∖ { 0 } } est soit en L ou en son complément L C . Ainsi C ′ 3C3 C′3 L C′3 {1n;n∈N∖{0}} L LC C′3 est également très restrictif, par exemple. il ne contient que des langues unaires triviales , { ε } , { 1 n ; n ∈ N } et { 1 n ; n ∈ N ∖ { 0 } } . La classe C 3 contient un peu plus de langues unaires. Cependant, il considère que si L ∈ C 3 et 1 n ∈ L pour n ≥ 1 , alors 1{} {ε} {1n;n∈N} {1n;n∈N∖{0}} C3 L∈C3 1n∈L n≥1 pour tout m ≥ n . 1m∈L m≥n Un corollaire simple est que toutes les langues régulières ne sont pas en ni en C ′ 3 . Le langage{1}n'est pas non plus en C 3 ni en C ′ 3 .C3 C′3 {1} C3 C′3
Pour la revendication (en gras) sur , il suffit de prouver qu'une machine de Turing M à une bande avec 3 états qui arrête toujours accepte ou rejette toutes les chaînes de { 1 n ; n ∈ N ∖ { 0 } } . Supposons qu'une chaîne de la forme 1 n , n ∈ N ∖ { 0 } , est donnée à M . Il y a trois cas:C′3 M {1n;n∈N∖{0}} 1n n∈N∖{0} M
1) Lorsque lit 1, il accepte ou rejette.M
2) Lorsque lit 1, il déplace la tête vers la gauche.M Si nous voulons que s'arrête sur cette entrée, il doit accepter, rejeter ou se déplacer vers la droite sur le symbole vierge. Par conséquent, il ne visite jamais la cellule à droite de la cellule initiale de la bande. Si tel était le cas, il s'exécuterait indéfiniment sur l'entrée 1.M
3) Lorsque lit 1, il déplace la tête vers la droite.M Il en résulte que , après étapes, le contenu de la bande est un n où A est un symbole de l'alphabet de bande et la tête de M est le symbole de gauche vide à droite du dernier A . Si nous voulons que M s'arrête sur cette entrée, il doit accepter, rejeter ou se déplacer vers la gauche sur le symbole vierge. Comme dans le cas 2), la tête de M se rendra maintenant jamais la cellule directement à la gauche de la droite A . Si c'est le cas, alors M s'exécutera indéfiniment sur l'entrée 1.n An A M A M M A M
Il est clair que dans les trois cas, accepte toutes les chaînes de l'ensemble { 1 n ; n ∈ N ∖ { 0 } } ou il les rejette tous.M {1n;n∈N∖{0}}
La preuve de la réclamation (en gras) concernant suit la même ligne que ci-dessus. On prend une machine de Turing M à 3 bandes mono-bande qui accepte une chaîne 1 n pour certains n ≥ 1 . Supposons que M reçoive une entrée de 1 m pour m ≥ n . Nous devons prouver que M accepte cette entrée. Nous avons 3 cas:C3 M 1n n≥1 M 1m m≥n M
la source